Dune Core Modules (2.9.0)
A grid function induced by a global basis and a coefficient vector. More...
#include <dune/functions/gridfunctions/discreteglobalbasisfunction.hh>
Public Member Functions | |
template<class B_T , class V_T , class NTRE_T > | |
DiscreteGlobalBasisFunction (B_T &&basis, V_T &&coefficients, NTRE_T &&nodeToRangeEntry) | |
Create a grid-function, by wrapping the arguments in std::shared_ptr . | |
DiscreteGlobalBasisFunction (std::shared_ptr< const Basis > basis, std::shared_ptr< const V > coefficients, std::shared_ptr< const typename Base::NodeToRangeEntry > nodeToRangeEntry) | |
Create a grid-function, by moving the arguments in std::shared_ptr . | |
Range | operator() (const Domain &x) const |
Not implemented. | |
const Basis & | basis () const |
Return a const reference to the stored basis. | |
const Vector & | dofs () const |
Return the coefficients of this discrete function by reference. | |
const NodeToRangeEntry & | nodeToRangeEntry () const |
Return the stored node-to-range map. | |
const EntitySet & | entitySet () const |
Get associated set of entities the local-function can be bound to. | |
Friends | |
DiscreteGlobalBasisFunctionDerivative< DiscreteGlobalBasisFunction > | derivative (const DiscreteGlobalBasisFunction &f) |
Derivative of the DiscreteGlobalBasisFunction | |
LocalFunction | localFunction (const DiscreteGlobalBasisFunction &t) |
Construct local function from a DiscreteGlobalBasisFunction. More... | |
Related Functions | |
(Note that these are not member functions.) | |
template<typename R , typename B , typename V > | |
auto | makeDiscreteGlobalBasisFunction (B &&basis, V &&vector) |
Generate a DiscreteGlobalBasisFunction. More... | |
Detailed Description
class Dune::Functions::DiscreteGlobalBasisFunction< B, V, NTRE, R >
A grid function induced by a global basis and a coefficient vector.
This implements the grid function interface by combining a given global basis and a coefficient vector.
This class supports mapping of subtrees to multi-component ranges, vector-valued shape functions, and implicit product spaces given by vector-valued coefficients. The mapping of these to the range type is done via the following multistage procedure:
1.Each leaf node in the local ansatz subtree is associated to an entry RE
of the range-type via the given node-to-range-entry-map. Based on this mapping each node is processed independently in the following way:
2.Now let the coefficients type C
per basis function be dim_C
-dimensional. Then we compute the dim(C) linear combinations (one for each coefficient index) of the shape function values with type V
independently storing them in a std::array<V,dim_C>
.
3.Finally the resulting array of function values is assigned to the nodal range entry RE
. Since both types may be different their entries are mapped to one another via flatVectorView()
. This will recursive enumerate the entries of the types in lexicographic order (unless flatVectorView
is specialized differently for a certain type).
As a consequence the nodal range entry is required to have a total dimension dim_RE = dim_C * dim_V
and to be compatible with flatVectorView()
.
- Template Parameters
-
B Type of global basis V Type of coefficient vectors NTRE Type of node-to-range-entry-map that associates each leaf node in the local ansatz subtree with an entry in the range type R Range type of this function
Friends And Related Function Documentation
◆ localFunction
|
friend |
Construct local function from a DiscreteGlobalBasisFunction.
The obtained a local-function the satisfies the concept Dune::Functions::Concept::LocalFunction
. It must be bound to an entity from the entity set of the DiscreteGlobalBasisFunction before it can be used.
The documentation for this class was generated from the following file:
- dune/functions/gridfunctions/discreteglobalbasisfunction.hh