- Home
- About DUNE
- Download
- Documentation
- Community
- Development
conjugate gradient method More...
#include <dune/istl/solvers.hh>
Public Types | |
typedef X | domain_type |
The domain type of the operator to be inverted. | |
typedef X | range_type |
The range type of the operator to be inverted. | |
typedef X::field_type | field_type |
The field type of the operator to be inverted. | |
Public Member Functions | |
template<class L , class P > | |
CGSolver (L &op, P &prec, double reduction, int maxit, int verbose) | |
Set up conjugate gradient solver. | |
template<class L , class S , class P > | |
CGSolver (L &op, S &sp, P &prec, double reduction, int maxit, int verbose) | |
Set up conjugate gradient solver. | |
virtual void | apply (X &x, X &b, InverseOperatorResult &res) |
Apply inverse operator. | |
virtual void | apply (X &x, X &b, double reduction, InverseOperatorResult &res) |
Apply inverse operator with given reduction factor. | |
Protected Types | |
enum | |
Protected Member Functions | |
void | printHeader (std::ostream &s) const |
helper function for printing header of solver output | |
void | printOutput (std::ostream &s, const double iter, const DataType &norm, const DataType &norm_old) const |
helper function for printing solver output | |
void | printOutput (std::ostream &s, const double iter, const DataType &norm) const |
helper function for printing solver output |
conjugate gradient method
typedef X Dune::CGSolver< X >::domain_type |
The domain type of the operator to be inverted.
Reimplemented from Dune::InverseOperator< X, X >.
typedef X::field_type Dune::CGSolver< X >::field_type |
The field type of the operator to be inverted.
Reimplemented from Dune::InverseOperator< X, X >.
typedef X Dune::CGSolver< X >::range_type |
The range type of the operator to be inverted.
Reimplemented from Dune::InverseOperator< X, X >.
anonymous enum [protected, inherited] |
Dune::CGSolver< X >::CGSolver | ( | L & | op, | |
P & | prec, | |||
double | reduction, | |||
int | maxit, | |||
int | verbose | |||
) | [inline] |
Set up conjugate gradient solver.
Set up Loop solver.
op | The operator we solve. | |
prec | The preconditioner to apply in each iteration of the loop. Has to inherit from Preconditioner. | |
reduction | The relative defect reduction to achieve when applying the operator. | |
maxit | The maximum number of iteration steps allowed when applying the operator. | |
verbose | The verbosity level. |
Verbose levels are:
References Dune::SolverCategory::sequential.
Dune::CGSolver< X >::CGSolver | ( | L & | op, | |
S & | sp, | |||
P & | prec, | |||
double | reduction, | |||
int | maxit, | |||
int | verbose | |||
) | [inline] |
Set up conjugate gradient solver.
Set up loop solver.
op | The operator we solve. | |
sp | The scalar product to use, e. g. SeqScalarproduct. | |
prec | The preconditioner to apply in each iteration of the loop. Has to inherit from Preconditioner. | |
reduction | The relative defect reduction to achieve when applying the operator. | |
maxit | The maximum number of iteration steps allowed when applying the operator. | |
verbose | The verbosity level. |
Verbose levels are:
virtual void Dune::CGSolver< X >::apply | ( | X & | x, | |
X & | b, | |||
InverseOperatorResult & | res | |||
) | [inline, virtual] |
Apply inverse operator.
Apply inverse operator,.
x | The left hand side to store the result in. | |
b | The right hand side | |
res | Object to store the statistics about applying the operator. |
Implements Dune::InverseOperator< X, X >.
References Dune::LinearOperator< X, Y >::apply(), Dune::Preconditioner< X, Y >::apply(), Dune::LinearOperator< X, Y >::applyscaleadd(), Dune::InverseOperatorResult::clear(), Dune::InverseOperatorResult::conv_rate, Dune::InverseOperatorResult::converged, Dune::InverseOperatorResult::elapsed, Dune::InverseOperatorResult::iterations, Dune::Preconditioner< X, Y >::post(), Dune::Preconditioner< X, Y >::pre(), Dune::InverseOperator< X, X >::printHeader(), Dune::InverseOperator< X, X >::printOutput(), and Dune::InverseOperatorResult::reduction.
virtual void Dune::CGSolver< X >::apply | ( | X & | x, | |
X & | b, | |||
double | reduction, | |||
InverseOperatorResult & | res | |||
) | [inline, virtual] |
Apply inverse operator with given reduction factor.
apply inverse operator, with given convergence criteria.
x | The left hand side to store the result in. | |
b | The right hand side | |
reduction | The minimum defect reduction to achieve. | |
res | Object to store the statistics about applying the operator. |
Implements Dune::InverseOperator< X, X >.
void Dune::InverseOperator< X, X >::printHeader | ( | std::ostream & | s | ) | const [inline, protected, inherited] |
helper function for printing header of solver output
References Dune::InverseOperator< X, Y >::iterationSpacing, and Dune::InverseOperator< X, Y >::normSpacing.
Referenced by Dune::MINRESSolver< X >::apply(), Dune::BiCGSTABSolver< X >::apply(), Dune::CGSolver< X >::apply(), Dune::GradientSolver< X >::apply(), and Dune::LoopSolver< X >::apply().
void Dune::InverseOperator< X, X >::printOutput | ( | std::ostream & | s, | |
const double | iter, | |||
const DataType & | norm, | |||
const DataType & | norm_old | |||
) | const [inline, protected, inherited] |
helper function for printing solver output
References Dune::InverseOperator< X, Y >::iterationSpacing, and Dune::InverseOperator< X, Y >::normSpacing.
Referenced by Dune::MINRESSolver< X >::apply(), Dune::BiCGSTABSolver< X >::apply(), Dune::CGSolver< X >::apply(), Dune::GradientSolver< X >::apply(), and Dune::LoopSolver< X >::apply().
void Dune::InverseOperator< X, X >::printOutput | ( | std::ostream & | s, | |
const double | iter, | |||
const DataType & | norm | |||
) | const [inline, protected, inherited] |
helper function for printing solver output
References Dune::InverseOperator< X, Y >::iterationSpacing, and Dune::InverseOperator< X, Y >::normSpacing.
Generated on Fri Apr 29 2011 with Doxygen (ver 1.7.1) [doxygen-log,error-log].