12#ifndef DUMUX_DISCRETIZATION_PQ1BUBBLE_FECACHE_HH
13#define DUMUX_DISCRETIZATION_PQ1BUBBLE_FECACHE_HH
17#include <dune/common/exceptions.hh>
18#include <dune/geometry/type.hh>
20#include <dune/localfunctions/common/virtualinterface.hh>
21#include <dune/localfunctions/common/virtualwrappers.hh>
27template<
class CoordScalar,
class Scalar,
unsigned int dim, std::
size_t numCubeBubbleDofs = 1>
30 static_assert(dim == 2 || dim == 3,
"P1/Q1 bubble FE spaces only implemented for 2D and 3D grids");
31 static_assert(numCubeBubbleDofs == 1 || numCubeBubbleDofs == 2,
32 "P1/Q1 bubble FE spaces supports numCubeBubbleDofs = 1 or 2");
40 using FiniteElementType = Dune::LocalFiniteElementVirtualInterface<typename P1Bubble::Traits::LocalBasisType::Traits>;
51 return *p1BubbleBasis_;
53 return *q1BubbleBasis_;
55 DUNE_THROW(Dune::NotImplemented,
56 "Lagrange bubble local finite element for geometry type " << gt
61 std::unique_ptr<FiniteElementType> p1BubbleBasis_;
62 std::unique_ptr<FiniteElementType> q1BubbleBasis_;
Definition: pq1bubblefecache.hh:29
PQ1BubbleFECache()
Definition: pq1bubblefecache.hh:42
const FiniteElementType & get(const Dune::GeometryType >) const
Get local finite element for given GeometryType.
Definition: pq1bubblefecache.hh:48
Dune::LocalFiniteElementVirtualInterface< typename P1Bubble::Traits::LocalBasisType::Traits > FiniteElementType
Definition: pq1bubblefecache.hh:40
P1/Q1 + Bubble finite element.
Definition: pq1bubblelocalfiniteelement.hh:322
Definition: common/pdesolver.hh:24
Evaluate P1/Q1 basis with bubble function.