Reference documentation for deal.II version GIT b8135fa6eb 20230325 15:55:02+00:00

#include <deal.II/lac/solver_qmrs.h>
Public Member Functions  
AdditionalData (const bool left_preconditioning=false, const double solver_tolerance=1.e9, const bool breakdown_testing=true, const double breakdown_threshold=1.e16)  
Public Attributes  
bool  left_preconditioning 
double  solver_tolerance 
bool  breakdown_testing 
double  breakdown_threshold 
Standardized data struct to pipe additional data to the solver.
The user is able to switch between right and left preconditioning, that means solving the systems P^{1}A and AP^{1} respectively, using the corresponding parameter. Note that left preconditioning means to employ the preconditioned (BiCG)residual and otherwise the unpreconditioned one. The default is the application from the right side.
The solver_tolerance
threshold is used to define the said bound below which the residual is computed exactly. See the class documentation for more information. The default value is 1e9, that is the default solving precision multiplied by ten.
SQMR is susceptible to breakdowns (divisions by zero), so we need a parameter telling us which numbers are considered zero. The proper breakdown criterion is very unclear, so experiments may be necessary here. It is even possible to achieve convergence despite of dividing through by small numbers. There are even cases in which it is advantageous to accept such divisions because the cheap iteration cost makes the algorithm the fastest of all available indefinite iterative solvers. Nonetheless, the default breakdown threshold value is 1e16.
Definition at line 121 of file solver_qmrs.h.

inlineexplicit 
Constructor.
The default is right preconditioning, with the solver_tolerance
chosen to be 1e9 and the breakdown_threshold
set at 1e16.
Definition at line 129 of file solver_qmrs.h.
bool SolverQMRS< VectorType >::AdditionalData::left_preconditioning 
Flag for using a leftpreconditioned version.
Definition at line 142 of file solver_qmrs.h.
double SolverQMRS< VectorType >::AdditionalData::solver_tolerance 
The threshold below which the current residual is computed exactly.
Definition at line 147 of file solver_qmrs.h.
bool SolverQMRS< VectorType >::AdditionalData::breakdown_testing 
Flag for breakdown testing.
Definition at line 152 of file solver_qmrs.h.
double SolverQMRS< VectorType >::AdditionalData::breakdown_threshold 
Breakdown threshold. Scalars measured to this bound are used for divisions.
Definition at line 158 of file solver_qmrs.h.