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
mumps
library for a distributed environment and, otherwise, on thesuitesparse
or theeigen
in a sequential one. The iterative solver bases oncg
conjugate gradient algorithm for symmetric positive definite matrix and on thegmres
algorithm otherwise.
preferred_library
The direct solver bases on an external library: it could be either
mumps
,suitesparse
oreigen
. When all these libraries are available, thenmumps
is the default when is is well configured with either thescoth
or themetis
ordering library. When neithermumps
norsuitesparse
are available, theeigen
choice 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
solver
when a direct solvers is selected. The result depends upon the properties of thea
matrix and upon the solver optionsopt
, especially thesopt.preferred_library
.
compute_determinant
Compute also the determinant of the matrix. Requires
mumps
orsuitesparse
.
n_refinement
Number of iterative refinement, when using a direct method (
suitesparse
only support it).
tol
This floating parameter control the tolerance for the stopping criterion. Default is the machine epsilon for the default
Float
type. Recall that the defaultFloat
type is defined at Rheolef Configuration time and isdouble
by 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
tol
when the iterative algorithm stops with succes.
n_iter
On return, gives the number of iterations performed. It is always less or equal to
max_iter
when the iterative algorithm stops with succes.
p_err
A pointer to the
diststream
where residues are printed during iterations. When this pointer is zero, no errors are printed. Default is to print toderr
standarddiststream
error.
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 thecg
conjugate 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
gmres
algorithm. 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
mumps
direct 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