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

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

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

Public Types

typedef Scheme SchemeType
 
typedef SchemeType::LinearInverseOperatorType LinearInverseOperatorType
 
typedef SchemeType::LinearOperatorType BaseType
 
typedef FemScheme< SchemeType, LinearInverseOperatorType, LinearInverseOperatorTypeFSBaseType
 
typedef SchemeType::DiscreteFunctionType DiscreteFunctionType
 
typedef SchemeType::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
 
typedef SchemeType::GridPartType GridPartType
 
typedef LinearInverseOperatorType::SolverParameterType ParameterType
 
typedef SchemeType::ModelType ModelType
 
typedef SchemeType::JacobianOperatorType JacobianOperatorType
 
typedef SchemeType::DomainFunctionType DomainFunctionType
 
typedef SchemeType::RangeFunctionType RangeFunctionType
 
typedef SchemeType::DirichletBlockVector DirichletBlockVector
 
typedef Dune::Fem::PreconditionerFunctionWrapper< RangeFunctionType, DomainFunctionTypePreconditionerFunctionWrapperType
 
typedef PreconditionerFunctionWrapperType::PreconditionerFunctionType PreconditionerFunctionType
 
typedef LinearInverseOperatorType::SolverInfoType SolverInfoType
 
typedef Scheme DifferentiableOperatorType
 
typedef GridPartType::GridType GridType
 type of underlying hierarchical grid needed for data output
 
typedef DiscreteFunctionSpaceType::FunctionSpaceType FunctionSpaceType
 type of function space (scalar functions, \( f: \Omega -> R) \)
 
typedef Operator::JacobianOperatorType LinearOperatorType
 
typedef Scheme::LinearInverseOperatorType InverseOperatorType
 
typedef InverseOperatorType::ErrorMeasureType ErrorMeasureType
 
typedef FunctionSpaceType::RangeType RangeType
 

Public Member Functions

 LinearScheme (SchemeType &scheme, Dune::Fem::ParameterReader parameter=Dune::Fem::Parameter::container())
 
 LinearScheme (SchemeType &scheme, const DiscreteFunctionType &ubar, Dune::Fem::ParameterReader parameter=Dune::Fem::Parameter::container())
 
void setErrorMeasure () const
 
virtual void clear () override
 
void operator() (const DiscreteFunctionType &u, DiscreteFunctionType &w) const override
 
template<class GridFunction >
void operator() (const GridFunction &arg, DiscreteFunctionType &dest) 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 SchemeTypescheme () const
 
const ParameterReaderparameter () const
 
DiscreteFunctionTypetemporaryData () const
 
const DifferentiableOperatorTypefullOperator () const
 
DifferentiableOperatorTypefullOperator ()
 
std::size_t gridSizeInterior () const
 
auto setQuadratureOrders (unsigned int interior, unsigned int surface) -> Dune::void_t< decltype(std::declval< O >().setQuadratureOrders(0, 0)) >
 
void setConstraints (DomainFunctionType &u) const
 
void setConstraints (const DiscreteFunctionType &u, DiscreteFunctionType &v) const
 
void setConstraints (const GridFunctionType &u, DiscreteFunctionType &v) const
 
void setConstraints (const RangeType &value, DiscreteFunctionType &u) const
 
void setConstraints (JacobianOperatorType &lin) 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 &arg, DiscreteFunctionType &dest) const
 
auto operator() (const GridFunction &arg, DiscreteFunctionType &dest) const -> Dune::void_t< decltype(std::declval< const Scheme & >()(arg, dest))>
 
void setErrorMeasure (ErrorMeasureType &errorMeasure) 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
 
SolverInfoType solve (DiscreteFunctionType &solution, const PreconditionerFunctionType &p) const
 
void jacobian (const GridFunction &ubar, JacobianOperatorType &linOp) const
 
const GridPartTypegridPart () const
 
const DiscreteFunctionSpaceTypespace () const
 
const ModelTypemodel () const
 
ModelTypemodel ()
 

Static Public Attributes

static const int dimRange
 
static constexpr bool addDirichletBC
 

Protected Member Functions

SolverInfoType _solve (const DiscreteFunctionType &rhs, DiscreteFunctionType &solution) const
 

Protected Attributes

bool isBound_
 
