DUNE-FEM (unstable)
Classes | |
class | ISTLDofStorage |
Public Types | |
typedef ISTLBlockVectorDiscreteFunction< DiscreteFunctionSpace, Block > | DiscreteFunctionType |
type of the discrete function (Barton-Nackman parameter) | |
typedef BaseType::GridPartType | GridPartType |
type of the underlying grid part | |
typedef DiscreteFunctionSpaceType::DomainType | DomainType |
type of domain vector | |
typedef DiscreteFunctionSpaceType::RangeType | RangeType |
type of range vector | |
typedef DiscreteFunctionSpaceType::JacobianRangeType | JacobianRangeType |
type of jacobian | |
typedef DiscreteFunctionSpaceType::HessianRangeType | HessianRangeType |
type of hessian | |
typedef DiscreteFunctionSpaceType::DomainFieldType | DomainFieldType |
type of domain field (usually a float type) | |
typedef DiscreteFunctionSpaceType::RangeFieldType | RangeFieldType |
type of range field (usually a float type) | |
typedef Traits::DofIteratorType | DofIteratorType |
type of the dof iterator | |
typedef Traits::ConstDofIteratorType | ConstDofIteratorType |
type of the const dof iterator | |
typedef Traits::LocalDofVectorType | LocalDofVectorType |
type of LocalDofVector | |
typedef Traits::LocalDofVectorAllocatorType | LocalDofVectorAllocatorType |
type of LocalDofVector | |
typedef BaseType::LocalFunctionType | LocalFunctionType |
type of local functions | |
typedef DofVectorType::SizeType | SizeType |
size type of the block vector | |
typedef DiscreteFunctionSpaceType::FunctionSpaceType | FunctionSpaceType |
type of associated function space | |
typedef BaseType::MappingType | MappingType |
type of mapping base class for this discrete function | |
typedef ISTLBlockVectorDiscreteFunction< DiscreteFunctionSpace, Block > | FunctionType |
type of the implementation (Barton-Nackman) | |
Public Member Functions | |
ISTLBlockVectorDiscreteFunction (const std::string &name, const DiscreteFunctionSpaceType &space) | |
Constructor to use if the vector storing the dofs does not exist yet. More... | |
ISTLBlockVectorDiscreteFunction (const std::string &name, const DiscreteFunctionSpaceType &space, const DofContainerType &dofVector) | |
Constructor to use if the vector storing the dofs already exists. More... | |
ISTLBlockVectorDiscreteFunction (const ThisType &other) | |
Copy constructor. | |
ISTLBlockVectorDiscreteFunction (ThisType &&other) | |
Move constructor. | |
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. More... | |
DofContainerType & | blockVector () |
convenience method for usage with ISTL solvers | |
const DofContainerType & | blockVector () const |
convenience method for usage with ISTL solvers | |
DofVectorType & | dofVector () |
const DofVectorType & | dofVector () const |
ScalarProductType & | scalarProduct () |
returns ScalarProduct to be used with ISTLInverseOp | |
template<class DFType > | |
void | assign (const DiscreteFunctionInterface< DFType > &g) |
void | assign (const DiscreteFunctionType &g) |
const std::string & | name () const |
obtain the name of the discrete function More... | |
std::string & | name () |
obtain the name of the discrete function More... | |
constexpr int | order () const |
obtain an upper bound on the polynomial order of the underlying space. More... | |
bool | continuous () const |
returns true if the space contains only globally continuous functions More... | |
const DiscreteFunctionSpaceType & | space () const |
obtain a reference to the corresponding DiscreteFunctionSpace More... | |
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) More... | |
const LocalFunctionType | localFunction (const EntityType &entity) const |
obtain a local function for an entity (read-write) More... | |
LocalFunctionType | localFunction () |
obtain an uninitialized local function (read-write) More... | |
const LocalFunctionType | localFunction () const |
obtain an uninitialized local function (read-write) More... | |
void | clear () |
set all degrees of freedom to zero More... | |
int | blocks () const |
obtain total number of blocks, i.e. size / blockSize. More... | |
DofBlockPtrType | block (unsigned int index) |
ConstDofBlockPtrType | block (unsigned int index) const |
SizeType | size () const |
Return the number of blocks in the block vector. More... | |
ConstDofIteratorType | dbegin () const |
Obtain the constant iterator pointing to the first dof. More... | |
DofIteratorType | dbegin () |
Obtain the non-constant iterator pointing to the first dof. More... | |
ConstDofIteratorType | dend () const |
Obtain the constant iterator pointing to the last dof. More... | |
DofIteratorType | dend () |
Obtain the non-constant iterator pointing to the last dof. More... | |
void | axpy (const RangeFieldType &s, const DiscreteFunctionInterface< DFType > &g) |
axpy operation More... | |
void | axpy (const RangeFieldType &s, const DiscreteFunctionInterfaceType &g) |
axpy operation More... | |
RangeFieldType | scalarProductDofs (const DiscreteFunctionInterface< DFType > &other) const |
Scalar product between the DoFs of two discrete functions. More... | |
Dune::FieldTraits< RangeFieldType >::real_type | normSquaredDofs () const |
Squared small l^2 norm of all dofs. More... | |
void | print (std ::ostream &out) const |
print all DoFs to a stream (for debugging purposes) More... | |
bool | dofsValid () const |
check for NaNs More... | |
CommDataHandle< Operation >::Type | dataHandle (const Operation &operation) |
return reference to data handle object More... | |
void | communicate () |
do default communication of space for this discrete function More... | |
void | evaluate (const DomainType &x, RangeType &value) const |
evaluate the function More... | |
void | evaluate (const DomainType &x, RangeType &value) const |
evaluate the function More... | |
void | jacobian (const DomainType &x, JacobianRangeType &jacobian) const |
evaluate the Jacobian of the function More... | |
void | jacobian (const DomainType &x, JacobianRangeType &jacobian) const |
evaluate the Jacobian of the function More... | |
void | hessian (const DomainType &x, HessianRangeType &hessian) const |
evaluate the hessian of the function (const DomainType &x,HessianRangeType &hessian) const More... | |
void | hessian (const DomainType &x, HessianRangeType &hessian) const |
evaluate the hessian of the function More... | |
DiscreteFunctionType & | operator+= (const DiscreteFunctionInterface< DFType > &g) |
add another discrete function to this one More... | |
DiscreteFunctionType & | operator+= (const DiscreteFunctionType &g) |
add another discrete function to this one More... | |
DiscreteFunctionType & | operator-= (const DiscreteFunctionInterface< DFType > &g) |
substract all degrees of freedom from given discrete function using the dof iterators More... | |
DiscreteFunctionType & | operator-= (const DiscreteFunctionType &g) |
substract all degrees of freedom from given discrete function using the dof iterators More... | |
DiscreteFunctionType & | operator*= (const RangeFieldType &scalar) |
multiply all DoFs with a scalar factor More... | |
DiscreteFunctionType & | operator/= (const RangeFieldType &scalar) |
devide all DoFs by a scalar factor More... | |
void | read (InStreamInterface< StreamTraits > &in) |
read the discrete function from a stream More... | |
void | write (OutStreamInterface< StreamTraits > &out) const |
write the discrete function into a stream More... | |
void | addScaledLocalDofs (const EntityType &entity, const RangeFieldType &s, const LocalDofs &localDofs) |
add scaled local Dofs to dof vector associated with the entity More... | |
void | addLocalDofs (const EntityType &entity, const LocalDofs &localDofs) |
add local Dofs to dof vector associated with the entity More... | |
void | setLocalDofs (const EntityType &entity, const LocalDofs &localDofs) |
set local Dofs to dof vector associated with the entity More... | |
void | getLocalDofs (const EntityType &entity, Vector &localDofs) const |
fill local Dofs to dof vector associated with the entity More... | |
LocalDofVectorAllocatorType & | localDofVectorAllocator () const |
obtain the local function storage More... | |
void | beginAssemble () |
Initiate the assemble of values using the LocalContribution concept. More... | |
void | endAssemble (const bool communicate=true) |
Finalize the assemble of values using the LocalContribution concept. More... | |
void | getLocalDofReferences (const EntityType &entity, LocalDofVectorType &localDofs) |
get local Dofs and store a reference to it in the LocalDofVector | |
virtual void | operator() (const DomainType &arg, RangeType &dest) const |
application operator call evaluate More... | |
void | operator() (const DomainType &arg, RangeType &dest) const |
Application operator that applies all operators in the linear combination stack. More... | |
Static Public Attributes | |
static constexpr std::size_t | blockSize |
size of the dof blocks | |
Protected Member Functions | |
virtual void | backup () const |
virtual void | restore () |
virtual void | insertSubData () |
virtual void | removeSubData () |
void | evaluateGlobal (const DomainType &x, Functor functor) const |
evaluate functor in global coordinate | |
Detailed Description
class Dune::Fem::ISTLBlockVectorDiscreteFunction< DiscreteFunctionSpace, Block >
this is one special implementation of a discrete function using an array for storing the dofs.
- Note
- The class Block needs to fullfil the Dune::DenseVector interface.
Constructor & Destructor Documentation
◆ ISTLBlockVectorDiscreteFunction() [1/2]
|
inline |
Constructor to use if the vector storing the dofs does not exist yet.
- Parameters
-
[in] name name of the discrete function [in] space space the discrete function lives in
◆ ISTLBlockVectorDiscreteFunction() [2/2]
|
inline |
Constructor to use if the vector storing the dofs already exists.
- Parameters
-
[in] name name of the discrete function [in] space space the discrete function lives in [in] dofVector reference to the dof vector
Member Function Documentation
◆ addLocalDofs()
|
inlineinherited |
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()
|
inlineinherited |
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
◆ assign() [1/2]
|
inline |
◆ assign() [2/2]
|
inline |
◆ axpy() [1/2]
|
inlineinherited |
axpy operation
Adds s * g to this discrete function.
- Parameters
-
[in] s scalar value to scale g with [in] g discrete function to add
◆ axpy() [2/2]
|
inlineinherited |
axpy operation
Adds s * g to this discrete function.
- Parameters
-
[in] s scalar value to scale g with [in] g discrete function to add
◆ backup()
|
inlineprotectedvirtualinherited |
Implements Dune::Fem::PersistentObject.
◆ beginAssemble()
|
inlineinherited |
Initiate the assemble of values using the LocalContribution concept.
- Template Parameters
-
AssembleOperation the specific operation (Add, Set, ...)
◆ block() [1/2]
|
inlineinherited |
◆ block() [2/2]
|
inlineinherited |
◆ blocks()
|
inlineinherited |
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()
|
inlineinherited |
set all degrees of freedom to zero
◆ communicate()
|
inlineinherited |
do default communication of space for this discrete function
◆ continuous()
|
inlineinherited |
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()
|
inherited |
return reference to data handle object
◆ dbegin() [1/2]
|
inlineinherited |
Obtain the non-constant iterator pointing to the first dof.
- Returns
- Non-Constant iterator pointing to the first dof
◆ dbegin() [2/2]
|
inlineinherited |
Obtain the constant iterator pointing to the first dof.
- Returns
- Constant iterator pointing to the first dof
◆ dend() [1/2]
|
inlineinherited |
Obtain the non-constant iterator pointing to the last dof.
- Returns
- Non-Constant iterator pointing to the last dof
◆ dend() [2/2]
|
inlineinherited |
Obtain the constant iterator pointing to the last dof.
- Returns
- Constant iterator pointing to the last dof
◆ dofsValid()
|
inlineinherited |
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.
◆ endAssemble()
|
inlineinherited |
Finalize the assemble of values using the LocalContribution concept.
- Template Parameters
-
AssembleOperation the specific operation (Add, Set, ...)
◆ evaluate() [1/2]
|
inlineinherited |
evaluate the function
- Parameters
-
[in] x evaluation point [out] value value of the function in x
◆ evaluate() [2/2]
|
inlineinherited |
evaluate the function
- Parameters
-
[in] x evaluation point [out] value value of the function in x
◆ getLocalDofs()
|
inlineinherited |
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
◆ hessian() [1/2]
|
inlineinherited |
evaluate the hessian of the function (const DomainType &x,HessianRangeType &hessian) const
- Parameters
-
[in] x evaluation point [out] hessian value of the hessian in x (const DomainType &x,HessianRangeType &hessian) const
◆ hessian() [2/2]
|
inlineinherited |
evaluate the hessian of the function
- Parameters
-
[in] x evaluation point [out] hessian value of the hessian in x
◆ insertSubData()
|
protectedvirtualinherited |
Reimplemented from Dune::Fem::PersistentObject.
◆ jacobian() [1/2]
|
inlineinherited |
evaluate the Jacobian of the function
- Parameters
-
[in] x evaluation point [out] jacobian value of the Jacobian in x
◆ jacobian() [2/2]
|
inlineinherited |
evaluate the Jacobian of the function
- Parameters
-
[in] x evaluation point [out] jacobian value of the Jacobian in x
◆ localDofVectorAllocator()
|
inlineinherited |
obtain the local function storage
- Returns
- a reference to the local function storage
◆ localFunction() [1/4]
|
inlineinherited |
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]
|
inlineinherited |
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]
|
inlineinherited |
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]
|
inlineinherited |
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()
|
inlineinherited |
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()() [1/2]
|
inlinevirtualinherited |
application operator call evaluate
- Parameters
-
[in] arg argument [out] dest destination, i.e. f(arg)
◆ operator()() [2/2]
Application operator that applies all operators in the linear combination stack.
- Parameters
-
[in] arg argument [out] dest destination
◆ operator*=()
|
inlineinherited |
multiply all DoFs with a scalar factor
- Parameters
-
[in] scalar factor to multiply DoFs with
- Returns
- reference to this discrete function (i.e. *this)
◆ operator+=() [1/2]
|
inlineinherited |
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+=() [2/2]
|
inlineinherited |
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-=() [1/2]
|
inlineinherited |
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-=() [2/2]
|
inlineinherited |
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/=()
|
inlineinherited |
devide all DoFs by a scalar factor
- Parameters
-
[in] scalar factor with which all dofs are devided
- Returns
- reference to this discrete function (i.e. *this)
◆ order()
|
inlineconstexprinherited |
obtain an upper bound on the polynomial order of the underlying space.
◆ print()
|
inlineinherited |
print all DoFs to a stream (for debugging purposes)
- Parameters
-
[in] out stream to print to
◆ read()
|
inlineinherited |
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.
◆ removeSubData()
|
protectedvirtualinherited |
Reimplemented from Dune::Fem::PersistentObject.
◆ restore()
|
inlineprotectedvirtualinherited |
Implements Dune::Fem::PersistentObject.
◆ scalarProductDofs()
|
inlineinherited |
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()
|
inlineinherited |
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()
|
inlineinherited |
Return the number of blocks in the block vector.
- Returns
- Number of block in the block vector
◆ space()
|
inlineinherited |
obtain a reference to the corresponding DiscreteFunctionSpace
◆ write()
|
inlineinherited |
write the discrete function into a stream
- Parameters
-
[in] out stream to write the discrete function to
Friends And Related Function Documentation
◆ operator*() [1/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*() [2/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+()
|
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] factor by which result of mapping is divided [in] mapping which is divided
- Returns
- new object mapping
◆ operator/() [2/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<<()
|
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)
The documentation for this class was generated from the following file:
- dune/fem/function/blockvectorfunction/blockvectorfunction.hh