|
dune-fem 2.12-git
|
#include <dune/fem/function/common/discretefunction.hh>

Classes | |
| struct | CommDataHandle |
Public Types | |
| typedef DiscreteFunctionTraits< Impl > | Traits |
| type of the traits | |
| typedef Traits::DiscreteFunctionType | DiscreteFunctionType |
| type of the implementaton (Barton-Nackman) | |
| typedef Traits::DiscreteFunctionSpaceType | DiscreteFunctionSpaceType |
| type of associated discrete function space | |
| typedef DiscreteFunctionSpaceType::FunctionSpaceType | FunctionSpaceType |
| type of associated function space | |
| typedef DiscreteFunctionInterface< Impl > | DiscreteFunctionInterfaceType |
| type of the discrete function interface (this type) | |
| typedef DiscreteFunctionSpaceType::DomainFieldType | DomainFieldType |
| type of domain field, i.e. type of coordinate component | |
| typedef DiscreteFunctionSpaceType::RangeFieldType | RangeFieldType |
| type of range field, i.e. dof type | |
| typedef DiscreteFunctionSpaceType::DomainType | DomainType |
| type of domain, i.e. type of coordinates | |
| typedef DiscreteFunctionSpaceType::RangeType | RangeType |
| type of range, i.e. result of evaluation | |
| typedef DiscreteFunctionSpaceType::JacobianRangeType | JacobianRangeType |
| type of jacobian, i.e. type of evaluated gradient | |
| typedef DiscreteFunctionSpaceType::GridPartType | GridPartType |
| type of the underlying grid part | |
| typedef GridPartType::GridViewType | GridView |
| typedef DiscreteFunctionSpaceType::GridType | GridType |
| type of the underlying grid | |
| typedef Traits::LocalFunctionType | LocalFunctionType |
| type of local functions | |
| typedef Traits::DofVectorType | DofVectorType |
| type of the dof vector used in the discrete function implementation | |
| typedef Traits::DofIteratorType | DofIteratorType |
| type of the dof iterator used in the discrete function implementation | |
| typedef Traits::ConstDofIteratorType | ConstDofIteratorType |
| type of the constantdof iterator used in the discrete function implementation | |
| typedef Traits::DofType | DofType |
| typedef Traits::DofBlockType | DofBlockType |
| typedef Traits::ConstDofBlockType | ConstDofBlockType |
| typedef Traits::DofBlockPtrType | DofBlockPtrType |
| typedef Traits::ConstDofBlockPtrType | ConstDofBlockPtrType |
| typedef BaseType::MappingType | MappingType |
| type of mapping base class for this discrete function | |
| typedef DiscreteFunctionSpaceType::LocalBlockIndices | BlockIndices |
| typedef DiscreteFunctionSpaceType::EntityType | EntityType |
| type of entity local functions are defined on | |
| typedef LoadBalanceLeafData< ThisType > | DefaultLoadBalanceContainsCheckType |
Public Member Functions | |
| ThisType & | operator= (ThisType &&)=delete |
| ThisType & | operator= (const ThisType &)=delete |
| DofVectorType & | dofVector () |
| const DofVectorType & | dofVector () const |
| const std::string & | name () const |
| obtain the name of the discrete function | |
| std::string & | name () |
| obtain the name of the discrete function | |
| const std::string & | order () const |
| obtain an upper bound on the polynomial order of the underlying space. | |
| bool | continuous () const |
| returns true if the space contains only globally continuous functions | |
| const DiscreteFunctionSpaceType & | space () const |
| obtain a reference to the corresponding DiscreteFunctionSpace | |
| const GridPartType & | gridPart () const |
| obtain a reference to the underlying grid part | |
| LocalFunctionType | localFunction (const EntityType &entity) |
| obtain a local function for an entity (read-write) | |
| const LocalFunctionType | localFunction (const EntityType &entity) const |
| obtain a local function for an entity (read-write) | |
| LocalFunctionType | localFunction () |
| obtain an uninitialized local function (read-write) | |
| template<class LocalDofs > | |
| void | addScaledLocalDofs (const EntityType &entity, const RangeFieldType &s, const LocalDofs &localDofs) |
| add scaled local Dofs to dof vector associated with the entity | |
| template<class LocalDofs > | |
| void | addLocalDofs (const EntityType &entity, const LocalDofs &localDofs) |
| add local Dofs to dof vector associated with the entity | |
| template<class LocalDofs > | |
| void | setLocalDofs (const EntityType &entity, const LocalDofs &localDofs) |
| set local Dofs to dof vector associated with the entity | |
| template<class Vector > | |
| void | getLocalDofs (const EntityType &entity, Vector &localDofs) const |
| fill local Dofs to dof vector associated with the entity | |
| const LocalFunctionType | localFunction () const |
| obtain an uninitialized local function (read-write) | |
| void | clear () |
| set all degrees of freedom to zero | |
| int | size () const |
| obtain total number of DoFs | |
| int | blocks () const |
| obtain total number of blocks, i.e. size / blockSize. | |
| ConstDofIteratorType | dbegin () const |
| obtain an iterator pointing to the first DoF (read-only) | |
| ConstDofIteratorType | dend () const |
| obtain an iterator pointing behind the last DoF (read-only) | |
| DofIteratorType | dbegin () |
| obtain an iterator pointing to the first DoF (read-write) | |
| DofIteratorType | dend () |
| obtain an iterator pointing behind the last DoF (read-write) | |
| void | axpy (const RangeFieldType &s, const DiscreteFunctionInterfaceType &g) |
| axpy operation | |
| template<class DFType > | |
| RangeFieldType | scalarProductDofs (const DiscreteFunctionInterface< DFType > &other) const |
| Scalar product between the DoFs of two discrete functions. | |
| Dune::FieldTraits< RangeFieldType >::real_type | normSquaredDofs () const |
| Squared small l^2 norm of all dofs. | |
| void | print (std ::ostream &out) const |
| print all DoFs to a stream (for debugging purposes) | |
| bool | dofsValid () const |
| check for NaNs | |
| template<class DFType > | |
| void | assign (const DiscreteFunctionInterface< DFType > &g) |
| assign the DoFs of another discrete function to this one | |
| template<class Operation > | |
| CommDataHandle< Operation >::Type | dataHandle (const Operation &operation) |
| return reference to data handle object | |
| void | communicate () |
| do default communication of space for this discrete function | |
| template<class DFType > | |
| bool | compare (const DiscreteFunctionInterface< DFType > &g) const |
| template<class DFType > | |
| DiscreteFunctionType & | operator+= (const DiscreteFunctionInterface< DFType > &g) |
| add another discrete function to this one | |
| template<class DFType > | |
| DiscreteFunctionType & | operator-= (const DiscreteFunctionInterface< DFType > &g) |
| substract all degrees of freedom from given discrete function using the dof iterators | |
| DiscreteFunctionType & | operator*= (const RangeFieldType &scalar) |
| multiply all DoFs by a scalar factor | |
| DiscreteFunctionType & | operator/= (const RangeFieldType &scalar) |
| devide all DoFs by a scalar factor | |
| template<class StreamTraits > | |
| void | read (InStreamInterface< StreamTraits > &in) |
| read the discrete function from a stream | |
| template<class StreamTraits > | |
| void | write (OutStreamInterface< StreamTraits > &out) const |
| write the discrete function into a stream | |
| void | enableDofCompression () |
| Enable this discrete function for dof compression, i.e. during grid changes a dof compression is done when the DofManagers compress is called. | |
| DefaultLoadBalanceContainsCheckType | defaultLoadBalanceContainsCheck () const |
| void | operator() (const DomainType &arg, RangeType &dest) const |
| Application operator that applies all operators in the linear combination stack. | |
Static Public Attributes | |
| static constexpr std::size_t | blockSize = Hybrid::size( BlockIndices() ) |
| size of the dof blocks | |
Protected Member Functions | |
| DiscreteFunctionInterface ()=default | |
| default constructor | |
| DiscreteFunctionInterface (const ThisType &)=default | |
| DiscreteFunctionInterface (ThisType &&)=default | |
| const Implementation & | asImp () const |
| Implementation & | asImp () |
Static Protected Member Functions | |
| static const Implementation & | asImp (const ThisType &other) |
| static Implementation & | asImp (ThisType &other) |
Related Symbols | |
(Note that these are not member symbols.) | |
| template<class Impl > | |
| std::ostream & | operator<< (std::ostream &out, const DiscreteFunctionInterface< Impl > &df) |
| write a discrete function into an STL stream | |
| template<class DFieldType , class RFieldType , class DType , class RType > | |
| static Mapping< DFieldType, RFieldType, DType, RType > | operator+ (const Mapping< DFieldType, RFieldType, DType, RType > &a, const Mapping< DFieldType, RFieldType, DType, RType > &b) |
| add two mappings | |
| template<class DFieldType , class RFieldType , class DType , class RType > | |
| static Mapping< DFieldType, RFieldType, DType, RType > | operator- (const Mapping< DFieldType, RFieldType, DType, RType > &a, const Mapping< DFieldType, RFieldType, DType, RType > &b) |
| substract two mappings | |
| template<class DFieldType , class RFieldType , class DType , class RType > | |
| static Mapping< DFieldType, RFieldType, DType, RType > | operator* (const Mapping< DFieldType, RFieldType, DType, RType > &mapping, const RFieldType &factor) |
| scale mapping with factor | |
| template<class DFieldType , class RFieldType , class DType , class RType > | |
| static Mapping< DFieldType, RFieldType, DType, RType > | operator* (const RFieldType &factor, const Mapping< DFieldType, RFieldType, DType, RType > &mapping) |
| scale mapping with factor | |
| template<class DFieldType , class RFieldType , class DType , class RType > | |
| static Mapping< DFieldType, RFieldType, DType, RType > | operator/ (const Mapping< DFieldType, RFieldType, DType, RType > &mapping, const RFieldType &factor) |
| operator / for mappings | |
| template<class DFieldType , class RFieldType , class DType , class RType > | |
| static Mapping< DFieldType, RFieldType, DType, RType > | operator/ (const RFieldType &factor, const Mapping< DFieldType, RFieldType, DType, RType > &mapping) |
| operator / for mappings | |
Detailed Description
class Dune::Fem::DiscreteFunctionInterface< Impl >
This is the interface of a discrete function which describes the features of a discrete function. It contains a local function and a dof iterator which can iterate over all dofs of one level. Via the method access the local dofs and basis functions can be accessed for a given entity. The DOF-Iterators are STL-like Iterators, i.e. they can be dereferenced giving the corresponding DOF.
Member Typedef Documentation
◆ BlockIndices
| typedef DiscreteFunctionSpaceType::LocalBlockIndices Dune::Fem::DiscreteFunctionInterface< Impl >::BlockIndices |
◆ ConstDofBlockPtrType
| typedef Traits::ConstDofBlockPtrType Dune::Fem::DiscreteFunctionInterface< Impl >::ConstDofBlockPtrType |
◆ ConstDofBlockType
| typedef Traits::ConstDofBlockType Dune::Fem::DiscreteFunctionInterface< Impl >::ConstDofBlockType |
◆ ConstDofIteratorType
| typedef Traits::ConstDofIteratorType Dune::Fem::DiscreteFunctionInterface< Impl >::ConstDofIteratorType |
type of the constantdof iterator used in the discrete function implementation
◆ DefaultLoadBalanceContainsCheckType
| typedef LoadBalanceLeafData< ThisType > Dune::Fem::DiscreteFunctionInterface< Impl >::DefaultLoadBalanceContainsCheckType |
◆ DiscreteFunctionInterfaceType
| typedef DiscreteFunctionInterface< Impl > Dune::Fem::DiscreteFunctionInterface< Impl >::DiscreteFunctionInterfaceType |
type of the discrete function interface (this type)
◆ DiscreteFunctionSpaceType
| typedef Traits::DiscreteFunctionSpaceType Dune::Fem::DiscreteFunctionInterface< Impl >::DiscreteFunctionSpaceType |
type of associated discrete function space
◆ DiscreteFunctionType
| typedef Traits::DiscreteFunctionType Dune::Fem::DiscreteFunctionInterface< Impl >::DiscreteFunctionType |
type of the implementaton (Barton-Nackman)
◆ DofBlockPtrType
| typedef Traits::DofBlockPtrType Dune::Fem::DiscreteFunctionInterface< Impl >::DofBlockPtrType |
◆ DofBlockType
| typedef Traits::DofBlockType Dune::Fem::DiscreteFunctionInterface< Impl >::DofBlockType |
◆ DofIteratorType
| typedef Traits::DofIteratorType Dune::Fem::DiscreteFunctionInterface< Impl >::DofIteratorType |
type of the dof iterator used in the discrete function implementation
◆ DofType
| typedef Traits::DofType Dune::Fem::DiscreteFunctionInterface< Impl >::DofType |
◆ DofVectorType
| typedef Traits::DofVectorType Dune::Fem::DiscreteFunctionInterface< Impl >::DofVectorType |
type of the dof vector used in the discrete function implementation
◆ DomainFieldType
| typedef DiscreteFunctionSpaceType::DomainFieldType Dune::Fem::DiscreteFunctionInterface< Impl >::DomainFieldType |
type of domain field, i.e. type of coordinate component
◆ DomainType
| typedef DiscreteFunctionSpaceType::DomainType Dune::Fem::DiscreteFunctionInterface< Impl >::DomainType |
type of domain, i.e. type of coordinates
◆ EntityType
| typedef DiscreteFunctionSpaceType::EntityType Dune::Fem::DiscreteFunctionInterface< Impl >::EntityType |
type of entity local functions are defined on
◆ FunctionSpaceType
| typedef DiscreteFunctionSpaceType::FunctionSpaceType Dune::Fem::DiscreteFunctionInterface< Impl >::FunctionSpaceType |
type of associated function space
◆ GridPartType
| typedef DiscreteFunctionSpaceType::GridPartType Dune::Fem::DiscreteFunctionInterface< Impl >::GridPartType |
type of the underlying grid part
◆ GridType
| typedef DiscreteFunctionSpaceType::GridType Dune::Fem::DiscreteFunctionInterface< Impl >::GridType |
type of the underlying grid
◆ GridView
| typedef GridPartType::GridViewType Dune::Fem::DiscreteFunctionInterface< Impl >::GridView |
◆ JacobianRangeType
| typedef DiscreteFunctionSpaceType::JacobianRangeType Dune::Fem::DiscreteFunctionInterface< Impl >::JacobianRangeType |
type of jacobian, i.e. type of evaluated gradient
◆ LocalFunctionType
| typedef Traits::LocalFunctionType Dune::Fem::DiscreteFunctionInterface< Impl >::LocalFunctionType |
type of local functions
◆ MappingType
| typedef BaseType::MappingType Dune::Fem::DiscreteFunctionInterface< Impl >::MappingType |
type of mapping base class for this discrete function
◆ RangeFieldType
| typedef DiscreteFunctionSpaceType::RangeFieldType Dune::Fem::DiscreteFunctionInterface< Impl >::RangeFieldType |
type of range field, i.e. dof type
◆ RangeType
| typedef DiscreteFunctionSpaceType::RangeType Dune::Fem::DiscreteFunctionInterface< Impl >::RangeType |
type of range, i.e. result of evaluation
◆ Traits
| typedef DiscreteFunctionTraits< Impl > Dune::Fem::DiscreteFunctionInterface< Impl >::Traits |
type of the traits
Constructor & Destructor Documentation
◆ DiscreteFunctionInterface() [1/3]
|
protecteddefault |
default constructor
◆ DiscreteFunctionInterface() [2/3]
|
protecteddefault |
◆ DiscreteFunctionInterface() [3/3]
|
protecteddefault |
Member Function Documentation
◆ addLocalDofs()
|
inline |
add local Dofs to dof vector associated with the entity
- Parameters
-
[in] entity Entity to focus view of discrete function [in] localDofs the local dofs vector to be added
◆ addScaledLocalDofs()
|
inline |
add scaled local Dofs to dof vector associated with the entity
- Parameters
-
[in] entity Entity to focus view of discrete function [in] s scaling factor [in] localDofs the local dofs vector to be added
◆ asImp() [1/4]
|
inlineprotectedinherited |
◆ asImp() [2/4]
|
inlineprotectedinherited |
◆ asImp() [3/4]
|
inlinestaticprotectedinherited |
◆ asImp() [4/4]
|
inlinestaticprotectedinherited |
◆ assign()
|
inline |
assign the DoFs of another discrete function to this one
- Parameters
-
[in] g discrete function which is copied
◆ axpy()
|
inline |
axpy operation
Adds s * g to this discrete function.
- Parameters
-
[in] s scalar value to scale g with [in] g discrete function to add
◆ blocks()
|
inline |
obtain total number of blocks, i.e. size / blockSize.
The number of blocks of DoFs (degrees of freedom) can also be seen as the size of the discrete function divided by the blockSize.
- Returns
- total number of DoFs blocks
◆ clear()
|
inline |
set all degrees of freedom to zero
◆ communicate()
|
inline |
do default communication of space for this discrete function
◆ compare()
|
inline |
◆ continuous()
|
inline |
returns true if the space contains only globally continuous functions
For example, a Lagrange space returns true while a discontiuous Galerkin space returns false.
- Returns
- true if the space contians only globally continous functions, false otherwise
◆ dataHandle()
|
inline |
return reference to data handle object
◆ dbegin() [1/2]
|
inline |
obtain an iterator pointing to the first DoF (read-write)
- Returns
- a DoF iterator pointing to first DoF (degre of freedom)
◆ dbegin() [2/2]
|
inline |
obtain an iterator pointing to the first DoF (read-only)
- Returns
- a DoF iterator pointing to first DoF (degre of freedom)
◆ defaultLoadBalanceContainsCheck()
|
inline |
◆ dend() [1/2]
|
inline |
obtain an iterator pointing behind the last DoF (read-write)
- Returns
- a DoF iterator pointing behind the last DoF (degree of freedom)
◆ dend() [2/2]
|
inline |
obtain an iterator pointing behind the last DoF (read-only)
- Returns
- a DoF iterator pointing behind the last DoF (degree of freedom)
◆ dofsValid()
|
inline |
check for NaNs
- Returns
- if one of the DoFs is NaN false is returned, otherwise true
◆ dofVector() [1/2]
|
inline |
◆ dofVector() [2/2]
|
inline |
◆ enableDofCompression()
|
inline |
Enable this discrete function for dof compression, i.e. during grid changes a dof compression is done when the DofManagers compress is called.
◆ getLocalDofs()
|
inline |
fill local Dofs to dof vector associated with the entity
- Parameters
-
[in] entity Entity to focus view of discrete function [out] localDofs the local dofs vector to be set
- Note
- localDofs should have sufficient size to store the dof values
◆ gridPart()
|
inline |
obtain a reference to the underlying grid part
◆ localFunction() [1/4]
|
inline |
obtain an uninitialized local function (read-write)
- Note
- before calling any method of the local function initialize it passing an entity
- Returns
- an uninitialized local function
◆ localFunction() [2/4]
|
inline |
obtain an uninitialized local function (read-write)
- Note
- before calling any method of the local function initialize it passing an entity
- Returns
- an uninitialized local function
◆ localFunction() [3/4]
|
inline |
obtain a local function for an entity (read-write)
- Parameters
-
[in] entity Entity to focus view of discrete function
- Returns
- a local function associated with the entity
◆ localFunction() [4/4]
|
inline |
obtain a local function for an entity (read-write)
- Parameters
-
[in] entity Entity to focus view of discrete function
- Returns
- a local function associated with the entity
◆ name() [1/2]
|
inline |
obtain the name of the discrete function
- Returns
- string holding name of discrete function
◆ name() [2/2]
|
inline |
obtain the name of the discrete function
- Returns
- string holding name of discrete function
◆ normSquaredDofs()
|
inline |
Squared small l^2 norm of all dofs.
- Note
- This is already parallel, so do not sum over all processes after calling scalarProductDofs!
- It is assumed that the discrete function has been communicated (i.e., every local DoF hat the value of the corresponding global DoF).
- Returns
- the squared norm of the DoF-vectors
◆ operator()()
|
inlineinherited |
Application operator that applies all operators in the linear combination stack.
- Parameters
-
[in] arg argument [out] dest destination
◆ operator*=()
|
inline |
multiply all DoFs by a scalar factor
- Parameters
-
[in] scalar factor to muliply all DoFs by
- Returns
- a reference to this discrete function (i.e. *this)
◆ operator+=()
|
inline |
add another discrete function to this one
- Parameters
-
[in] g discrete function to add
- Returns
- a reference to this discrete function (i.e. *this)
◆ operator-=()
|
inline |
substract all degrees of freedom from given discrete function using the dof iterators
- Parameters
-
[in] g discrete function which is substracted from this discrete function
- Returns
- reference to this (i.e. *this)
◆ operator/=()
|
inline |
devide all DoFs by a scalar factor
- Parameters
-
[in] scalar factor to divide all DoFs by
- Returns
- a reference to this discrete function (i.e. *this)
◆ operator=() [1/2]
|
delete |
◆ operator=() [2/2]
|
delete |
◆ order()
|
inline |
obtain an upper bound on the polynomial order of the underlying space.
◆ print()
|
inline |
print all DoFs to a stream (for debugging purposes)
- Parameters
-
[in] out stream to print to
◆ read()
|
inline |
read the discrete function from a stream
- Parameters
-
[in] in stream to read the discrete function from
- Note
- This call will automatically enable dof compression for this discrete function.
◆ scalarProductDofs()
|
inline |
Scalar product between the DoFs of two discrete functions.
- Note
- This is a parallel scalar product, so do not sum over all processes after calling scalarProductDofs!
- It is assumed that the discrete function has been communicated (i.e., every local DoF hat the value of the corresponding global DoF).
- Parameters
-
[in] other discrete function to evaluate the scalar product with
- Returns
- the scalar product of the DoF-vectors
◆ setLocalDofs()
|
inline |
set local Dofs to dof vector associated with the entity
- Parameters
-
[in] entity Entity to focus view of discrete function [in] localDofs the local dofs vector to be set
◆ size()
|
inline |
obtain total number of DoFs
The number of DoFs (degrees of freedom) can also be seen as the size of the discrete function, i.e., the size of the vector that forms this discrete funciton.
- Returns
- total number of DoFs for this discrete function
◆ space()
|
inline |
obtain a reference to the corresponding DiscreteFunctionSpace
◆ write()
|
inline |
write the discrete function into a stream
- Parameters
-
[in] out stream to write the discrete function to
Friends And Related Symbol Documentation
◆ operator*() [1/2]
|
related |
scale mapping with factor
- Parameters
-
[in] mapping Mapping which is scaled [in] factor factor with which mapping is scaled
- Returns
- new object mapping
◆ operator*() [2/2]
|
related |
scale mapping with factor
- Parameters
-
[in] factor factor with which mapping is scaled [in] mapping Mapping which is scaled
- Returns
- new object mapping
◆ operator+()
|
related |
add two mappings
- Parameters
-
[in] a mapping 1 [in] b mapping 2
- Returns
- new object mapping
◆ operator-()
|
related |
substract two mappings
- Parameters
-
[in] a mapping 1 [in] b mapping 2
- Returns
- new object mapping
◆ operator/() [1/2]
|
related |
operator / for mappings
- Parameters
-
[in] mapping mapping which is divided [in] factor f factor by which result of mapping is divided
- Returns
- new object mapping
◆ operator/() [2/2]
|
related |
operator / for mappings
- Parameters
-
[in] factor by which result of mapping is divided [in] mapping which is divided
- Returns
- new object mapping
◆ operator<<()
|
related |
write a discrete function into an STL stream
- Parameters
-
[in] out STL stream to write to [in] df discrete function to write
- Returns
- the STL stream (for concatenation)
Member Data Documentation
◆ blockSize
|
staticconstexpr |
size of the dof blocks
The documentation for this class was generated from the following files:
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8