Dune::Fem::ParameterReader parameter_
 
DiscreteFunctionType tmp_
 
const DiscreteFunctionSpaceTypespace_
 
std::shared_ptr< DifferentiableOperatorTypefullOpPtr_
 
DifferentiableOperatorTypefullOperator_
 
InverseOperatorType invOp_
 

Member Typedef Documentation

◆ BaseType

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

◆ DifferentiableOperatorType

typedef Scheme Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::DifferentiableOperatorType
inherited

◆ DirichletBlockVector

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

◆ DiscreteFunctionSpaceType

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

◆ DiscreteFunctionType

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

◆ DomainFunctionType

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

◆ ErrorMeasureType

typedef InverseOperatorType::ErrorMeasureType Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::ErrorMeasureType
inherited

◆ FSBaseType

template<class Scheme >
typedef FemScheme< SchemeType, LinearInverseOperatorType, LinearInverseOperatorType > Dune::Fem::LinearScheme< Scheme >::FSBaseType

◆ FunctionSpaceType

typedef DiscreteFunctionSpaceType::FunctionSpaceType Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::FunctionSpaceType
inherited

type of function space (scalar functions, \( f: \Omega -> R) \)

◆ GridPartType

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

◆ GridType

typedef GridPartType::GridType Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::GridType
inherited

type of underlying hierarchical grid needed for data output

◆ InverseOperatorType

typedef Scheme::LinearInverseOperatorType Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::InverseOperatorType
inherited

◆ JacobianOperatorType

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

◆ LinearInverseOperatorType

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

◆ LinearOperatorType

typedef Operator::JacobianOperatorType Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::LinearOperatorType
inherited

◆ ModelType

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

◆ ParameterType

template<class Scheme >
typedef LinearInverseOperatorType::SolverParameterType Dune::Fem::LinearScheme< Scheme >::ParameterType

◆ PreconditionerFunctionType

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

◆ PreconditionerFunctionWrapperType

template<class Scheme >
typedef Dune::Fem::PreconditionerFunctionWrapper<RangeFunctionType,DomainFunctionType > Dune::Fem::LinearScheme< Scheme >::PreconditionerFunctionWrapperType

◆ RangeFunctionType

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

◆ RangeType

typedef FunctionSpaceType::RangeType Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::RangeType
inherited

◆ SchemeType

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

◆ SolverInfoType

template<class Scheme >
typedef LinearInverseOperatorType::SolverInfoType Dune::Fem::LinearScheme< Scheme >::SolverInfoType

Constructor & Destructor Documentation

◆ LinearScheme() [1/2]

template<class Scheme >
Dune::Fem::LinearScheme< Scheme >::LinearScheme ( SchemeType scheme,
Dune::Fem::ParameterReader  parameter = Dune::Fem::Parameter::container() 
)
inline
Todo:
@docme

◆ LinearScheme() [2/2]

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

Member Function Documentation

◆ _solve()

SolverInfoType Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::_solve ( const DiscreteFunctionType rhs,
DiscreteFunctionType solution 
) const
inlineprotectedinherited

◆ addConstraints() [1/2]

void Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::addConstraints ( const DiscreteFunctionType u,
DiscreteFunctionType v 
) const
inlineinherited

◆ addConstraints() [2/2]

void Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::addConstraints ( DiscreteFunctionType v) const
inlineinherited

◆ clear()

template<class Scheme >
virtual void Dune::Fem::LinearScheme< Scheme >::clear ( )
inlineoverridevirtual

◆ dirichletBlocks()

const auto & Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::dirichletBlocks ( ) const
inlineinherited

◆ fullOperator() [1/2]

DifferentiableOperatorType & Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::fullOperator ( )
inlineinherited

◆ fullOperator() [2/2]

const DifferentiableOperatorType & Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::fullOperator ( ) const
inlineinherited

◆ gridPart()

const GridPartType & Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::gridPart ( ) const
inlineinherited

◆ gridSizeInterior()

std::size_t Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::gridSizeInterior ( ) const
inlineinherited

◆ jacobian()

void Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::jacobian ( const GridFunction &  ubar,
JacobianOperatorType linOp 
) const
inlineinherited

◆ model() [1/2]

ModelType & Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::model ( )
inlineinherited

◆ model() [2/2]

