dune-fem  2.4.1-rc
Public Types | Public Member Functions | Protected Member Functions | List of all members
Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp > Class Template Referenceabstract

inverse operator based on a newton scheme More...

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

Inheritance diagram for Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >:
Inheritance graph

Public Types

typedef JacobianOperator JacobianOperatorType
 type of operator's Jacobian More...
 
typedef DifferentiableOperator< JacobianOperatorTypeOperatorType
 type of operator to invert More...
 
typedef LInvOp LinearInverseOperatorType
 type of linear inverse operator More...
 
typedef BaseType::DomainFunctionType DomainFunctionType
 
typedef BaseType::RangeFunctionType RangeFunctionType
 
typedef BaseType::DomainFieldType DomainFieldType
 
typedef NewtonParameter ParametersType
 
typedef JacobianOperator::DomainFunctionType::RangeFieldType RangeFieldType
 field type of the operator's range More...
 

Public Member Functions

 NewtonInverseOperator (const OperatorType &op, const NewtonParameter &parameter)
 
 NewtonInverseOperator (const OperatorType &op, const ParameterReader &parameter=Parameter::container())
 
 NewtonInverseOperator (const OperatorType &op, const DomainFieldType &epsilon, const NewtonParameter &parameter)
 
 NewtonInverseOperator (const OperatorType &op, const DomainFieldType &epsilon, const ParameterReader &parameter=Parameter::container())
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const
 
int iterations () const
 
int linearIterations () const
 
bool converged () const
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const =0
 application operator More...
 

Protected Member Functions

template<class... Args>
JacobianOperatorTypejacobian (Args &&...args) const
 

Detailed Description

template<class JacobianOperator, class LInvOp>
class Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >

inverse operator based on a newton scheme

Template Parameters
Opoperator to invert (must be a DifferentiableOperator)
LInvOplinear inverse operator
Note
Verbosity of the NewtonInverseOperator is controlled via the paramter fem.solver.newton.verbose; it defaults to fem.solver.verbose.

Member Typedef Documentation

template<class JacobianOperator , class LInvOp >
typedef BaseType::DomainFieldType Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::DomainFieldType
template<class JacobianOperator , class LInvOp >
typedef BaseType::DomainFunctionType Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::DomainFunctionType
template<class JacobianOperator , class LInvOp >
typedef JacobianOperator Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::JacobianOperatorType

type of operator's Jacobian

template<class JacobianOperator , class LInvOp >
typedef LInvOp Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::LinearInverseOperatorType

type of linear inverse operator

template<class JacobianOperator , class LInvOp >
typedef DifferentiableOperator< JacobianOperatorType > Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::OperatorType

type of operator to invert

template<class JacobianOperator , class LInvOp >
typedef NewtonParameter Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::ParametersType
typedef JacobianOperator::DomainFunctionType ::RangeFieldType Dune::Fem::Operator< JacobianOperator::RangeFunctionType , JacobianOperator::DomainFunctionType >::RangeFieldType
inherited

field type of the operator's range

template<class JacobianOperator , class LInvOp >
typedef BaseType::RangeFunctionType Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::RangeFunctionType

Constructor & Destructor Documentation

template<class JacobianOperator , class LInvOp >
Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::NewtonInverseOperator ( const OperatorType op,
const NewtonParameter parameter 
)
inline

constructor

Parameters
[in]opoperator to invert
Note
The tolerance is read from the paramter fem.solver.newton.tolerance
template<class JacobianOperator , class LInvOp >
Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::NewtonInverseOperator ( const OperatorType op,
const ParameterReader parameter = Parameter::container() 
)
inlineexplicit
template<class JacobianOperator , class LInvOp >
Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::NewtonInverseOperator ( const OperatorType op,
const DomainFieldType epsilon,
const NewtonParameter parameter 
)
inline

constructor

Parameters
[in]opoperator to invert
[in]epsilontolerance for norm of residual
template<class JacobianOperator , class LInvOp >
Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::NewtonInverseOperator ( const OperatorType op,
const DomainFieldType epsilon,
const ParameterReader parameter = Parameter::container() 
)
inline

Member Function Documentation

template<class JacobianOperator , class LInvOp >
bool Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::converged ( ) const
inline

References Dune::Std::max().

template<class JacobianOperator , class LInvOp >
int Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::iterations ( ) const
inline
template<class JacobianOperator , class LInvOp >
template<class... Args>
JacobianOperatorType& Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::jacobian ( Args &&...  args) const
inlineprotected
template<class JacobianOperator , class LInvOp >
int Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::linearIterations ( ) const
inline
virtual void Dune::Fem::Operator< JacobianOperator::RangeFunctionType , JacobianOperator::DomainFunctionType >::operator() ( const DomainFunctionType u,
RangeFunctionType w 
) const
pure virtualinherited

application operator

Parameters
[in]uargument discrete function
[out]wdestination discrete function
Note
This method has to be implemented by all derived classes.
template<class JacobianOperator , class LInvOp >
void Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::operator() ( const DomainFunctionType u,
RangeFunctionType w 
) const
inlinevirtual

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