LisSolver
The GeMA Lis Numeric Solver Plugin
Plugin options

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.

Example

NumericalSolver
{
id = 'solver',
typeName = 'LisSolver',
description = 'Iterative matrix solver',
solverMethod = 'bicg',
precond = 'jacobi',
}

Fields

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