dune-fem 2.12-git
Loading...
Searching...
No Matches
Dune::Fem::LinearizedScheme< Scheme > Struct Template Referenceabstract

#include <dune/fem/schemes/linearized.hh>

Inheritance diagram for Dune::Fem::LinearizedScheme< Scheme >:
Inheritance graph

Public Types

typedef Scheme SchemeType
 
typedef SchemeType::DiscreteFunctionType DiscreteFunctionType
 
typedef SchemeType::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
 
typedef SchemeType::GridPartType GridPartType
 
typedef SchemeType::LinearInverseOperatorType LinearInverseOperatorType
 
typedef SchemeType::ModelType ModelType
 
typedef SchemeType::JacobianOperatorType JacobianOperatorType
 
typedef SchemeType::DomainFunctionType DomainFunctionType
 
typedef SchemeType::RangeFunctionType RangeFunctionType
 
typedef SchemeType::DirichletBlockVector DirichletBlockVector
 
typedef LinearScheme< SchemeTypeLinearOperatorType
 
typedef LinearOperatorType::SolverInfoType SolverInfoType
 
typedef Dune::Fem::PreconditionerFunctionWrapper< typename LinearOperatorType::RangeFunctionType, typename LinearOperatorType::DomainFunctionTypePreconditionerFunctionWrapperType
 
typedef PreconditionerFunctionWrapperType::PreconditionerFunctionType PreconditionerFunctionType
 
typedef DomainFunction::RangeFieldType DomainFieldType
 field type of the operator's domain
 
typedef RangeFunction::RangeFieldType RangeFieldType
 field type of the operator's range
 

Public Member Functions

 LinearizedScheme (SchemeType &scheme, const Dune::Fem::ParameterReader &parameter=Dune::Fem::Parameter::container())
 
 LinearizedScheme (SchemeType &scheme, const DiscreteFunctionType &ubar, const Dune::Fem::ParameterReader &parameter=Dune::Fem::Parameter::container())
 
void setup (const DiscreteFunctionType &ubar)
 
template<class GridFunction >
void setup (const GridFunction &ubar)
 
void setup ()
 
void setErrorMeasure () const
 
void setConstraints (DomainFunctionType &u) const
 
template<class LinOp >
void setConstraints (LinOp &lin) const
 
void setConstraints (const typename DiscreteFunctionType::RangeType &value, DiscreteFunctionType &u) const
 
void setConstraints (const DiscreteFunctionType &u, DiscreteFunctionType &v) const
 
template<class GridFunctionType , typename = std::enable_if_t< std::is_base_of<Dune::Fem::HasLocalFunction, GridFunctionType>::value >>
void setConstraints (const GridFunctionType &u, DiscreteFunctionType &v) const
 
void subConstraints (const DiscreteFunctionType &u, DiscreteFunctionType &v) const
 
void subConstraints (DiscreteFunctionType &v) const
 
void addConstraints (const DiscreteFunctionType &u, DiscreteFunctionType &v) const
 
void addConstraints (DiscreteFunctionType &v) const
 
const auto & dirichletBlocks () const
 
void operator() (const DiscreteFunctionType &u, DiscreteFunctionType &w) const override
 
template<class GridFunction >
void operator() (const GridFunction &arg, DiscreteFunctionType &w) const
 
SolverInfoType solve (const DiscreteFunctionType &rhs, DiscreteFunctionType &solution) const
 
SolverInfoType solve (const DiscreteFunctionType &rhs, DiscreteFunctionType &solution, const PreconditionerFunctionType &p) const
 
SolverInfoType solve (DiscreteFunctionType &solution) const
 
const GridPartTypegridPart () const
 
const DiscreteFunctionSpaceTypespace () const
 
const SchemeTypescheme ()
 
const ParameterReaderparameter () const
 
const LinearOperatorTypelinearScheme () const
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const=0
 application operator
 
virtual void finalize ()
 finalization of operator
 
virtual bool nonlinear () const
 

Protected Member Functions

SolverInfoType _solve (const DiscreteFunctionType &rhs, DiscreteFunctionType &solution, const PreconditionerFunctionType *p) const
 
void setup_ (bool isZero=false)
 

Protected Attributes

LinearOperatorType linOp_
 
DiscreteFunctionType rhs_
 
DiscreteFunctionType ubar_
 

Member Typedef Documentation

◆ DirichletBlockVector

template<class Scheme >
typedef SchemeType::DirichletBlockVector Dune::Fem::LinearizedScheme< Scheme >::DirichletBlockVector

◆ DiscreteFunctionSpaceType

template<class Scheme >
typedef SchemeType::DiscreteFunctionSpaceType Dune::Fem::LinearizedScheme< Scheme >::DiscreteFunctionSpaceType

◆ DiscreteFunctionType