const ModelType & Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::model ( ) const
inlineinherited

◆ operator()() [1/4]

void Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::operator() ( const DiscreteFunctionType arg,
DiscreteFunctionType dest 
) const
inlineinherited

◆ operator()() [2/4]

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

◆ operator()() [3/4]

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

◆ operator()() [4/4]

auto Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::operator() ( const GridFunction &  arg,
DiscreteFunctionType dest 
) const-> Dune::void_t<decltype(std::declval<const Scheme &>()(arg,dest))>
inlineinherited

◆ parameter()

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

◆ scheme()

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

◆ setConstraints() [1/5]

void Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::setConstraints ( const DiscreteFunctionType u,
DiscreteFunctionType v 
) const
inlineinherited

◆ setConstraints() [2/5]

void Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::setConstraints ( const GridFunctionType &  u,
DiscreteFunctionType v 
) const
inlineinherited

◆ setConstraints() [3/5]

void Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::setConstraints ( const RangeType value,
DiscreteFunctionType u 
) const
inlineinherited

◆ setConstraints() [4/5]

void Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::setConstraints ( DomainFunctionType u) const
inlineinherited

◆ setConstraints() [5/5]

void Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::setConstraints ( JacobianOperatorType lin) const
inlineinherited

◆ setErrorMeasure() [1/2]

template<class Scheme >
void Dune::Fem::LinearScheme< 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!

◆ setErrorMeasure() [2/2]

void Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::setErrorMeasure ( ErrorMeasureType errorMeasure) const
inlineinherited

◆ setQuadratureOrders()

auto Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::setQuadratureOrders ( unsigned int  interior,
unsigned int  surface 
) -> Dune::void_t< decltype( std::declval< O >().setQuadratureOrders(0,0) ) >
inlineinherited

◆ solve() [1/7]

SolverInfoType Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::solve ( const DiscreteFunctionType rhs,
DiscreteFunctionType solution 
) const
inlineinherited

◆ solve() [2/7]

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

◆ solve() [3/7]

SolverInfoType Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::solve ( const DiscreteFunctionType rhs,
DiscreteFunctionType solution,
const PreconditionerFunctionType p 
) const
inlineinherited

◆ solve() [4/7]

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

◆ solve() [5/7]

SolverInfoType Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::solve ( DiscreteFunctionType solution) const
inlineinherited

◆ solve() [6/7]

template<class Scheme >
SolverInfoType Dune::Fem::LinearScheme< 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.

◆ solve() [7/7]

SolverInfoType Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::solve ( DiscreteFunctionType solution,
const PreconditionerFunctionType p 
) const
inlineinherited

◆ space()

const DiscreteFunctionSpaceType & Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::space ( ) const
inlineinherited

◆ subConstraints() [1/2]

void Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::subConstraints ( const DiscreteFunctionType u,
DiscreteFunctionType v 
) const
inlineinherited

◆ subConstraints() [2/2]

void Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::subConstraints ( DiscreteFunctionType v) const
inlineinherited

◆ temporaryData()

template<class Scheme >
DiscreteFunctionType & Dune::Fem::LinearScheme< Scheme >::temporaryData ( ) const
inline

Member Data Documentation

◆ addDirichletBC

constexpr bool Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::addDirichletBC
staticconstexprinherited

◆ dimRange

const int Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::dimRange
staticinherited

◆ fullOperator_

DifferentiableOperatorType& Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::fullOperator_
protectedinherited

◆ fullOpPtr_

std::shared_ptr< DifferentiableOperatorType > Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::fullOpPtr_
protectedinherited

◆ invOp_

InverseOperatorType Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::invOp_
mutableprotectedinherited

◆ isBound_

template<class Scheme >
bool Dune::Fem::LinearScheme< Scheme >::isBound_
mutableprotected

◆ parameter_

template<class Scheme >
Dune::Fem::ParameterReader Dune::Fem::LinearScheme< Scheme >::parameter_
protected

◆ space_

const DiscreteFunctionSpaceType& Dune::Fem::FemScheme< Scheme , Scheme::LinearInverseOperatorType , Scheme::LinearInverseOperatorType >::space_
protectedinherited

◆ tmp_

template<class Scheme >
DiscreteFunctionType Dune::Fem::LinearScheme< Scheme >::tmp_
mutableprotected

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