dune-fem  2.4.1-rc
Public Types | Public Member Functions | Protected Attributes | List of all members
Dune::Fem::Solver::CGInverseOperator< DiscreteFunction > Class Template Reference

Inverse operator base on CG method. This is the base class for the cg solver and does not imvolve any runtime parametrization. More...

#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/solver/cginverseoperator.hh>

Inheritance diagram for Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >:
Inheritance graph

Public Types

typedef BaseType::DomainFunctionType DomainFunctionType
 
typedef BaseType::RangeFunctionType RangeFunctionType
 
typedef Fem::Operator< DomainFunctionType, RangeFunctionTypeOperatorType
 
typedef Fem::Operator< RangeFunctionType, DomainFunctionTypePreconditionerType
 
typedef OperatorType::RangeFieldType RangeFieldType
 
typedef Dune::FieldTraits< RangeFieldType >::real_type RealType
 
typedef DiscreteFunction::RangeFieldType DomainFieldType
 field type of the operator's domain More...
 

Public Member Functions

 CGInverseOperator (const OperatorType &op, RealType redEps, RealType absLimit, unsigned int maxIter, bool verbose, const ParameterReader &parameter=Parameter::container())
 constructor of CGInverseOperator More...
 
 CGInverseOperator (const OperatorType &op, RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader &parameter=Parameter::container())
 constructor of CGInverseOperator More...
 
 CGInverseOperator (const OperatorType &op, RealType redEps, RealType absLimit, const ParameterReader &parameter=Parameter::container())
 
 CGInverseOperator (const OperatorType &op, const PreconditionerType &precond, RealType redEps, RealType absLimit, const ParameterReader &parameter=Parameter::container())
 constructor of CGInverseOperator More...
 
 CGInverseOperator (const OperatorType &op, const PreconditionerType &precond, RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader &parameter=Parameter::container())
 
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 Attributes

const OperatorTypeoperator_
 
const PreconditionerTypepreconditioner_
 
SolverType solver_
 
ParameterReader parameter_
 

Detailed Description

template<class DiscreteFunction>
class Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >

Inverse operator base on CG method. This is the base class for the cg solver and does not imvolve any runtime parametrization.

Member Typedef Documentation

typedef DiscreteFunction ::RangeFieldType Dune::Fem::Operator< DiscreteFunction , DiscreteFunction >::DomainFieldType
inherited

field type of the operator's domain

template<class DiscreteFunction >
typedef BaseType::DomainFunctionType Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::DomainFunctionType
template<class DiscreteFunction >
typedef Fem::Operator< DomainFunctionType, RangeFunctionType > Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::OperatorType
template<class DiscreteFunction >
typedef Fem::Operator< RangeFunctionType, DomainFunctionType > Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::PreconditionerType
template<class DiscreteFunction >
typedef OperatorType::RangeFieldType Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::RangeFieldType
template<class DiscreteFunction >
typedef BaseType::RangeFunctionType Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::RangeFunctionType
template<class DiscreteFunction >
typedef Dune::FieldTraits< RangeFieldType >::real_type Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::RealType

Constructor & Destructor Documentation

template<class DiscreteFunction >
Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::CGInverseOperator ( const OperatorType op,
RealType  redEps,
RealType  absLimit,
unsigned int  maxIter,
bool  verbose,
const ParameterReader parameter = Parameter::container() 
)
inline

constructor of CGInverseOperator

Parameters
[in]opoperator to invert
[in]redEpsreduction epsilon
[in]absLimitabsolut limit of residual
[in]maxItermaximum number of iteration steps
[in]verboseverbosity
template<class DiscreteFunction >
Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::CGInverseOperator ( const OperatorType op,
RealType  redEps,
RealType  absLimit,
unsigned int  maxIter,
const ParameterReader parameter = Parameter::container() 
)
inline

constructor of CGInverseOperator

Parameters
[in]opoperator to invert
[in]redEpsreduction epsilon
[in]absLimitabsolut limit of residual
[in]maxItermaximum number of iteration steps
template<class DiscreteFunction >
Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::CGInverseOperator ( const OperatorType op,
RealType  redEps,
RealType  absLimit,
const ParameterReader parameter = Parameter::container() 
)
inline
template<class DiscreteFunction >
Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::CGInverseOperator ( const OperatorType op,
const PreconditionerType precond,
RealType  redEps,
RealType  absLimit,
const ParameterReader parameter = Parameter::container() 
)
inline

constructor of CGInverseOperator

Parameters
[in]opoperator to invert
[in]precondprecondition operator
[in]redEpsreduction epsilon
[in]absLimitabsolut limit of residual
[in]maxItermaximum number of iteration steps
template<class DiscreteFunction >
Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::CGInverseOperator ( const OperatorType op,
const PreconditionerType precond,
RealType  redEps,
RealType  absLimit,
unsigned int  maxIter,
const ParameterReader parameter = Parameter::container() 
)
inline

Member Function Documentation

template<class DiscreteFunction >
virtual void Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::apply ( const DomainFunctionType arg,
RangeFunctionType dest 
) const
inlinevirtual

application operator

The application operator actually solves the linear system $op(dest) = arg$ using the CG method.

Parameters
[in]argargument discrete function
[out]destdestination discrete function
template<class DiscreteFunction >
double Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::averageCommTime ( ) const
inline

return average communication time during last solve

template<class DiscreteFunction >
void Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::finalize ( ) const
inline
template<class DiscreteFunction >
unsigned int Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::iterations ( ) const
inline

number of iterations needed for last solve

template<class DiscreteFunction >
virtual void Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::operator() ( const DomainFunctionType arg,
RangeFunctionType dest 
) const
inlinevirtual

application operator

The application operator actually solves the linear system $op(dest) = arg$ using the CG method.

Parameters
[in]argargument discrete function
[out]destdestination discrete function

Implements Dune::Fem::Operator< DiscreteFunction, DiscreteFunction >.

template<class DiscreteFunction >
template<typename... A>
void Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::prepare ( A...  ) const
inline

Member Data Documentation

template<class DiscreteFunction >
const OperatorType& Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::operator_
protected
template<class DiscreteFunction >
ParameterReader Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::parameter_
protected
template<class DiscreteFunction >
const PreconditionerType* Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::preconditioner_
protected
template<class DiscreteFunction >
SolverType Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::solver_
protected

The documentation for this class was generated from the following file: