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:
Collaboration graph
[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

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

Command line optionProgram itinerary
(none)StgRadial | StgSolve | StgExtract
--stg-integStgRadial
--stg-integ-solveStgRadial | StgSolve
--stg-extractStgiExtract
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: