|
Rheolef
7.2
an efficient C++ finite element environment
|
direct and iterative solver options
This class implements a set of options for customizing a solver. An instance of this class can be supplied to the solver constructor.
iterative
This boolean flag controls the choice between an iterative or a direct method. Default is direct for matrix obtained from 1D or 2D PDE problems and iterative for 3D ones. The direct solver bases on the
mumpslibrary for a distributed environment and, otherwise, on thesuitesparseor theeigenin a sequential one. The iterative solver bases oncgconjugate gradient algorithm for symmetric positive definite matrix and on thegmresalgorithm otherwise.
preferred_library
The direct solver bases on an external library: it could be either
mumps,suitesparseoreigen. When all these libraries are available, thenmumpsis the default when is is well configured with either thescothor themetisordering library. When neithermumpsnorsuitesparseare available, theeigenchoice is selected. This option allows one to impose an alternative choice e.g.suitesparse, by setting the string to"suitesparse". This option can be provided as a list of choices, separated by a space or a coma, e.g.preferred_library="suitesparse eigen mumps".
default_preferred_library(a)
This method returns all the the available libraries in the decreasing preference order. The result depends upon the matrix
a, especially if it is symmetric definite positive or not, and whether it requires memory communications or not.
used_library(a,sopt)
This method returns the name of the available library that will be used by the
solverwhen a direct solvers is selected. The result depends upon the properties of theamatrix and upon the solver optionsopt, especially thesopt.preferred_library.
compute_determinant
Compute also the determinant of the matrix. Requires
mumpsorsuitesparse.
n_refinement
Number of iterative refinement, when using a direct method (
suitesparseonly support it).
tol
This floating parameter control the tolerance for the stopping criterion. Default is the machine epsilon for the default
Floattype. Recall that the defaultFloattype is defined at Rheolef Configuration time and isdoubleby default, when no special Configuration option is used.
max_iter
Maximum number of iteration when using an iterative method.
absolute_stopping
Absolute or relative stopping criterion.
With the absolute criterion, the algorithm stops whennorm(A*x-b) < tol, otherwise it stops whennorm(A*x-b) < tol*norm(b). Default is to use an absolute stopping criterion.
residue
On return, gives the obtained residue, optionally divided by the initial one when using a relative stopping. It is less or equal to
tolwhen the iterative algorithm stops with succes.
n_iter
On return, gives the number of iterations performed. It is always less or equal to
max_iterwhen the iterative algorithm stops with succes.
p_err
A pointer to the
diststreamwhere residues are printed during iterations. When this pointer is zero, no errors are printed. Default is to print toderrstandarddiststreamerror.
label
When printing errors, each line is prefixed by
[label]. When the label is empty, each iterative algorithm uses its default label, e.g."cg"for thecgconjugate gradient. By default the label is empty and this option is used to customize the convergence trace.
krylov_dimension
The dimension of the Krylov space used by the
gmresalgorithm. Default iskrylov_dimension=6.
verbose_level
Can be set to 0, 1, 2 or 3. The default is 0.
level_of_fill
Built an incomplete factorization with the prescribed level of fill [1:5].
do_check
Performs extra checks for debug.
force_seq
In distributed mode, restrict the linear system resolution to diagonal blocs per process. This option is only active when using the
mumpsdirect solver.
ooc
Out-of-core limit (Mo/percent depending on compilation options). In development.
amalgamation
Level of amalgamation [10:70] for Kass. In development.
This documentation has been generated from file linalg/lib/solver_option.h