template<class Scheme >
typedef SchemeType::DiscreteFunctionType Dune::Fem::LinearizedScheme< Scheme >::DiscreteFunctionType

◆ DomainFieldType

typedef DomainFunction::RangeFieldType Dune::Fem::Operator< Scheme::DomainFunctionType , Scheme::RangeFunctionType >::DomainFieldType
inherited

field type of the operator's domain

◆ DomainFunctionType

template<class Scheme >
typedef SchemeType::DomainFunctionType Dune::Fem::LinearizedScheme< Scheme >::DomainFunctionType

◆ GridPartType

template<class Scheme >
typedef SchemeType::GridPartType Dune::Fem::LinearizedScheme< Scheme >::GridPartType

◆ JacobianOperatorType

template<class Scheme >
typedef SchemeType::JacobianOperatorType Dune::Fem::LinearizedScheme< Scheme >::JacobianOperatorType

◆ LinearInverseOperatorType

template<class Scheme >
typedef SchemeType::LinearInverseOperatorType Dune::Fem::LinearizedScheme< Scheme >::LinearInverseOperatorType

◆ LinearOperatorType

template<class Scheme >
typedef LinearScheme<SchemeType> Dune::Fem::LinearizedScheme< Scheme >::LinearOperatorType

◆ ModelType

template<class Scheme >
typedef SchemeType::ModelType Dune::Fem::LinearizedScheme< Scheme >::ModelType

◆ PreconditionerFunctionType

template<class Scheme >
typedef PreconditionerFunctionWrapperType::PreconditionerFunctionType Dune::Fem::LinearizedScheme< Scheme >::PreconditionerFunctionType

◆ PreconditionerFunctionWrapperType

template<class Scheme >
typedef Dune::Fem::PreconditionerFunctionWrapper< typename LinearOperatorType::RangeFunctionType, typename LinearOperatorType::DomainFunctionType > Dune::Fem::LinearizedScheme< Scheme >::PreconditionerFunctionWrapperType

◆ RangeFieldType

typedef RangeFunction::RangeFieldType Dune::Fem::Operator< Scheme::DomainFunctionType , Scheme::RangeFunctionType >::RangeFieldType
inherited

field type of the operator's range

◆ RangeFunctionType

template<class Scheme >
typedef SchemeType::RangeFunctionType Dune::Fem::LinearizedScheme< Scheme >::RangeFunctionType

◆ SchemeType

template<class Scheme >
typedef Scheme Dune::Fem::LinearizedScheme< Scheme >::SchemeType

◆ SolverInfoType

template<class Scheme >
typedef LinearOperatorType::SolverInfoType Dune::Fem::LinearizedScheme< Scheme >::SolverInfoType

Constructor & Destructor Documentation

◆ LinearizedScheme() [1/2]

template<class Scheme >
Dune::Fem::LinearizedScheme< Scheme >::LinearizedScheme ( SchemeType scheme,
const Dune::Fem::ParameterReader parameter = Dune::Fem::Parameter::container() 
)
inline

◆ LinearizedScheme() [2/2]

template<class Scheme >
Dune::Fem::LinearizedScheme< Scheme >::LinearizedScheme ( SchemeType scheme,
const DiscreteFunctionType ubar,
const Dune::Fem::ParameterReader parameter = Dune::Fem::Parameter::container() 
)
inline

Member Function Documentation

◆ _solve()

template<class Scheme >
SolverInfoType Dune::Fem::LinearizedScheme< Scheme >::_solve ( const DiscreteFunctionType rhs,
DiscreteFunctionType solution,
const PreconditionerFunctionType p 
) const
inlineprotected

◆ addConstraints() [1/2]

template<class Scheme >
void Dune::Fem::LinearizedScheme< Scheme >::addConstraints ( const DiscreteFunctionType u,
DiscreteFunctionType v 
) const
inline

◆ addConstraints() [2/2]

template<class Scheme >
void Dune::Fem::LinearizedScheme< Scheme >::addConstraints ( DiscreteFunctionType v) const
inline

◆ dirichletBlocks()

template<class Scheme >
const auto & Dune::Fem::LinearizedScheme< Scheme >::dirichletBlocks ( ) const
inline

◆ finalize()

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

finalization of operator

Note
The default implementation is empty.

◆ gridPart()

template<class Scheme >
const GridPartType & Dune::Fem::LinearizedScheme< Scheme >::gridPart ( ) const
inline

◆ linearScheme()

template<class Scheme >
const LinearOperatorType & Dune::Fem::LinearizedScheme< Scheme >::linearScheme ( ) const
inline

◆ nonlinear()

virtual bool Dune::Fem::Operator< Scheme::DomainFunctionType , Scheme::RangeFunctionType >::nonlinear ( ) const
inlinevirtualinherited

Return true if the Operator is nonlinear and false otherwise (default is true).

