dune-fem 2.8.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator > Class Template Referenceabstract

operator providing a Jacobian through automatic differentiation More...

#include <dune/fem/operator/common/automaticdifferenceoperator.hh>

Inheritance diagram for Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >:
Inheritance graph

Public Types

typedef BaseType::RangeFunctionType RangeFunctionType
 
typedef BaseType::DomainFunctionType DomainFunctionType
 
typedef BaseType::RangeFieldType RangeFieldType
 
typedef BaseType::DomainFieldType DomainFieldType
 
typedef Dune::FieldTraits< RangeFieldType >::real_type RealType
 
typedef BaseType::JacobianOperatorType JacobianOperatorType
 
typedef RangeFunctionType::DiscreteFunctionSpaceType RangeSpaceType
 
typedef DomainFunctionType::DiscreteFunctionSpaceType DomainSpaceType
 

Public Member Functions

 AutomaticDifferenceOperator (const ParameterReader &parameter=Parameter::container())
 
 AutomaticDifferenceOperator (const RangeFieldType &eps)
 
virtual void jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const
 
virtual void jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const =0
 obtain linearization
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const=0
 application operator
 
virtual void finalize ()
 finalization of operator
 

Detailed Description

template<class DomainFunction, class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
class Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >

operator providing a Jacobian through automatic differentiation

Note
The Jacobian operator is an on-the-fly operator, i.e., it does not store a matrix but only implements the application.

Member Typedef Documentation

◆ DomainFieldType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef BaseType::DomainFieldType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::DomainFieldType

◆ DomainFunctionType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef BaseType::DomainFunctionType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::DomainFunctionType

◆ DomainSpaceType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef DomainFunctionType::DiscreteFunctionSpaceType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::DomainSpaceType

◆ JacobianOperatorType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef BaseType::JacobianOperatorType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::JacobianOperatorType

◆ RangeFieldType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef BaseType::RangeFieldType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::RangeFieldType

◆ RangeFunctionType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef BaseType::RangeFunctionType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::RangeFunctionType

◆ RangeSpaceType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef RangeFunctionType::DiscreteFunctionSpaceType Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::RangeSpaceType

◆ RealType

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
typedef Dune::FieldTraits<RangeFieldType>::real_type Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::RealType

Constructor & Destructor Documentation

◆ AutomaticDifferenceOperator() [1/2]

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::AutomaticDifferenceOperator ( const ParameterReader parameter = Parameter::container())
inline

◆ AutomaticDifferenceOperator() [2/2]

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::AutomaticDifferenceOperator ( const RangeFieldType eps)
inlineexplicit

Member Function Documentation

◆ finalize()

virtual void Dune::Fem::Operator< JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::finalize ( )
inlinevirtualinherited

finalization of operator

Note
The default implementation is empty.

◆ jacobian() [1/2]

template<class DomainFunction , class RangeFunction = DomainFunction, class LinearOperator = AutomaticDifferenceLinearOperator< DomainFunction, RangeFunction >>
virtual void Dune::Fem::AutomaticDifferenceOperator< DomainFunction, RangeFunction, LinearOperator >::jacobian ( const DomainFunctionType u,
JacobianOperatorType jOp 
) const
inlinevirtual

◆ jacobian() [2/2]

template<class JacobianOperator >
virtual void Dune::Fem::DifferentiableOperator< JacobianOperator >::jacobian ( const DomainFunctionType u,
JacobianOperatorType jOp 
) const
pure virtualinherited

obtain linearization

Parameters
[in]uargument discrete function
[out]jOpdestination Jacobian operator
Note
This method has to be implemented by all derived classes.

Implemented in Dune::Fem::DifferentiableGalerkinOperator< Integrands, JacobianOperator >, and Dune::Fem::MOLDifferentiableGalerkinOperator< Integrands, JacobianOperator >.

◆ operator()()

virtual void Dune::Fem::Operator< JacobianOperator::DomainFunctionType , JacobianOperator::RangeFunctionType >::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.

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