|
dune-fem 2.12-git
|
Loading...
Searching...
No Matches
Classes |
Public Types |
Public Member Functions |
Static Public Attributes |
Protected Member Functions |
Protected Attributes |
List of all members
Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp > Class Template Referenceabstract
inverse operator based on a newton scheme More...
#include <dune/fem/solver/newtoninverseoperator.hh>
Inheritance diagram for Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >:

Public Types | |
| typedef JacobianOperator | JacobianOperatorType |
| type of operator's Jacobian | |
| typedef DifferentiableOperator< JacobianOperatorType > | OperatorType |
| type of operator to invert | |
| typedef LInvOp | LinearInverseOperatorType |
| type of linear inverse operator | |
| typedef SelectPreconditioning< LinearInverseOperatorType >::type | PreconditionerType |
| typedef BaseType::DomainFunctionType | DomainFunctionType |
| typedef BaseType::RangeFunctionType | RangeFunctionType |
| typedef BaseType::DomainFieldType | DomainFieldType |
| typedef NewtonParameter< typename LinearInverseOperatorType::SolverParameterType > | ParameterType |
| typedef std::function< bool(const RangeFunctionType &w, const RangeFunctionType &dw, double residualNorm) > | ErrorMeasureType |
| typedef Impl::SolverInfo | SolverInfoType |
| performance info about last solver call | |
| typedef RangeFunction::RangeFieldType | RangeFieldType |
| field type of the operator's range | |
Public Member Functions | |
| NewtonInverseOperator (LinearInverseOperatorType jInv, const DomainFieldType &epsilon, const ParameterType ¶meter) | |
| NewtonInverseOperator (const ParameterType ¶meter=ParameterType(Parameter::container())) | |
| NewtonInverseOperator (const DomainFieldType &epsilon, const ParameterType ¶meter) | |
| NewtonInverseOperator (const DomainFieldType &epsilon, const ParameterReader ¶meter=Parameter::container()) | |
| void | setErrorMeasure (ErrorMeasureType finished) |
| EisenstatWalkerStrategy & | eisenstatWalker () |
| void | bind (const OperatorType &op) |
| void | bind (const OperatorType &op, const PreconditionerType &preconditioner) |
| void | unbind () |
| virtual void | operator() (const DomainFunctionType &u, RangeFunctionType &w) const |
| int | iterations () const |
| void | setMaxIterations (int maxIterations) |
| int | linearIterations () const |
| void | setMaxLinearIterations (int maxLinearIterations) |
| void | updateLinearTolerance () const |
| bool | verbose () const |
| double | residual () const |
| NewtonFailure | failed () const |
| bool | converged () const |
| virtual int | lineSearch (RangeFunctionType &w, RangeFunctionType &dw, const DomainFunctionType &u, DomainFunctionType &residual) const |
| const std::vector< double > & | timing () const |
| returns [overall, jacobian, solve] timings in seconds for last operator () call. | |
| SolverInfoType | info () const |
| return performance information about last solver run */ | |
| virtual void | operator() (const DomainFunctionType &u, RangeFunctionType &w) const=0 |
| application operator | |
| virtual void | finalize () |
| finalization of operator | |
| virtual bool | nonlinear () const |
Static Public Attributes | |
| static constexpr bool | preconditioningAvailable = SelectPreconditioning< LinearInverseOperatorType > :: value |
| type of preconditioner for linear solver | |
Protected Member Functions | |
| void | bindOperatorAndPreconditioner (JacobianOperatorType &jOp) const |
| template<class ... Args> | |
| JacobianOperatorType & | jacobian (Args &&... args) const |
Protected Attributes | |
| const OperatorType * | op_ = nullptr |
| const PreconditionerType * | preconditioner_ = nullptr |
| const bool | verbose_ |
| const int | maxLineSearchIterations_ |
| DomainFieldType | delta_ |
| int | iterations_ |
| int | linearIterations_ |
| LinearInverseOperatorType | jInv_ |
| std::unique_ptr< JacobianOperatorType > | jOp_ |
| ParameterType | parameter_ |
| int | stepCompleted_ |
| const int | lsMethod_ |
| ErrorMeasureType | finished_ |
| const int | forcing_ |
| EisenstatWalkerStrategy | eisenstatWalker_ |
| std::vector< double > | timing_ |
Detailed Description
template<class JacobianOperator, class LInvOp>
class Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >
class Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >
inverse operator based on a newton scheme
- Template Parameters
-
Op operator to invert (must be a DifferentiableOperator) LInvOp linear inverse operator
- Note
- Verbosity of the NewtonInverseOperator is controlled via the parameter fem.solver.nonlinear.verbose; it defaults to fem.solver.verbose.
- Similar to CG solver the initial guess should take the constraints into account. In this case we need the initial residual to be zero on the boundary, i.e., when calling operator()(u,w) then w=g+u should hold on the Dirichlet boundary. This way we do not explicitly need to call the constraints here.
Member Typedef Documentation
◆ DomainFieldType
template<class JacobianOperator , class LInvOp >
| typedef BaseType::DomainFieldType Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::DomainFieldType |
◆ DomainFunctionType
template<class JacobianOperator , class LInvOp >
| typedef BaseType::DomainFunctionType Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::DomainFunctionType |
◆ ErrorMeasureType
template<class JacobianOperator , class LInvOp >
| typedef std::function< bool ( const RangeFunctionType &w, const RangeFunctionType &dw, double residualNorm ) > Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::ErrorMeasureType |
◆ JacobianOperatorType
template<class JacobianOperator , class LInvOp >
| typedef JacobianOperator Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::JacobianOperatorType |
type of operator's Jacobian
◆ LinearInverseOperatorType
template<class JacobianOperator , class LInvOp >
| typedef LInvOp Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::LinearInverseOperatorType |
type of linear inverse operator
◆ OperatorType
template<class JacobianOperator , class LInvOp >
| typedef DifferentiableOperator< JacobianOperatorType > Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::OperatorType |
type of operator to invert
◆ ParameterType
template<class JacobianOperator , class LInvOp >
| typedef NewtonParameter<typename LinearInverseOperatorType::SolverParameterType> Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::ParameterType |
◆ PreconditionerType
template<class JacobianOperator , class LInvOp >
| typedef SelectPreconditioning<LinearInverseOperatorType>::type Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::PreconditionerType |
◆ RangeFieldType
|
inherited |
field type of the operator's range
◆ RangeFunctionType
template<class JacobianOperator , class LInvOp >
| typedef BaseType::RangeFunctionType Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::RangeFunctionType |
◆ SolverInfoType
template<class JacobianOperator , class LInvOp >
| typedef Impl::SolverInfo Dune::Fem::NewtonInverseOperator< JacobianOperator, LInvOp >::SolverInfoType |
performance info about last solver call
Constructor & Destructor Documentation
◆ NewtonInverseOperator() [1/4]
template<class JacobianOperator , class LInvOp >
|
inline |
◆ NewtonInverseOperator() [2/4]
template<class JacobianOperator , class LInvOp >
|
inlineexplicit |
constructor
- Note
- The tolerance is read from the parameter fem.solver.nonlinear.tolerance
◆ NewtonInverseOperator() [3/4]
template<class JacobianOperator , class LInvOp >
|
inline |
constructor
- Parameters
-
[in] epsilon tolerance for norm of residual [in] parameter parameter set for solver config.
◆ NewtonInverseOperator() [4/4]
template<class JacobianOperator , class LInvOp >
|
inline |
constructor
- Parameters
-
[in] epsilon tolerance for norm of residual [in] parameter parameter set for solver config.
Member Function Documentation
◆ bind() [1/2]
template<class JacobianOperator , class LInvOp >
|
inline |
◆ bind() [2/2]
template<class JacobianOperator , class LInvOp >
|
inline |
◆ bindOperatorAndPreconditioner()
template<class JacobianOperator , class LInvOp >
|
inlineprotected |
◆ converged()
template<class JacobianOperator , class LInvOp >
|
inline |
◆ eisenstatWalker()
template<class JacobianOperator , class LInvOp >
|
inline |
◆ failed()
template<class JacobianOperator , class LInvOp >
|
inline |
◆ finalize()
|
inlinevirtualinherited |
finalization of operator
- Note
- The default implementation is empty.
◆ info()
template<class JacobianOperator , class LInvOp >
|
inline |
return performance information about last solver run */
◆ iterations()
template<class JacobianOperator , class LInvOp >
|
inline |
◆ jacobian()
template<class JacobianOperator , class LInvOp >
template<class ... Args>
|
inlineprotected |
◆ linearIterations()
template<class JacobianOperator , class LInvOp >
|
inline |
◆ lineSearch()
template<class JacobianOperator , class LInvOp >
|
inlinevirtual |
◆ nonlinear()
|
inlinevirtualinherited |
Return true if the Operator is nonlinear and false otherwise (default is true).
◆ operator()() [1/2]
template<class JacobianOperator , class LInvOp >
|
inlinevirtual |
◆ operator()() [2/2]
|
pure virtualinherited |
application operator
- Parameters
-
[in] u argument discrete function [out] w destination discrete function
- Note
- This method has to be implemented by all derived classes.
◆ residual()
template<class JacobianOperator , class LInvOp >
|
inline |
◆ setErrorMeasure()
template<class JacobianOperator , class LInvOp >
|
inline |
◆ setMaxIterations()
template<class JacobianOperator , class LInvOp >
|
inline |
◆ setMaxLinearIterations()
template<class JacobianOperator , class LInvOp >
|
inline |
◆ timing()
template<class JacobianOperator , class LInvOp >
|
inline |
returns [overall, jacobian, solve] timings in seconds for last operator () call.
◆ unbind()
template<class JacobianOperator , class LInvOp >
|
inline |
◆ updateLinearTolerance()
template<class JacobianOperator , class LInvOp >
|
inline |
◆ verbose()
template<class JacobianOperator , class LInvOp >
|
inline |
Member Data Documentation
◆ delta_
template<class JacobianOperator , class LInvOp >
|
mutableprotected |
◆ eisenstatWalker_
template<class JacobianOperator , class LInvOp >
|
protected |
◆ finished_
template<class JacobianOperator , class LInvOp >
|
protected |
◆ forcing_
template<class JacobianOperator , class LInvOp >
|
protected |
◆ iterations_
template<class JacobianOperator , class LInvOp >
|
mutableprotected |
◆ jInv_
template<class JacobianOperator , class LInvOp >
|
mutableprotected |
◆ jOp_
template<class JacobianOperator , class LInvOp >
|
mutableprotected |
◆ linearIterations_
template<class JacobianOperator , class LInvOp >
|
mutableprotected |
◆ lsMethod_
template<class JacobianOperator , class LInvOp >
|
protected |
◆ maxLineSearchIterations_
template<class JacobianOperator , class LInvOp >
|
protected |
◆ op_
template<class JacobianOperator , class LInvOp >
|
protected |
◆ parameter_
template<class JacobianOperator , class LInvOp >
|
protected |
◆ preconditioner_
template<class JacobianOperator , class LInvOp >
|
protected |
◆ preconditioningAvailable
template<class JacobianOperator , class LInvOp >
|
staticconstexpr |
type of preconditioner for linear solver
◆ stepCompleted_
template<class JacobianOperator , class LInvOp >
|
mutableprotected |
◆ timing_
template<class JacobianOperator , class LInvOp >
|
mutableprotected |
◆ verbose_
template<class JacobianOperator , class LInvOp >
|
protected |
The documentation for this class was generated from the following file:
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8