◆ operator()() [1/3]

template<class Scheme >
void Dune::Fem::LinearizedScheme< Scheme >::operator() ( const DiscreteFunctionType u,
DiscreteFunctionType w 
) const
inlineoverride

◆ operator()() [2/3]

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

◆ operator()() [3/3]

template<class Scheme >
template<class GridFunction >
void Dune::Fem::LinearizedScheme< Scheme >::operator() ( const GridFunction &  arg,
DiscreteFunctionType w 
) const
inline

◆ parameter()

template<class Scheme >
const ParameterReader & Dune::Fem::LinearizedScheme< Scheme >::parameter ( ) const
inline

◆ scheme()

template<class Scheme >
const SchemeType & Dune::Fem::LinearizedScheme< Scheme >::scheme ( )
inline

◆ setConstraints() [1/5]

template<class Scheme >
void Dune::Fem::LinearizedScheme< Scheme >::setConstraints ( const DiscreteFunctionType u,
DiscreteFunctionType v 
) const
inline

◆ setConstraints() [2/5]

template<class Scheme >
template<class GridFunctionType , typename = std::enable_if_t< std::is_base_of<Dune::Fem::HasLocalFunction, GridFunctionType>::value >>
void Dune::Fem::LinearizedScheme< Scheme >::setConstraints ( const GridFunctionType &  u,
DiscreteFunctionType v 
) const
inline

◆ setConstraints() [3/5]

template<class Scheme >
void Dune::Fem::LinearizedScheme< Scheme >::setConstraints ( const typename DiscreteFunctionType::RangeType &  value,
DiscreteFunctionType u 
) const
inline

◆ setConstraints() [4/5]

template<class Scheme >
void Dune::Fem::LinearizedScheme< Scheme >::setConstraints ( DomainFunctionType u) const
inline

◆ setConstraints() [5/5]

template<class Scheme >
template<class LinOp >
void Dune::Fem::LinearizedScheme< Scheme >::setConstraints ( LinOp &  lin) const
inline

◆ setErrorMeasure()

template<class Scheme >
void Dune::Fem::LinearizedScheme< Scheme >::setErrorMeasure ( ) const
inline

Note: this sets the error message of the non-existing non-linear solver and must be here in order to make the python bindings happy!

◆ setup() [1/3]

template<class Scheme >
void Dune::Fem::LinearizedScheme< Scheme >::setup ( )
inline

◆ setup() [2/3]

template<class Scheme >
void Dune::Fem::LinearizedScheme< Scheme >::setup ( const DiscreteFunctionType ubar)
inline

◆ setup() [3/3]

template<class Scheme >
template<class GridFunction >
void Dune::Fem::LinearizedScheme< Scheme >::setup ( const GridFunction &  ubar)
inline

◆ setup_()

template<class Scheme >
void Dune::Fem::LinearizedScheme< Scheme >::setup_ ( bool  isZero = false)
inlineprotected

◆ solve() [1/3]

template<class Scheme >
SolverInfoType Dune::Fem::LinearizedScheme< Scheme >::solve ( const DiscreteFunctionType rhs,
DiscreteFunctionType solution 
) const
inline

◆ solve() [2/3]

template<class Scheme >
SolverInfoType Dune::Fem::LinearizedScheme< Scheme >::solve ( const DiscreteFunctionType rhs,
DiscreteFunctionType solution,
const PreconditionerFunctionType p 
) const
inline

◆ solve() [3/3]

template<class Scheme >
SolverInfoType Dune::Fem::LinearizedScheme< Scheme >::solve ( DiscreteFunctionType solution) const
inline

Solve the system defined by the affine-linear operator without additional rhs, i.e. the rhs is implied by the "affine shift" of the underlying affine linear operator. Dirichlet constraints will be enforced if present in the model.

◆ space()

template<class Scheme >
const DiscreteFunctionSpaceType & Dune::Fem::LinearizedScheme< Scheme >::space ( ) const
inline

◆ subConstraints() [1/2]

template<class Scheme >
void Dune::Fem::LinearizedScheme< Scheme >::subConstraints ( const DiscreteFunctionType u,
DiscreteFunctionType v 
) const
inline

◆ subConstraints() [2/2]

template<class Scheme >
void Dune::Fem::LinearizedScheme< Scheme >::subConstraints ( DiscreteFunctionType v) const
inline

Member Data Documentation

◆ linOp_

template<class Scheme >
LinearOperatorType Dune::Fem::LinearizedScheme< Scheme >::linOp_
protected

◆ rhs_

template<class Scheme >
DiscreteFunctionType Dune::Fem::LinearizedScheme< Scheme >::rhs_
protected

◆ ubar_

template<class Scheme >
DiscreteFunctionType Dune::Fem::LinearizedScheme< Scheme >::ubar_
protected

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