dune-functions  2.5.1
Classes | Typedefs | Functions
Function space basis implementations

Implementations of the GlobalBasis concept. More...

Collaboration diagram for Function space basis implementations:

Classes

class  Dune::Functions::BSplineLocalBasis< GV, R >
 LocalBasis class in the sense of dune-localfunctions, presenting the restriction of a B-spline patch to a knot span. More...
 
class  Dune::Functions::BSplineLocalCoefficients< dim >
 Attaches a shape function to an entity. More...
 
class  Dune::Functions::BSplineLocalInterpolation< dim, LB >
 Local interpolation in the sense of dune-localfunctions, for the B-spline basis on tensor-product grids. More...
 
class  Dune::Functions::BSplineLocalFiniteElement< GV, R >
 LocalFiniteElement in the sense of dune-localfunctions, for the B-spline basis on tensor-product grids. More...
 
class  Dune::Functions::BSplineNodeFactory< GV, MI >
 Node factory for B-spline basis. More...
 
class  Dune::Functions::CompositeNodeFactory< MI, IMS, SF >
 A factory for composite bases. More...
 
class  Dune::Functions::PQ1NodeFactory< GV, MI >
 Factory for a first order PQ-lagrange basis. More...
 
class  Dune::Functions::PQkNodeFactory< GV, k, MI >
 A factory for PQ-lagrange bases with given order. More...
 
class  Dune::Functions::TaylorHoodNodeFactory< GV, MI, HI >
 Factory for lowest order Taylor-Hood basis. More...
 

Typedefs

template<typename GV >
using Dune::Functions::BSplineBasis = DefaultGlobalBasis< BSplineNodeFactory< GV, FlatMultiIndex< std::size_t > > >
 A global B-spline basis. More...
 
template<typename GV , int k>
using Dune::Functions::LagrangeBasis = DefaultGlobalBasis< PQkNodeFactory< GV, k, FlatMultiIndex< std::size_t > > >
 Nodal basis of a scalar k-th-order Lagrangean finite element space. More...
 
template<typename GV , int k>
using Dune::Functions::LagrangeDGBasis = DefaultGlobalBasis< LagrangeDGNodeFactory< GV, k, FlatMultiIndex< std::size_t > > >
 Basis of a scalar k-th-order Lagrangean-DG finite element space. More...
 
template<typename GV >
using Dune::Functions::PQ1NodalBasis = DefaultGlobalBasis< PQ1NodeFactory< GV, FlatMultiIndex< std::size_t > > >
 Nodal basis of a scalar first-order Lagrangian finite element space. More...
 
template<typename GV , int k>
using Dune::Functions::PQkNodalBasis = DefaultGlobalBasis< PQkNodeFactory< GV, k, FlatMultiIndex< std::size_t > > >
 Nodal basis of a scalar k-th-order Lagrangean finite element space. More...
 
template<typename GV >
using Dune::Functions::TaylorHoodBasis = DefaultGlobalBasis< TaylorHoodNodeFactory< GV, std::array< std::size_t, 2 > > >
 Nodal basis for a lowest order Taylor-Hood Lagrangean finite element space. More...
 

Functions

template<typename... Args, std::enable_if_t< Concept::isIndexMergingStrategy< typename LastType< Args... >::type >(), int > = 0>
auto Dune::Functions::BasisBuilder::composite (Args &&... args)
 Create a factory builder that can build a CompositeNodeFactory. More...
 
template<std::size_t k, class SubFactoryTag , class IndexMergingStrategy >
Imp::PowerNodeFactoryBuilder< k, IndexMergingStrategy, SubFactoryTag > Dune::Functions::BasisBuilder::power (SubFactoryTag &&tag, const IndexMergingStrategy &ims)
 Create a factory builder that can build a PowerNodeFactory. More...
 
template<std::size_t k, class SubFactoryTag >
Imp::PowerNodeFactoryBuilder< k, LeafBlockedInterleaved, SubFactoryTag > Dune::Functions::BasisBuilder::power (SubFactoryTag &&tag)
 Create a factory builder that can build a PowerNodeFactory. More...
 
template<std::size_t k>
Imp::PQkNodeFactoryBuilder< k > Dune::Functions::BasisBuilder::pq ()
 Create a factory builder that can build a PQkNodeFactory. More...
 

Detailed Description

Implementations of the GlobalBasis concept.

Typedef Documentation

◆ BSplineBasis

template<typename GV >
using Dune::Functions::BSplineBasis = typedef DefaultGlobalBasis<BSplineNodeFactory<GV, FlatMultiIndex<std::size_t> > >

A global B-spline basis.

Template Parameters
GVThe GridView that the space is defined on

◆ LagrangeBasis

template<typename GV , int k>
using Dune::Functions::LagrangeBasis = typedef DefaultGlobalBasis<PQkNodeFactory<GV, k, FlatMultiIndex<std::size_t> > >

