Hex: CommandLine Class Reference

| Hex 2.2 Hydrogen-electron collision solver

Data Structures | Public Types | Public Member Functions | Data Fields
CommandLine Class Reference

Command line parameters. More...

`#include <io.h>`

Collaboration diagram for CommandLine:
[legend]

## Data Structures

struct | s_zipdata
| A B-spline expansion of a solution to "zip". See Bspline::zip . More...

## Public Types

enum | HexEcsStg { StgNone = 0x00, StgRadial = 0x01, StgSolve = 0x02, StgExtract = 0x04 }
| Stages of the computations. More...

## Public Member Functions

| CommandLine (int argc, char *argv[])
void | parse (int argc, char *argv[])
| Read options from command line. More...

## Data Fields

std::ifstream | inputfile
| Alternative name for the input file. Default is "hex.inp". More...
bool | writegrid
struct CommandLine::s_zipdata | zipdata
bool | parallel
| Whether to use MPI. More...
std::string | preconditioner
| Preconditioner to use. More...
Real | droptol
| Drop tolerance for the ILU preconditioner. More...
int | itinerary
| Which parts of the computation to run. More...
bool | outofcore
| Whether to keep precomputed data only on disk and spare RAM. More...
bool | cont
| Whether to continue out-of-core computation from last computed solution (needs corresponding ooc files). More...
bool | wholematrix
| Whether to load full matrix from scratch disk at once when calculating dot product (and not by parts). More...
bool | cache_all_radint
| Whether to keep radial integrals in memory. More...
bool | cache_own_radint
Real | itertol
| Tolerance for terminating iterative solution. More...
Real | prec_itertol
| Tolerance for terminating block preconditioner. More...
bool | parallel_precondition
| Whether to use OpenMP parallelization to run preconditioner for several blocks simultaneously. More...
bool | gpu_large_data
| Keep large data in RAM instead of copying to the OpenCL compute device. More...
bool | lightweight_full
| Whether to avoid explicitly calculating big matrices and only apply them on the fly. More...
bool | lightweight_radial_cache
bool | shared_scratch
| Whether to compute only a subset of radial integrals in shared scratch architecture. More...
bool | reuse_dia_blocks
| Whether to use diagonal blocks as present in the scratch directory. (For debugging purposes only.) More...
bool | kpa_simple_rad
| Use simplified radial integral matrix for nested KPA iterations (experimental). More...
unsigned | ocl_platform
| Index of OpenCL platform to use. More...
unsigned | ocl_device
| Index of OpenCL device to use. More...
std::string | factorizer
| LU-factorizer. More...
int | groupsize
| Size of the local MPI communicator, used for distributed SuperLU. More...
int | parallel_factorization
| Allow parallel factorization. More...
int | parallel_extraction
| Allow parallel extraction. More...
int | ilu_max_iter
| Maximal number of ILU iterations for hybrid preconditioner. More...
int | max_sub_iter
| Maximal number of sub-preconditioner iterations. More...
bool | fail_on_sub_iter
| Stop with error message when sub-preconditioner fails to converge. More...
bool | carry_initial_guess
| Whether to use previous-energy solution as an initial guess. More...
bool | gpu_multiply
| Do the sparse matrix multiplication on the OpenCL device (memory intensive!). More...
bool | extract_extrapolate
| Whether to radially extrapolate the extracted T-matrix. More...
Real | extract_rho
| Extraction radius. More...
Real | extract_rho_begin
| Radial distance where to start radial averaging/extrapolation of the T-matrix. More...
int | extract_samples
| Extraction averaging/extrapolation sample count. More...
bool | refine_solution
| Load also existing solutions and check that they are within tolerance. More...
std::vector< std::string > | map_solution
| Map solution between different B-spline bases. More...
std::string | map_solution_target
| Target mapping basis. More...
Real | ssor
| Apply SSOR coupling. More...
bool | noluupdate
| Keep calculated LU also for next energy. More...
int | coupling_limit
| Maximal multipole considered by the coupled preconditioner. More...
bool | gpu_host_multiply
| Keep vectors in host memory when doing multiplication on GPU. More...
bool | mumps_outofcore
| MUMPS out of core. More...
int | mumps_verbose
| MUMPS diagnostic information. More...
Real | kpa_drop
| Whether to use drop tolerance for KPA preconditioner. More...
bool | write_intermediate_solutions
| Write intermediate solutions. More...
bool | fast_bessel
| Use faster Bessel function evaluation routine (not the Steed/Barnett) when calculating RHS. More...
int | hyb_additional_levels
| Additional levels to be solved by ILU preconditioner when using HYB preconditioner. More...
int | multigrid_depth
| Depth of the geometric multigrid. More...
int | multigrid_coarse_prec
| What preconditioner to use for solution of the coarse problem. More...
int | dom_x_panels
| Domain decomposition panels. More...
int | dom_y_panels
std::string | dom_preconditioner
| Domain preconditioner. More...
int | dom_sweeps
| Domain decomposition sweeps. More...
std::string | scratch
| Scratch directory for out-of-core data. More...
bool | analytic_eigenstates
| Use analytic eigenstates instead of those obtained by diagonalization. More...
bool | runtime_postprocess
| Calculate T-matrices after every iteration. More...
bool | sub_prec_verbose
| Verbosity of the sub-preconditioner. More...

## Detailed Description

