4 #ifndef DUNE_LOCALFUNCTIONS_MONOMIAL_HH 5 #define DUNE_LOCALFUNCTIONS_MONOMIAL_HH 13 #include <dune/common/deprecated.hh> 15 #include <dune/geometry/type.hh> 40 template<
class D,
class R,
int d,
int p,
int diffOrder = p>
56 : basis(), interpolation(gt_, basis), gt(gt_)
94 MonomialLocalBasis<D,R,d,p, diffOrder> basis;
95 MonomialLocalCoefficients<static_size> coefficients;
96 MonomialLocalInterpolation<MonomialLocalBasis<D,R,d,p, diffOrder>,static_size> interpolation;
113 template<
class Geometry,
class RF, std::
size_t p>
115 typedef typename Geometry::ctype DF;
116 static const std::size_t dim = Geometry::mydimension;
120 std::vector<std::shared_ptr<const LocalFE> > localFEs;
122 void init(
const GeometryType >) {
123 std::size_t index = gt.id() >> 1;
124 if(localFEs.size() <= index)
125 localFEs.resize(index+1);
126 localFEs[index].reset(
new LocalFE(gt));
138 template<
class ForwardIterator>
140 const ForwardIterator &end)
142 for(ForwardIterator it = begin; it != end; ++it)
158 static_assert(dim <= 3,
"MonomFiniteElementFactory knows the " 159 "available geometry types only up to dimension 3");
164 gt.makeVertex(); init(gt);
167 gt.makeLine(); init(gt);
170 gt.makeTriangle(); init(gt);
171 gt.makeQuadrilateral(); init(gt);
174 gt.makeTetrahedron(); init(gt);
175 gt.makePyramid(); init(gt);
176 gt.makePrism(); init(gt);
177 gt.makeHexahedron(); init(gt);
198 std::size_t index = geometry.type().id() >> 1;
199 assert(localFEs.size() > index && localFEs[index]);
205 #endif // DUNE_LOCALFUNCTIONS_MONOMIAL_HH Definition: monomiallocalinterpolation.hh:18
traits helper struct
Definition: localfiniteelementtraits.hh:10
MonomialFiniteElementFactory(const ForwardIterator &begin, const ForwardIterator &end)
construct a MonomialFiniteElementFactory from a list of GeometryType's
Definition: monomial.hh:139
MonomialFiniteElementFactory()
construct a MonomFiniteElementFactory for all applicable GeometryType's
Definition: monomial.hh:157
const Traits::LocalInterpolationType & localInterpolation() const
Definition: monomial.hh:75
LocalFiniteElementTraits< MonomialLocalBasis< D, R, d, p, diffOrder >, MonomialLocalCoefficients< static_size >, MonomialLocalInterpolation< MonomialLocalBasis< D, R, d, p, diffOrder >, static_size > > Traits
Definition: monomial.hh:52
ImplementationDefined FiniteElement
Type of the finite element.
Definition: interface.hh:115
Factory for global-valued MonomFiniteElement objects.
Definition: monomial.hh:114
ScalarLocalToGlobalFiniteElementAdaptor< LocalFE, Geometry > FiniteElement
Definition: monomial.hh:131
Monomial basis for discontinuous Galerkin methods.
Definition: monomial.hh:41
unsigned int size() const
Number of shape functions in this finite element.
Definition: monomial.hh:81
Definition: brezzidouglasmarini1cube2dlocalbasis.hh:14
Definition: monomiallocalbasis.hh:20
LI LocalInterpolationType
Definition: localfiniteelementtraits.hh:22
Convert a simple scalar local finite element into a global finite element.
Definition: localtoglobaladaptors.hh:187
LC LocalCoefficientsType
Definition: localfiniteelementtraits.hh:18
const FiniteElement make(const Geometry &geometry)
construct a global-valued MonomFiniteElement
Definition: monomial.hh:197
const Traits::LocalBasisType & localBasis() const
Definition: monomial.hh:61
GeometryType type() const
Definition: monomial.hh:88
LB LocalBasisType
Definition: localfiniteelementtraits.hh:14
const Traits::LocalCoefficientsType & localCoefficients() const
Definition: monomial.hh:68
MonomialFiniteElementFactory(const GeometryType >)
construct a MonomialFiniteElementFactory from a single GeometryType
Definition: monomial.hh:150
Layout map for monomial finite elements.
Definition: monomiallocalcoefficients.hh:21
MonomialLocalFiniteElement(const GeometryType >_)
Construct a MonomLocalFiniteElement.
Definition: monomial.hh:55
Constant shape function.
Definition: monomiallocalbasis.hh:231