Nodal basis of a scalar k-th-order Lagrangean finite element space.

Note
This only works for certain grids. The following restrictions hold
  • If k is no larger than 2, then the grids can have any dimension
  • If k is larger than 3 then the grid must be two-dimensional
  • If k is 3, then the grid can be 3d if it is a simplex grid

All arguments passed to the constructor will be forwarded to the constructor of PQkNodeFactory.

Template Parameters
GVThe GridView that the space is defined on
kThe order of the basis

◆ LagrangeDGBasis

template<typename GV , int k>
using Dune::Functions::LagrangeDGBasis = typedef DefaultGlobalBasis<LagrangeDGNodeFactory<GV, k, FlatMultiIndex<std::size_t> > >

Basis of a scalar k-th-order Lagrangean-DG finite element space.

Template Parameters
GVThe GridView that the space is defined on
kThe order of the basis

◆ PQ1NodalBasis

template<typename GV >
using Dune::Functions::PQ1NodalBasis = typedef DefaultGlobalBasis<PQ1NodeFactory<GV, FlatMultiIndex<std::size_t> > >

Nodal basis of a scalar first-order Lagrangian finite element space.

Template Parameters
GVThe GridView that the space is defined on
Note
This mainly serves as an example, since PQkNodalBasis<GV,1> provides the same functionality.

◆ PQkNodalBasis

template<typename GV , int k>
using Dune::Functions::PQkNodalBasis = typedef DefaultGlobalBasis<PQkNodeFactory<GV, k, FlatMultiIndex<std::size_t> > >

Nodal basis of a scalar k-th-order Lagrangean finite element space.

Note
This only works for certain grids. The following restrictions hold
  • If k is no larger than 2, then the grids can have any dimension
  • If k is larger than 3 then the grid must be two-dimensional
  • If k is 3, then the grid can be 3d if it is a simplex grid

All arguments passed to the constructor will be forwarded to the constructor of PQkNodeFactory.

Template Parameters
GVThe GridView that the space is defined on
kThe order of the basis

◆ TaylorHoodBasis

template<typename GV >
using Dune::Functions::TaylorHoodBasis = typedef DefaultGlobalBasis<TaylorHoodNodeFactory<GV, std::array<std::size_t, 2> > >

Nodal basis for a lowest order Taylor-Hood Lagrangean finite element space.

Template Parameters
GVThe GridView that the space is defined on.
Note
This mainly serves as an example, since you can construct a basis with the same functionality manually using
static const int k = 1;
auto taylorHoodBasis = makeBasis(
gridView,
power<dim>(
lagrange<k+1>(),
lagrange<k>()
));

Function Documentation

◆ composite()

template<typename... Args, std::enable_if_t< Concept::isIndexMergingStrategy< typename LastType< Args... >::type >(), int > = 0>
auto Dune::Functions::BasisBuilder::composite ( Args &&...  args)

Create a factory builder that can build a CompositeNodeFactory.

Template Parameters
ArgsTypes of child factory builders and IndexMergingStrategy type
Parameters
argsChild factory builder objects and an IndexMergingStrategy

This is the overload used if the last argument is an IndexMergingStrategy.

Template Parameters
ArgsTypes of child factory builders
Parameters
argsChild factory builder objects

This is the overload used if no IndexMergingStrategy is supplied. In this case the BasisBuilder::BlockedLexicographic strategy is used.

◆ power() [1/2]

template<std::size_t k, class SubFactoryTag , class IndexMergingStrategy >
Imp::PowerNodeFactoryBuilder<k, IndexMergingStrategy, SubFactoryTag> Dune::Functions::BasisBuilder::power ( SubFactoryTag &&  tag,
const IndexMergingStrategy ims 
)

Create a factory builder that can build a PowerNodeFactory.

Template Parameters
SubFactoryTagTypes of child factory builder and IndexMergingStrategy type
IndexMergingStrategyAn IndexMergingStrategy type
Parameters
tagChild factory builder objects and an IndexMergingStrategy
imsIndexMergingStrategy to be used

This overload can be used to explicitly supply an IndexMergingStrategy.

◆ power() [2/2]

template<std::size_t k, class SubFactoryTag >
Imp::PowerNodeFactoryBuilder<k, LeafBlockedInterleaved, SubFactoryTag> Dune::Functions::BasisBuilder::power ( SubFactoryTag &&  tag)

Create a factory builder that can build a PowerNodeFactory.

Template Parameters
SubFactoryTagTypes of child factory builder and IndexMergingStrategy type
Parameters
tagChild factory builder objects and an IndexMergingStrategy

This overload will select the BasisBuilder::BlockedLexicographic strategy.

◆ pq()

template<std::size_t k>
Imp::PQkNodeFactoryBuilder<k> Dune::Functions::BasisBuilder::pq ( )

Create a factory builder that can build a PQkNodeFactory.

Template Parameters
kThe polynomial order of ansatz functions