DUNE PDELab (2.8)

Dune::Functions::DiscreteGlobalBasisFunction< B, V, NTRE, R > Class Template Reference

A grid function induced by a global basis and a coefficient vector. More...

#include <dune/functions/gridfunctions/discreteglobalbasisfunction.hh>

Public Member Functions

const EntitySetentitySet () const
 Get associated EntitySet.
 

Detailed Description

template<typename B, typename V, typename NTRE = HierarchicNodeToRangeMap, typename R = typename V::value_type>
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 N in the local ansatz subtree is associated to an entry RE of the range-type via the given node-to-range-entry-map.

Now let C be the coefficient block for a single basis function and V the value of this basis function at the evaluation point. Notice that both may be scalar, vector, matrix, or general container valued.

2.Each entry of C is associated with a flat index j via flatVectorView. This is normally a lexicographic index. The total scalar dimension according to those flat indices is dim(C). 3.Each entry of V is associated with a flat index k via flatVectorView. This is normally a lexicographic index. The total scalar dimension according to those flat indices dim(V). 4.Each entry of RE is associated with a flat index k via flatVectorView. This is normally a lexicographic index. The total scalar dimension according to those flat indices dim(RE). 5.Via those flat indices we now interpret C,V, and RE as vectors and compute the diadic product (C x V). The entries of this product are mapped to the flat indices for RE lexicographically. I.e. we set

RE[j*dim(V)+k] = C[j] * V[k]

Hence the range entry RE must have dim(RE) = dim(C)*dim(V).

Template Parameters
BType of lobal basis
VType of coefficient vectors
NTREType of node-to-range-entry-map that associates each leaf node in the local ansatz subtree with an entry in the range type
RRange type of this function

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 (Dec 22, 23:30, 2024)