![]() |
LisSolver
The GeMA Lis Numeric Solver Plugin
|
The syntax for creating a Lis Numeric Solver object follows the basic syntax used for creating every plugin based object. In addition, the Lis solver supports several optional attributes that can be used to configure the solver and preconditioner types that will be used, together with tolerances and several other solver specific options. This options are mainly equivalent to the set of command line options used by the Lis library. Every option has a default value so in practice none of them is required.
Field | Description | Type | Required | Def. Value |
---|---|---|---|---|
id | The numeric solver name. | String | Yes | |
typeName | The plugin name. Should be equal to "LisSolver". | String | Yes | |
description | A description of the numeric solver purpose. | String | No | |
Solver and preconditioner definition options: | ||||
solverMethod | Defines the type of linear solver to be used. Equivalent to the -i command line option. Allowed values are: "cg" , "bicg" , "cgs" , "bicgstab" , "bicgstabl" , "gpbicg" , "tfqmr" , "orthomin" , "gmres" , "jacobi" , "gs" , "sor" , "bicgsafe" , "cr" , "bicr" , "crs" , "bicrstab" , "gpbicr" , "bicrsafe" , "fgmres" , "idrs" , "idr1" , "minres" , "cocg" and "cocr" . | String | No | "bicg" |
precond | Defines the type of preconditioner to be used. Equivalent to the -p command line option. Allowed values are: "none" , "jacobi" , "ilu" , "ssor" , "hybrid" , "is" , "sainv" , "saamg" , "iluc" and "ilut" . | String | No | "none" |
adds | Enables or disables the Additive Schwarz preconditioner. Equivalent to the -adds command line option. | Boolean | No | false |
General options: | ||||
maxIter | Defines the maximum number of iterations for the solver. Equivalent to the -maxiter command line option. | Integer | No | 1000 |
tol | The convergence tolerance. Equivalent to the -tol command line option. | Number | No | 1.0e-12 |
tolW | An additional convergence tolerance, used together with tol when convCond is set to "nrm1_b" . Equivalent to the -tol_w command line option. | Number | No | 1.0 |
scale | The scaling method applied to the linear system. Equivalent to the -scale command line option. Allowed values are: "none" , "jacobi" and "symm_diag" (see the Lis docs for an explanation of each one). | String | No | "none" |
convCond | The evaluated convergence condition. Equivalent to the -conv_cond command line option. Allowed values are: "nrm2_r" , "nrm2_b" and "nrm1_b" (see the Lis docs for an explanation of each one). | String | No | "nrm2_r" |
precision | The numeric precision used by the linear solver. Equivalent to the -f command line option. Allowed values are: "double" and "quad" . | String | No | "double" |
threads | The number of threads used by the linear solver. If not given, or the given value is greater than the maximum number of concurrent threads supported by the machine, the maximum number will be used. | Integer | No | Max supported threads |
printIterations | A boolean flag that when set to true instructs the Lis solver to log the number of iterations needed for each solved linear system of equations. | Boolean | No | false |
printResidual | A boolean flag that when set to true instructs the Lis solver to log the residual error (calculated as instructed by convCond ) for each solved linear system of equations. | Boolean | No | false |
printTimes | A boolean flag that when set to true instructs the Lis solver to log a detailed set of times, including information on the preconditioner performance, for each solved linear system of equations. | Boolean | No | false |
printLisConsoleMessages | A boolean flag that when set to true enables the printing of a set of Lis generated messges. Should be used for debbuging purposes only. Since this messages are generated by the Lis library itself, and not by the GeMA plugin, they are printed on the console only (no log file entries are generated) and are not subject to the standard GeMA log configurations. Equivalent to the -print out command line option. | Boolean | No | false |
Solver related options: | ||||
bicgstabEll | The degree l used by the bicgstabl linear solver. Equivalent to the -ell command line option. | Integer | No | 2 |
orthominRestart | The restart value m used by the orthomin linear solver. Equivalent to the -restart command line option. | Integer | No | 40 |
gmresRestart | The restart value m used by the gmres linear solver. Equivalent to the -restart command line option. | Integer | No | 40 |
sorOmega | The relaxation coefficient used by the sor linear solver. Should be greater than 0.0 and less than 2.0. Equivalent to the -omega command line option. | Number | No | 1.9 |
fgmresRestart | The restart value m used by the fgmres linear solver. Equivalent to the -restart command line option. | Integer | No | 40 |
idrsIrestart | The restart value s used by the idrs linear solver. Equivalent to the -irestart command line option. | Integer | No | 2 |
Preconditioner related options: | ||||
iluFill | The fill level k used by the ilu preconditioner. Equivalent to the -ilu_fill command line option. | Integer | No | 0 |
ssorOmega | The relaxation coefficient used by the ssor preconditioner. Should be greater than 0.0 and less than 2.0. Equivalent to the -ssor_omega command line option. | Number | No | 1.0 |
hybridI | The name of the linear solver used by the hybrid preconditioner. Equivalent to the -hybrid_i command line option. Allowed values are the same as the solver names. | String | No | "sor" |
hybridMaxIter | The maximum number of iterations used by the hybrid preconditioner. Equivalent to the -hybrid_maxiter command line option. | Integer | No | 25 |
hybridTol | The convergence tolerance used by the hybrid preconditioner. Equivalent to the -hybrid_tol command line option. | Number | No | 1.0e-3 |
hybridOmega | The relaxation coefficient used by the hybrid preconditioner when using the sor linear solver. Equivalent to the -hybrid_omega command line option. | Number | No | 1.5 |
hybridEll | The degree l used by the hybrid preconditioner when using the bicgstabl linear solver. Equivalent to the -hybrid_ell command line option. | Integer | No | 2 |
hybridRestart | The restart value used by the hybrid preconditioner when using the gmres and orthomin linear solvers. Equivalent to the -hybrid_restart command line option. | Integer | No | 40 |
isAlpha | The alpha parameter used by the is preconditioner. Equivalent to the -is_alpha command line option. | Number | No | 1.0 |
isM | The m parameter used by the is preconditioner. Equivalent to the -is_m command line option. | Integer | No | 3 |
sainvDrop | The drop criterion used by the sainv preconditioner. Equivalent to the -sainv_drop command line option. | Number | No | 0.05 |
saamgUnsym | A flag to select the unsymmetric version of the saamg preconditioner. Equivalent to the -saamg_unsym command line option. | Boolean | No | false |
saamgTheta | The drop criterion used by the saamg preconditioner. Equivalent to the -saamg_theta command line option. | Number | No | 0.05 (symmetric) and 0.12 (unsymmetric) |
ilucDrop | The drop criterion used by the iluc preconditioner. Equivalent to the -iluc_drop command line option. | Number | No | 0.05 |
ilucRate | The ratio of the maximum fill-in used by the iluc preconditioner. Equivalent to the -iluc_rate command line option. | Number | No | 5.0 |
addsIter | The number of iterations used by the Additive Schwarz (adds) preconditioner. Equivalent to the -adds_iter command line option. | Integer | No | 1 |