SpECTRE
v2025.03.17
|
A simple Richardson scheme for solving a system of linear equations
#include <Richardson.hpp>
Public Types | |
using | fields_tag = FieldsTag |
using | options_group = OptionsGroup |
using | source_tag = SourceTag |
using | operand_tag = fields_tag |
using | component_list = implementation defined |
using | observed_reduction_data_tags = observers::make_reduction_data_tags< tmpl::list< async_solvers::reduction_data > > |
using | initialize_element = async_solvers::InitializeElement< FieldsTag, OptionsGroup, SourceTag > |
using | register_element = async_solvers::RegisterElement< FieldsTag, OptionsGroup, SourceTag, ArraySectionIdTag > |
template<typename ApplyOperatorActions , typename Label = OptionsGroup> | |
using | solve = implementation defined |
A simple Richardson scheme for solving a system of linear equations
LinearSolver::cg::ConjugateGradient
or LinearSolver::gmres::Gmres
for more useful general-purpose linear solvers.In each step the solution is updated from its initial state
where
The scheme converges if the spectral radius (i.e. the largest absolute eigenvalue) of the iteration operator
for optimal convergence.
ArraySectionIdTag
template parameter if residual norms should be computed over a section. Pass void
(default) to compute residual norms over all elements in the array.