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>
 
   30    static_assert(dim == 2 || dim == 3, 
"P1/Q1 bubble FE spaces only implemented for 2D and 3D grids");
 
   38    using FiniteElementType = Dune::LocalFiniteElementVirtualInterface<typename P1Bubble::Traits::LocalBasisType::Traits>;
 
   41    : p1BubbleBasis_(std::make_unique<
Dune::LocalFiniteElementVirtualImp<P1Bubble>>(P1Bubble{}))
 
   42    , q1BubbleBasis_(std::make_unique<
Dune::LocalFiniteElementVirtualImp<Q1Bubble>>(Q1Bubble{}))
 
 
   49            return *p1BubbleBasis_;
 
   51            return *q1BubbleBasis_;
 
   53            DUNE_THROW(Dune::NotImplemented,
 
   54                "Lagrange bubble local finite element for geometry type " << gt
 
 
   59    std::unique_ptr<FiniteElementType> p1BubbleBasis_;
 
   60    std::unique_ptr<FiniteElementType> q1BubbleBasis_;
 
 
const FiniteElementType & get(const Dune::GeometryType >) const
Get local finite element for given GeometryType.
Definition pq1bubblefecache.hh:46
Dune::LocalFiniteElementVirtualInterface< typename P1Bubble::Traits::LocalBasisType::Traits > FiniteElementType
Definition pq1bubblefecache.hh:38
PQ1BubbleFECache()
Definition pq1bubblefecache.hh:40
P1/Q1 + Bubble finite element.
Definition pq1bubblelocalfiniteelement.hh:284
Definition common/pdesolver.hh:24
Evaluate P1/Q1 basis with bubble function.