24#ifndef DUMUX_DISCRETIZATION_NONCONFORMING_FECACHE_HH
25#define DUMUX_DISCRETIZATION_NONCONFORMING_FECACHE_HH
29#include <dune/common/exceptions.hh>
30#include <dune/geometry/type.hh>
32#include <dune/localfunctions/crouzeixraviart.hh>
33#include <dune/localfunctions/rannacherturek.hh>
34#include <dune/localfunctions/common/virtualinterface.hh>
35#include <dune/localfunctions/common/virtualwrappers.hh>
39template<
class CoordScalar,
class Scalar,
unsigned int dim>
42 static_assert(dim == 2 || dim == 3,
"Non-conforming FE spaces only implemented for 2D and 3D grids");
46 using RT = Dune::RannacherTurekLocalFiniteElement<CoordScalar, Scalar, dim>;
47 using CR = Dune::CrouzeixRaviartLocalFiniteElement<CoordScalar, Scalar, dim>;
50 using FiniteElementType = Dune::LocalFiniteElementVirtualInterface<typename RT::Traits::LocalBasisType::Traits>;
53 : rtBasis_(std::make_unique<
Dune::LocalFiniteElementVirtualImp<RT>>(RT{}))
54 , crBasis_(std::make_unique<
Dune::LocalFiniteElementVirtualImp<CR>>(CR{}))
65 DUNE_THROW(Dune::NotImplemented,
66 "Non-conforming local finite element for geometry type " << gt
71 std::unique_ptr<FiniteElementType> rtBasis_;
72 std::unique_ptr<FiniteElementType> crBasis_;
Adaption of the non-isothermal two-phase two-component flow model to problems with CO2.
Definition: adapt.hh:29
Definition: deprecated.hh:149
Definition: nonconformingfecache.hh:41
Dune::LocalFiniteElementVirtualInterface< typename RT::Traits::LocalBasisType::Traits > FiniteElementType
Definition: nonconformingfecache.hh:50
NonconformingFECache()
Definition: nonconformingfecache.hh:52
const FiniteElementType & get(const Dune::GeometryType >) const
Get local finite element for given GeometryType.
Definition: nonconformingfecache.hh:58