This class uses ParseCommandLine for parsing of the command line. The information on valid switches can be retrieved by executing

    hex-ecs --help

Some more general comments on the switches are in the above mentioned class.

## Member Enumeration Documentation

## ◆ HexEcsStg

enum CommandLine::HexEcsStg

Different stages of the computations, used to reflect user's choice from the command line. The corresponding mapping is:

Command line option | Program itinerary
--- | ---
(none) | StgRadial | StgSolve | StgExtract
--stg-integ | StgRadial
--stg-integ-solve | StgRadial | StgSolve
--stg-extract | StgiExtract

Enumerator
StgNone | Do not start any intensive computations.
StgRadial | Compute only the radial integrals necessary for the construction of the equations.
StgSolve | Solve the equations.
StgExtract | Extract the T-matrices.

## Constructor & Destructor Documentation

## ◆ CommandLine()

CommandLine::CommandLine | ( | int | argc,
|  | char * | argv[]
| ) |  |

inline

## Member Function Documentation

## ◆ parse()

void CommandLine::parse | ( | int | argc,
|  | char * | argv[]
| ) |  |

## Field Documentation

## ◆ analytic_eigenstates

bool CommandLine::analytic_eigenstates

## ◆ cache_all_radint

bool CommandLine::cache_all_radint

## ◆ cache_own_radint

bool CommandLine::cache_own_radint

## ◆ carry_initial_guess

bool CommandLine::carry_initial_guess

## ◆ cont

bool CommandLine::cont

## ◆ coupling_limit

int CommandLine::coupling_limit

## ◆ dom_preconditioner

std::string CommandLine::dom_preconditioner

## ◆ dom_sweeps

int CommandLine::dom_sweeps

## ◆ dom_x_panels

int CommandLine::dom_x_panels

## ◆ dom_y_panels

int CommandLine::dom_y_panels

## ◆ droptol

Real CommandLine::droptol

## ◆ extract_extrapolate

bool CommandLine::extract_extrapolate

## ◆ extract_rho

Real CommandLine::extract_rho

## ◆ extract_rho_begin

Real CommandLine::extract_rho_begin

## ◆ extract_samples

int CommandLine::extract_samples

## ◆ factorizer

std::string CommandLine::factorizer

## ◆ fail_on_sub_iter

bool CommandLine::fail_on_sub_iter

## ◆ fast_bessel

bool CommandLine::fast_bessel

## ◆ gpu_host_multiply

bool CommandLine::gpu_host_multiply

## ◆ gpu_large_data

bool CommandLine::gpu_large_data

## ◆ gpu_multiply

bool CommandLine::gpu_multiply

## ◆ groupsize

int CommandLine::groupsize

## ◆ hyb_additional_levels

int CommandLine::hyb_additional_levels

## ◆ ilu_max_iter

int CommandLine::ilu_max_iter

## ◆ inputfile

std::ifstream CommandLine::inputfile

## ◆ itertol

Real CommandLine::itertol

## ◆ itinerary

int CommandLine::itinerary

## ◆ kpa_drop

Real CommandLine::kpa_drop

## ◆ kpa_simple_rad

bool CommandLine::kpa_simple_rad

## ◆ lightweight_full

bool CommandLine::lightweight_full

## ◆ lightweight_radial_cache

bool CommandLine::lightweight_radial_cache

## ◆ map_solution

std::vector<std::string> CommandLine::map_solution

## ◆ map_solution_target

std::string CommandLine::map_solution_target

## ◆ max_sub_iter

int CommandLine::max_sub_iter

## ◆ multigrid_coarse_prec

int CommandLine::multigrid_coarse_prec

## ◆ multigrid_depth

int CommandLine::multigrid_depth

## ◆ mumps_outofcore

bool CommandLine::mumps_outofcore

## ◆ mumps_verbose

int CommandLine::mumps_verbose

## ◆ noluupdate

bool CommandLine::noluupdate

## ◆ ocl_device

unsigned CommandLine::ocl_device

## ◆ ocl_platform

unsigned CommandLine::ocl_platform

## ◆ outofcore

bool CommandLine::outofcore

## ◆ parallel

bool CommandLine::parallel

## ◆ parallel_extraction

int CommandLine::parallel_extraction

## ◆ parallel_factorization

int CommandLine::parallel_factorization

## ◆ parallel_precondition

bool CommandLine::parallel_precondition

## ◆ prec_itertol

Real CommandLine::prec_itertol

## ◆ preconditioner

std::string CommandLine::preconditioner

## ◆ refine_solution

bool CommandLine::refine_solution

## ◆ reuse_dia_blocks

bool CommandLine::reuse_dia_blocks

## ◆ runtime_postprocess

bool CommandLine::runtime_postprocess

## ◆ scratch

std::string CommandLine::scratch

## ◆ shared_scratch

bool CommandLine::shared_scratch

## ◆ ssor

Real CommandLine::ssor

## ◆ sub_prec_verbose

bool CommandLine::sub_prec_verbose

## ◆ wholematrix

bool CommandLine::wholematrix

## ◆ write_intermediate_solutions

bool CommandLine::write_intermediate_solutions

## ◆ writegrid

bool CommandLine::writegrid

## ◆ zipdata

struct CommandLine::s_zipdata CommandLine::zipdata

The documentation for this class was generated from the following files:

- src/io.h
- src/io.cpp