![]() |
deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+00:00
|
#include <deal.II/lac/solver_gmres.h>
Standardized data struct to pipe additional data to the solver.
Definition at line 420 of file solver_gmres.h.
Public Member Functions | |
| AdditionalData (const unsigned int max_basis_size=30, const bool right_preconditioning=false, const bool use_default_residual=true, const bool force_re_orthogonalization=false, const bool batched_mode=false, const LinearAlgebra::OrthogonalizationStrategy orthogonalization_strategy=LinearAlgebra::OrthogonalizationStrategy::delayed_classical_gram_schmidt) | |
|
explicit |
Constructor. By default, set the size of the Arnoldi basis to 30. Also set preconditioning from left, the residual of the stopping criterion to the default residual, and re-orthogonalization only if necessary. Also, the batched mode with reduced functionality to track information is disabled by default. Finally, the default orthogonalization algorithm is the classical Gram-Schmidt method with delayed reorthogonalization, which combines stability with fast execution, especially in parallel.
| unsigned int SolverGMRES< VectorType >::AdditionalData::max_n_tmp_vectors |
Maximum number of temporary vectors. Together with max_basis_size, this parameter controls the size of the Arnoldi basis, which corresponds to max_n_tmp_vectors-2 as used in previous versions of the deal.II library. SolverGMRES assumes that there are at least three temporary vectors, so this value must be greater than or equal to three. If both this variable and max_basis_size are set to a non-zero value, the choice in max_basis_size takes precedence.
Definition at line 453 of file solver_gmres.h.
| unsigned int SolverGMRES< VectorType >::AdditionalData::max_basis_size |
Maximum size of the Arnoldi basis. SolverGMRES assumes that there is at least one vector in the Arnoldi basis, so this value must be greater than or equal to one. Note that whenever this variable is set to a non-zero value, including the value set by the default constructor, this variable takes precedence over max_n_tmp_vectors.
Definition at line 462 of file solver_gmres.h.
| bool SolverGMRES< VectorType >::AdditionalData::right_preconditioning |
Flag for right preconditioning.
Definition at line 471 of file solver_gmres.h.
| bool SolverGMRES< VectorType >::AdditionalData::use_default_residual |
Flag for the default residual that is used to measure convergence.
Definition at line 476 of file solver_gmres.h.
| bool SolverGMRES< VectorType >::AdditionalData::force_re_orthogonalization |
Flag to force re-orthogonalization of orthonormal basis in every step. If set to false, the solver automatically checks for loss of orthogonality every 5 iterations and enables re-orthogonalization only if necessary.
Definition at line 484 of file solver_gmres.h.
| bool SolverGMRES< VectorType >::AdditionalData::batched_mode |
Flag to control whether a reduced mode of the solver should be run. If set to true, all signals set by the users are ignored, eigenvalue computation is disabled, and no output to the log deallog is produced.
This is useful when running SolverGMRES instances involving very small and cheap linear systems where the additional checks, like checking if any of the signals has a connection, would cause a noticeable performance overhead.
Definition at line 497 of file solver_gmres.h.
| LinearAlgebra::OrthogonalizationStrategy SolverGMRES< VectorType >::AdditionalData::orthogonalization_strategy |
Strategy to orthogonalize vectors.
Definition at line 502 of file solver_gmres.h.