dune-fem 2.8.0
Loading...
Searching...
No Matches
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 <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 DomainFunction::RangeFieldType DomainFieldType
 field type of the operator's domain
 

Public Member Functions

 CGInverseOperator (RealType redEps, RealType absLimit, unsigned int maxIter, bool verbose, const ParameterReader &parameter=Parameter::container())
 constructor of CGInverseOperator
 
 CGInverseOperator (const SolverParameter &param=SolverParameter(Parameter::container()))
 
 CGInverseOperator (RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader &parameter=Parameter::container())
 constructor of CGInverseOperator
 
 CGInverseOperator (RealType redEps, RealType absLimit, const ParameterReader &parameter=Parameter::container())
 
 CGInverseOperator (const OperatorType &op, RealType redEps, RealType absLimit, unsigned int maxIter, bool verbose, const ParameterReader &parameter=Parameter::container())
 constructor of CGInverseOperator
 
 CGInverseOperator (const OperatorType &op, RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader &parameter=Parameter::container())
 constructor of CGInverseOperator
 
 CGInverseOperator (const OperatorType &op, RealType redEps, RealType absLimit, const ParameterReader &parameter=Parameter::container())
 
 CGInverseOperator (const OperatorType &op, const PreconditionerType &precond, RealType redEps, RealType absLimit, unsigned int maxIter, bool verbose, const ParameterReader &parameter=Parameter::container())
 constructor of CGInverseOperator
 
 CGInverseOperator (const OperatorType &op, const PreconditionerType &precond, RealType redEps, RealType absLimit, const ParameterReader &parameter=Parameter::container())
 constructor of CGInverseOperator
 
 CGInverseOperator (const OperatorType &op, const PreconditionerType &precond, RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader &parameter=Parameter::container())
 
void bind (const OperatorType &op)
 
void bind (const OperatorType &op, const PreconditionerType &precond)
 
void unbind ()
 
virtual void operator() (const DomainFunctionType &arg, RangeFunctionType &dest) const
 application operator
 
template<typename... A>
void prepare (A...) const
 
virtual void apply (const DomainFunctionType &arg, RangeFunctionType &dest) const
 application operator
 
unsigned int iterations () const
 number of iterations needed for last solve
 
void setMaxIterations (unsigned int maxIter)
 
double averageCommTime () const
 return average communication time during last solve
 
virtual void finalize ()
 finalization of operator
 

Protected Attributes

const OperatorTypeoperator_ = nullptr
 
const PreconditionerTypepreconditioner_ = nullptr
 
SolverType solver_
 
SolverParameter 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

◆ DomainFieldType

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

field type of the operator's domain

◆ DomainFunctionType

template<class DiscreteFunction >
typedef BaseType::DomainFunctionType Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::DomainFunctionType

◆ OperatorType

template<class DiscreteFunction >
typedef Fem::Operator< DomainFunctionType, RangeFunctionType > Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::OperatorType

◆ PreconditionerType

template<class DiscreteFunction >
typedef Fem::Operator< RangeFunctionType, DomainFunctionType > Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::PreconditionerType

◆ RangeFieldType

template<class DiscreteFunction >
typedef OperatorType::RangeFieldType Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::RangeFieldType

◆ RangeFunctionType

template<class DiscreteFunction >
typedef BaseType::RangeFunctionType Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::RangeFunctionType

◆ RealType

template<class DiscreteFunction >
typedef Dune::FieldTraits<RangeFieldType>::real_type Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::RealType

Constructor & Destructor Documentation

◆ CGInverseOperator() [1/10]

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

constructor of CGInverseOperator

Parameters
[in]redEpsreduction epsilon
[in]absLimitabsolut limit of residual
[in]maxItermaximum number of iteration steps
[in]verboseverbosity

◆ CGInverseOperator() [2/10]

template<class DiscreteFunction >
Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::CGInverseOperator ( const SolverParameter param = SolverParameter(Parameter::container() ))
inline

◆ CGInverseOperator() [3/10]

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

constructor of CGInverseOperator

Parameters
[in]redEpsreduction epsilon
[in]absLimitabsolut limit of residual
[in]maxItermaximum number of iteration steps

◆ CGInverseOperator() [4/10]

template<class DiscreteFunction >
Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::CGInverseOperator ( RealType  redEps,
RealType  absLimit,
const ParameterReader parameter = Parameter::container() 
)
inline

◆ CGInverseOperator() [5/10]

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

◆ CGInverseOperator() [6/10]

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

◆ CGInverseOperator() [7/10]

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

◆ CGInverseOperator() [8/10]

template<class DiscreteFunction >
Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::CGInverseOperator ( const OperatorType op,
const PreconditionerType precond,
RealType  redEps,
RealType  absLimit,
unsigned int  maxIter,
bool  verbose,
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
[in]verboseverbosity

◆ CGInverseOperator() [9/10]

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

◆ CGInverseOperator() [10/10]

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

◆ apply()

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

◆ averageCommTime()

template<class DiscreteFunction >
double Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::averageCommTime ( ) const
inline

return average communication time during last solve

◆ bind() [1/2]

template<class DiscreteFunction >
void Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::bind ( const OperatorType op)
inline

◆ bind() [2/2]

template<class DiscreteFunction >
void Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::bind ( const OperatorType op,
const PreconditionerType precond 
)
inline

◆ finalize()

virtual void Dune::Fem::Operator< DiscreteFunction , DiscreteFunction >::finalize ( )
inlinevirtualinherited

finalization of operator

Note
The default implementation is empty.

◆ iterations()

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

number of iterations needed for last solve

◆ operator()()

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 >.

◆ prepare()

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

◆ setMaxIterations()

template<class DiscreteFunction >
void Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::setMaxIterations ( unsigned int  maxIter)
inline

◆ unbind()

template<class DiscreteFunction >
void Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::unbind ( )
inline

Member Data Documentation

◆ operator_

template<class DiscreteFunction >
const OperatorType* Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::operator_ = nullptr
protected

◆ parameter_

template<class DiscreteFunction >
SolverParameter Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::parameter_
protected

◆ preconditioner_

template<class DiscreteFunction >
const PreconditionerType* Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::preconditioner_ = nullptr
protected

◆ solver_

template<class DiscreteFunction >
SolverType Dune::Fem::Solver::CGInverseOperator< DiscreteFunction >::solver_
protected

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