5#ifndef DUNE_FUNCTIONS_FUNCTIONSPACEBASES_HierarchicalLagrangeWOTHELEMENTBUBBLEBASIS_HH
6#define DUNE_FUNCTIONS_FUNCTIONSPACEBASES_HierarchicalLagrangeWOTHELEMENTBUBBLEBASIS_HH
10#include <dune/common/exceptions.hh>
11#include <dune/common/math.hh>
13#include <dune/localfunctions/hierarchical/hierarchicalp1withelementbubble.hh>
14#include <dune/localfunctions/hierarchical/hierarchicalp2withelementbubble.hh>
19#include <dune/geometry/type.hh>
41 template<
typename GV,
int k,
typename R=
double>
44 template<
typename GV,
typename R>
46 :
public LFEPreBasisMixin<GV, HierarchicalP1WithElementBubbleLocalFiniteElement<typename GV::ctype,R,GV::dimension>>
51 Base(
gridView, [](GeometryType gt, int) {
return (gt.isVertex() || gt.dim() == GV::dimension) ? 1 : 0; })
53 for (
auto gt : gridView.indexSet().types(0)) {
55 DUNE_THROW(Dune::NotImplemented,
56 "Hierarchical Lagrange basis only implemented for simplex grids.");
61 template<
typename GV,
typename R>
63 :
public LFEPreBasisMixin<GV, HierarchicalP2WithElementBubbleLocalFiniteElement<typename GV::ctype,R,GV::dimension>>
68 Base(
gridView, [](GeometryType gt, int) {
return (gt.dim() <= 1 || gt.dim() == GV::dimension) ? 1 : 0; })
70 for (
auto gt : gridView.indexSet().types(0)) {
72 DUNE_THROW(Dune::NotImplemented,
73 "Hierarchical Lagrange basis only implemented for simplex grids.");
89 template<
int k,
typename R=
double>
92 static_assert(0 < k && k <= 2);
93 return [](
const auto& gridView) {
99 template<
typename R=
double>
106 template<
typename R=
double>
124 template<
typename GV,
int k,
typename R=
double>
auto hierarchicalLagrangeWithElementBubble()
A factory that can create a HierarchicalLagrangeWithElementBubble pre-basis.
Definition hierarchicallagrangewithelementbubblebasis.hh:90
DefaultGlobalBasis< HierarchicalLagrangeWithElementBubblePreBasis< GV, k, R > > HierarchicalLagrangeWithElementBubbleBasis
Basis of a Hierarchical Lagrange finite element space with element bubble functions.
Definition hierarchicallagrangewithelementbubblebasis.hh:125
Definition monomialset.hh:19
Definition monomialset.hh:19
Definition argyrisbasis.hh:926
auto hierarchicalP2B()
Explicit factory for k=2 for the HierarchicalLagrangeWithElementBubblePreBasis pre-basis.
Definition hierarchicallagrangewithelementbubblebasis.hh:107
auto hierarchicalP1B()
Explicit factory for k=1 for the HierarchicalLagrangeWithElementBubblePreBasis pre-basis.
Definition hierarchicallagrangewithelementbubblebasis.hh:100
Global basis for given pre-basis.
Definition defaultglobalbasis.hh:53
A pre-basis for a hierarchical basis.
Definition hierarchicallagrangewithelementbubblebasis.hh:42
HierarchicalLagrangeWithElementBubblePreBasis(const GV &gridView)
Definition hierarchicallagrangewithelementbubblebasis.hh:50
HierarchicalLagrangeWithElementBubblePreBasis(const GV &gridView)
Definition hierarchicallagrangewithelementbubblebasis.hh:67
const GridView & gridView() const
Definition leafprebasismappermixin.hh:95
LFEPreBasisMixin(const GridView &gv, MCMGLayout layout)
Definition lfeprebasismixin.hh:75