DUNE-FEM (unstable)

Dune::Fem::AssembledOperator< DomainFunction, RangeFunction > Class Template Referenceabstract

abstract matrix operator More...

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

Public Types

typedef DomainFunction DomainFunctionType
 type of discrete function in the operator's domain
 
typedef DomainFunction 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. More...
 
template<class AssembleOperation >
void endAssemble ()
 Finalize the assemble of values using the LocalContribution concept. More...
 
virtual bool symmetric () const
 
virtual bool positiveDefinite () const
 
virtual void operator() (const DomainFunctionType &u, RangeFunctionType &w) const=0
 application operator More...
 
virtual void finalize ()
 finalization of operator More...
 

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 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, ...)

References DUNE_THROW.

◆ 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, ...)

References DUNE_THROW.

◆ finalize()

virtual void Dune::Fem::Operator< DomainFunction, DomainFunction >::finalize ( )
inlinevirtualinherited

finalization of operator

Note
The default implementation is empty.

◆ nonlinear()

virtual bool Dune::Fem::LinearOperator< DomainFunction, DomainFunction >::nonlinear ( ) const
inlinevirtualinherited

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

Reimplemented from Dune::Fem::Operator< DomainFunction, DomainFunction >.

◆ operator()()

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

◆ positiveDefinite()

virtual bool Dune::Fem::LinearOperator< DomainFunction, DomainFunction >::positiveDefinite ( ) const
inlinevirtualinherited

Return true if the Operator is positive definite.

◆ symmetric()

virtual bool Dune::Fem::LinearOperator< DomainFunction, DomainFunction >::symmetric ( ) const
inlinevirtualinherited

Return true if the Operator is symmetric.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 13, 23:29, 2024)