4 #ifndef DUNE_MONOMLOCALFINITEELEMENT_HH
5 #define DUNE_MONOMLOCALFINITEELEMENT_HH
12 #include <dune/common/shared_ptr.hh>
13 #include <dune/common/static_assert.hh>
15 #include <dune/geometry/type.hh>
37 template<
class D,
class R,
int d,
int p,
int diffOrder = p>
53 : basis(), interpolation(gt_, basis), gt(gt_)
104 template<
class Geometry,
class RF, std::
size_t p>
106 typedef typename Geometry::ctype DF;
107 static const std::size_t dim = Geometry::mydimension;
111 std::vector<shared_ptr<const LocalFE> > localFEs;
113 void init(
const GeometryType >) {
114 std::size_t index = gt.id() >> 1;
115 if(localFEs.size() <= index)
116 localFEs.resize(index+1);
117 localFEs[index].reset(
new LocalFE(gt));
129 template<
class ForwardIterator>
131 const ForwardIterator &end)
133 for(ForwardIterator it = begin; it != end; ++it)
149 dune_static_assert(dim <= 3,
"MonomFiniteElementFactory knows the "
150 "available geometry types only up to dimension 3");
155 gt.makeVertex(); init(gt);
158 gt.makeLine(); init(gt);
161 gt.makeTriangle(); init(gt);
162 gt.makeQuadrilateral(); init(gt);
165 gt.makeTetrahedron(); init(gt);
166 gt.makePyramid(); init(gt);
167 gt.makePrism(); init(gt);
168 gt.makeHexahedron(); init(gt);
189 std::size_t index = geometry.
type().id() >> 1;
190 assert(localFEs.size() > index && localFEs[index]);
196 #endif // DUNE_MONOMLOCALFINITEELEMENT_HH
GeometryType type() const
Definition: monom.hh:79
traits helper struct
Definition: localfiniteelementtraits.hh:10
Factory for global-valued MonomFiniteElement objects.
Definition: monom.hh:105
ImplementationDefined FiniteElement
Type of the finite element.
Definition: interface.hh:115
const Traits::LocalCoefficientsType & localCoefficients() const
Definition: monom.hh:65
MonomFiniteElementFactory(const GeometryType >)
construct a MonomFiniteElementFactory from a single GeometryType
Definition: monom.hh:141
GeometryType type() const
Definition: localtoglobaladaptors.hh:230
const FiniteElement make(const Geometry &geometry)
construct a global-valued MonomFiniteElement
Definition: monom.hh:188
Constant shape function.
Definition: monomlocalbasis.hh:230
Definition: monomlocalbasis.hh:19
Definition: monomlocalinterpolation.hh:18
ScalarLocalToGlobalFiniteElementAdaptor< LocalFE, Geometry > FiniteElement
Definition: monom.hh:122
LI LocalInterpolationType
Definition: localfiniteelementtraits.hh:22
LC LocalCoefficientsType
Definition: localfiniteelementtraits.hh:18
MonomFiniteElementFactory()
construct a MonomFiniteElementFactory for all applicable GeometryType's
Definition: monom.hh:148
LB LocalBasisType
Definition: localfiniteelementtraits.hh:14
const Traits::LocalBasisType & localBasis() const
Definition: monom.hh:58
Monom basis for discontinuous Galerkin.
Definition: monom.hh:38
MonomLocalFiniteElement(const GeometryType >_)
Construct a MonomLocalFiniteElement.
Definition: monom.hh:52
MonomFiniteElementFactory(const ForwardIterator &begin, const ForwardIterator &end)
construct a MonomFiniteElementFactory from a list of GeometryType's
Definition: monom.hh:130
Convert a simple scalar local finite element into a global finite element.
Definition: localtoglobaladaptors.hh:188
LocalFiniteElementTraits< MonomLocalBasis< D, R, d, p, diffOrder >, MonomLocalCoefficients< static_size >, MonomLocalInterpolation< MonomLocalBasis< D, R, d, p, diffOrder >, static_size > > Traits
Definition: monom.hh:49
const Traits::LocalInterpolationType & localInterpolation() const
Definition: monom.hh:72
Layout map for Monom elements.
Definition: monomlocalcoefficients.hh:22