|
dune-fem
2.8-git
|
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 <dune/fem/solver/cginverseoperator.hh>

Public Types | |
| typedef SolverParameter | SolverParameterType |
| 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 DomainFunction::RangeFieldType | DomainFieldType |
| field type of the operator's domain More... | |
Public Member Functions | |
| CGInverseOperator (const SolverParameter ¶m=SolverParameter(Parameter::container())) | |
| CGInverseOperator (RealType redEps, RealType absLimit, unsigned int maxIter, bool verbose, const ParameterReader ¶meter=Parameter::container()) | |
| constructor of CGInverseOperator More... | |
| CGInverseOperator (RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader ¶meter=Parameter::container()) | |
| constructor of CGInverseOperator More... | |
| CGInverseOperator (RealType redEps, RealType absLimit, const ParameterReader ¶meter=Parameter::container()) | |
| template<class LinearOperator , std::enable_if_t< std::is_base_of< OperatorType, LinearOperator >::value, int > = 0> | |
| 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 , std::enable_if_t< std::is_base_of< OperatorType, LinearOperator >::value, int > = 0> | |
| CGInverseOperator (const LinearOperator &op, RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader ¶meter=Parameter::container()) | |
| constructor of CGInverseOperator More... | |
| template<class LinearOperator , std::enable_if_t< std::is_base_of< OperatorType, LinearOperator >::value, int > = 0> | |
| 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, bool verbose, const ParameterReader ¶meter=Parameter::container()) | |
| constructor of CGInverseOperator More... | |
| 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()) | |
| template<class LinearOperator , std::enable_if_t< std::is_base_of< OperatorType, LinearOperator >::value, int > = 0> | |
| void | bind (const LinearOperator &op) |
| void | unbind () |
| void | bind (const OperatorType &op) |
| void | bind (const OperatorType &op, const PreconditionerType &precond) |
| virtual void | operator() (const DomainFunctionType &arg, RangeFunctionType &dest) const |
| application operator More... | |
| template<typename... A> | |
| void | prepare (A...) 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... | |
| void | setMaxIterations (unsigned int maxIter) |
| double | averageCommTime () const |
| return average communication time during last solve More... | |
| virtual void | finalize () |
| finalization of operator More... | |
Protected Member Functions | |
| template<class LinearOperator > | |
| void | checkPreconditioning (const LinearOperator &linearOp) |
Protected Attributes | |
| std::unique_ptr< PreconditioningType > | precondObj_ |
| const OperatorType * | operator_ = nullptr |
| const PreconditionerType * | preconditioner_ = nullptr |
| SolverType | solver_ |
| SolverParameter | 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 |
| typedef SolverParameter Dune::Fem::CGInverseOperator< DiscreteFunction, Op >::SolverParameterType |
|
inline |
|
inline |
constructor of CGInverseOperator
| [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] | 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] | 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 |
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 |
|
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
|
inline |
|
inlineinherited |
|
inlineinherited |
|
inlineprotected |
|
inlinevirtualinherited |
finalization of operator
|
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 |
|
inlineinherited |
|
inline |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protected |
|
protectedinherited |