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

abstract matrix operator More...

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

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

Public Types

typedef DomainFunction DomainFunctionType
 type of discrete function in the operator's domain
 
typedef RangeFunction RangeFunctionType
 type of discrete function in the operator's range
 
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

virtual void flushAssembly ()
 commit intermediate states of linear operator assembly
 
template<class AssembleOperation >
void beginAssemble ()
 Initiate the assemble of values using the LocalContribution concept.
 
template<class AssembleOperation >
void endAssemble ()
 Finalize the assemble of values using the LocalContribution concept.
 
virtual bool symmetric () const
 
virtual bool positiveDefinite () const
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const =0
 application operator
 
virtual void finalize ()
 finalization of operator
 

Protected Attributes

std::type_index assembleOperation_ = std::type_index( typeid( void ) )
 
std::size_t assembleCount_ = 0
 

Detailed Description

template<class DomainFunction, class RangeFunction = DomainFunction>
class Dune::Fem::AssembledOperator< DomainFunction, RangeFunction >

abstract matrix operator

Operators map a discrete function onto another discrete function. Their interface is described by the abstract class Operator. Implementation should derive from AssembledOperator to indicate that they model an affine linear operator of the form

\[
u\mapsto A\,u
\]

with a matrix $A$. Jacobians of LinearOperator classes, for instance, could be modelled as matrices.

Template Parameters
DomainFunctiontype of discrete function for the domain
RangeFunctiontype of discrete function for the range (defaults to DomainFunction)
An interface class:

Member Typedef Documentation

◆ DomainFieldType

template<class DomainFunction , class RangeFunction = DomainFunction>
typedef DomainFunction::RangeFieldType Dune::Fem::Operator< DomainFunction, RangeFunction >::DomainFieldType
inherited

field type of the operator's domain

◆ DomainFunctionType

template<class DomainFunction , class RangeFunction = DomainFunction>
typedef DomainFunction Dune::Fem::Operator< DomainFunction, RangeFunction >::DomainFunctionType
inherited

type of discrete function in the operator's domain

◆ RangeFieldType

template<class DomainFunction , class RangeFunction = DomainFunction>
typedef RangeFunction::RangeFieldType Dune::Fem::Operator< DomainFunction, RangeFunction >::RangeFieldType
inherited

field type of the operator's range

◆ RangeFunctionType

template<class DomainFunction , class RangeFunction = DomainFunction>
typedef RangeFunction Dune::Fem::Operator< DomainFunction, RangeFunction >::RangeFunctionType
inherited

type of discrete function in the operator's range

Member Function Documentation

◆ beginAssemble()

template<class DomainFunction , class RangeFunction = DomainFunction>
template<class AssembleOperation >
void Dune::Fem::AssembledOperator< DomainFunction, RangeFunction >::beginAssemble ( )
inline

Initiate the assemble of values using the LocalContribution concept.

Template Parameters
AssembleOperationthe specific operation (Add, Set, ...)

◆ endAssemble()

template<class DomainFunction , class RangeFunction = DomainFunction>
template<class AssembleOperation >
void Dune::Fem::AssembledOperator< DomainFunction, RangeFunction >::endAssemble ( )
inline

Finalize the assemble of values using the LocalContribution concept.

Template Parameters
AssembleOperationthe specific operation (Add, Set, ...)

◆ finalize()

template<class DomainFunction , class RangeFunction = DomainFunction>
virtual void Dune::Fem::Operator< DomainFunction, RangeFunction >::finalize ( )
inlinevirtualinherited

finalization of operator

Note
The default implementation is empty.

Reimplemented in Dune::Fem::SparseRowLinearOperator< DomainFunction, RangeFunction, Matrix >.

◆ flushAssembly()

template<class DomainFunction , class RangeFunction = DomainFunction>
virtual void Dune::Fem::AssembledOperator< DomainFunction, RangeFunction >::flushAssembly ( )
inlinevirtual

commit intermediate states of linear operator assembly

◆ operator()()

template<class DomainFunction , class RangeFunction = DomainFunction>
virtual void Dune::Fem::Operator< DomainFunction, RangeFunction >::operator() ( const DomainFunctionType u,
RangeFunctionType w 
) const
pure virtualinherited

◆ positiveDefinite()

template<class DomainFunction , class RangeFunction = DomainFunction>
virtual bool Dune::Fem::LinearOperator< DomainFunction, RangeFunction >::positiveDefinite ( ) const
inlinevirtualinherited

Return true if the Operator is positive definite.

◆ symmetric()

template<class DomainFunction , class RangeFunction = DomainFunction>
virtual bool Dune::Fem::LinearOperator< DomainFunction, RangeFunction >::symmetric ( ) const
inlinevirtualinherited

Return true if the Operator is symmetric.

Member Data Documentation

◆ assembleCount_

template<class DomainFunction , class RangeFunction = DomainFunction>
std::size_t Dune::Fem::AssembledOperator< DomainFunction, RangeFunction >::assembleCount_ = 0
protected

◆ assembleOperation_

template<class DomainFunction , class RangeFunction = DomainFunction>
std::type_index Dune::Fem::AssembledOperator< DomainFunction, RangeFunction >::assembleOperation_ = std::type_index( typeid( void ) )
protected

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