dune-fem
2.4.1-rc
|
Inverse operator base on CG method. Uses a runtime parameter fem.preconditioning which enables diagonal preconditioning if diagonal matrix entries are available, i.e., Op :: assembled is true. More...
#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/solver/cginverseoperator.hh>
Public Types | |
typedef BaseType::DomainFunctionType | DomainFunctionType |
typedef BaseType::RangeFunctionType | RangeFunctionType |
typedef DomainFunctionType | DestinationType |
typedef Op | OperatorType |
type of operator More... | |
typedef OperatorType::RangeFieldType | RangeFieldType |
typedef Dune::FieldTraits< RangeFieldType >::real_type | RealType |
typedef Fem::Operator< RangeFunctionType, DomainFunctionType > | PreconditioningType |
typedef Fem::Operator< RangeFunctionType, DomainFunctionType > | PreconditionerType |
typedef DiscreteFunction::RangeFieldType | DomainFieldType |
field type of the operator's domain More... | |
Public Member Functions | |
template<class LinearOperator > | |
CGInverseOperator (const LinearOperator &op, RealType redEps, RealType absLimit, unsigned int maxIter, bool verbose, const ParameterReader ¶meter=Parameter::container()) | |
constructor of CGInverseOperator More... | |
template<class LinearOperator > | |
CGInverseOperator (const LinearOperator &op, RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader ¶meter=Parameter::container()) | |
constructor of CGInverseOperator More... | |
template<class LinearOperator > | |
CGInverseOperator (const LinearOperator &op, RealType redEps, RealType absLimit, const ParameterReader ¶meter=Parameter::container()) | |
CGInverseOperator (const OperatorType &op, const PreconditioningType &precond, RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader ¶meter=Parameter::container()) | |
constructor of CGInverseOperator More... | |
CGInverseOperator (const OperatorType &op, const PreconditioningType &precond, RealType redEps, RealType absLimit, const ParameterReader ¶meter=Parameter::container()) | |
~CGInverseOperator () | |
destructor More... | |
virtual void | operator() (const DomainFunctionType &arg, RangeFunctionType &dest) const |
application operator More... | |
template<typename... A> | |
void | prepare (A...) const |
void | finalize () const |
virtual void | apply (const DomainFunctionType &arg, RangeFunctionType &dest) const |
application operator More... | |
unsigned int | iterations () const |
number of iterations needed for last solve More... | |
double | averageCommTime () const |
return average communication time during last solve More... | |
Protected Member Functions | |
template<class LinearOperator > | |
void | checkPreconditioning (const LinearOperator &linearOp) |
Protected Attributes | |
PreconditioningType * | precondObj_ |
const OperatorType & | operator_ |
const PreconditionerType * | preconditioner_ |
SolverType | solver_ |
ParameterReader | parameter_ |
Inverse operator base on CG method. Uses a runtime parameter fem.preconditioning which enables diagonal preconditioning if diagonal matrix entries are available, i.e., Op :: assembled is true.
typedef DomainFunctionType Dune::Fem::CGInverseOperator< DiscreteFunction, Op >::DestinationType |
|
inherited |
field type of the operator's domain
typedef BaseType::DomainFunctionType Dune::Fem::CGInverseOperator< DiscreteFunction, Op >::DomainFunctionType |
typedef Op Dune::Fem::CGInverseOperator< DiscreteFunction, Op >::OperatorType |
type of operator
|
inherited |
typedef Fem::Operator< RangeFunctionType,DomainFunctionType > Dune::Fem::CGInverseOperator< DiscreteFunction, Op >::PreconditioningType |
typedef OperatorType::RangeFieldType Dune::Fem::CGInverseOperator< DiscreteFunction, Op >::RangeFieldType |
typedef BaseType::RangeFunctionType Dune::Fem::CGInverseOperator< DiscreteFunction, Op >::RangeFunctionType |
typedef Dune::FieldTraits< RangeFieldType >::real_type Dune::Fem::CGInverseOperator< DiscreteFunction, Op >::RealType |
|
inline |
constructor of CGInverseOperator
[in] | op | operator to invert |
[in] | redEps | reduction epsilon |
[in] | absLimit | absolut limit of residual |
[in] | maxIter | maximum number of iteration steps |
[in] | verbose | verbosity |
|
inline |
constructor of CGInverseOperator
[in] | op | operator to invert |
[in] | redEps | reduction epsilon |
[in] | absLimit | absolut limit of residual |
[in] | maxIter | maximum number of iteration steps |
|
inline |
|
inline |
constructor of CGInverseOperator
[in] | op | operator to invert |
[in] | precond | precondition operator |
[in] | redEps | reduction epsilon |
[in] | absLimit | absolut limit of residual |
[in] | maxIter | maximum number of iteration steps |
|
inline |
|
inline |
destructor
|
inlinevirtualinherited |
application operator
The application operator actually solves the linear system using the CG method.
[in] | arg | argument discrete function |
[out] | dest | destination discrete function |
|
inlineinherited |
return average communication time during last solve
|
inlineprotected |
|
inlineinherited |
|
inlineinherited |
number of iterations needed for last solve
|
inlinevirtualinherited |
application operator
The application operator actually solves the linear system using the CG method.
[in] | arg | argument discrete function |
[out] | dest | destination discrete function |
Implements Dune::Fem::Operator< DiscreteFunction, DiscreteFunction >.
|
inlineinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protected |
|
protectedinherited |