![]() |
Dune-Functions 2.12-git
|
Loading...
Searching...
No Matches
lagrangebasis.hh
Go to the documentation of this file.
257 constexpr void computeTriangleOrientation(const auto& vertexIndices, const auto& re, int subEntity)
264 constexpr uint32_t edgeOrientationsToTriangleOrientation = 0b0101'0001'0011'0100'0010'0011'0110'0000;
284 constexpr void computeQuadrilateralOrientation(const auto& vertexIndices, const auto& re, auto subEntity)
311 constexpr uint32_t edgeOrientationsToMinVertex = 0b11'11'01'01'11'00'00'00'10'00'00'01'10'00'10'00;
361 FaceOrientations(const Dune::GeometryType& geometryType, const VertexIds& vertexIds, const Dune::index_constant<codims>&... codimensions)
378 return Dune::transformedRangeView(re.subEntities(faceIndex, faceCodim, dim), [&](auto localVertexIndex) {
619 auto vertexIds = Dune::transformedRangeView(re.subEntities(0,0,dim), [&](auto localVertexIndex) {
649 unsigned int permuteFaceDOF(unsigned int subEntity, unsigned int codim, unsigned int index, const FaceOrientations<dim>& orientations) const
688 unsigned int permuteFaceDOF(const Dune::LocalKey& localKey, const FaceOrientations<dim>& orientations) const
696 Std::mdarray<FaceIndexType, Std::extents<std::size_t, 16, std::dynamic_extent>> facetFlipTable_;
729 DUNE_THROW(RangeError, "Polynomial order >2 is not supported for grids containing pyramid elements.");
731 DUNE_THROW(RangeError, "Polynomial order >2 is not supported for grids containing prism elements.");
781 using FaceDOFPermutation = Experimental::LagrangeFaceDOFPermutation<typename GV::Grid::GlobalIdSet>;
810 DUNE_THROW(RangeError, "Polynomial order >" << FaceDOFPermutation::maxOrder3d << " is not supported in 3d");
941 constexpr auto type = Dune::GeometryType(Dune::Capabilities::hasSingleGeometryType<typename GV::Grid>::topologyId, GV::dimension);
943 return Dune::MetaType<SingleLocalFiniteElementCache<Dune::LagrangeSimplexLocalFiniteElement<D,R,dim,k>>>{};
945 return Dune::MetaType<SingleLocalFiniteElementCache<Dune::LagrangeCubeLocalFiniteElement<D,R,dim,k>>>{};
947 return Dune::MetaType<SingleLocalFiniteElementCache<Dune::LagrangePrismLocalFiniteElement<D,R,k>>>{};
949 return Dune::MetaType<SingleLocalFiniteElementCache<Dune::LagrangePyramidLocalFiniteElement<D,R,k>>>{};
auto lagrange()
Create a pre-basis factory that can create a Lagrange pre-basis.
Definition lagrangebasis.hh:1018
STL namespace.
int size() const
auto transformedRangeView(R &&range, F &&f)
static constexpr IntegralRange< T > range(T from, T to) noexcept
static TupleAccessTraits< typenameAtType< N, Tuple >::Type >::NonConstType get(Tuple &t)
size_type dim() const
std::ptrdiff_t index() const
#define DUNE_THROW(E,...)
static constexpr T binomial(const T &n, const T &k) noexcept
constexpr Base power(Base m, Exponent p)
const IndexSet & indexSet() const
constexpr bool isPyramid() const
constexpr bool isPrism() const
constexpr unsigned int dim() const
constexpr bool isCube() const
constexpr bool isSimplex() const
constexpr unsigned int index() const noexcept
constexpr unsigned int codim() const noexcept
constexpr unsigned int subEntity() const noexcept
auto size(GeometryType type) const
Global basis for given pre-basis.
Definition defaultglobalbasis.hh:53
A class encoding the orientation of the subentities of an entity.
Definition lagrangebasis.hh:209
FaceOrientations()=default
Default construct FaceOrientations with index 0.
std::size_t faceOrientationIndex(std::size_t subEntity, std::size_t codim) const
Return index of the orientation for the given face.
Definition lagrangebasis.hh:403
FaceOrientations(const Dune::GeometryType &geometryType, const VertexIds &vertexIds, const Dune::index_constant< codims > &... codimensions)
Construct FaceOrientations for given vertex ids.
Definition lagrangebasis.hh:361
A class for permuting Lagrange DOFs of arbitrary order for dimensions 1,2,3.
Definition lagrangebasis.hh:432
LagrangeFaceDOFPermutation(const IndexIdSet &indexSet, int order)
Definition lagrangebasis.hh:585
unsigned int permuteFaceDOF(unsigned int subEntity, unsigned int codim, unsigned int index, const FaceOrientations< dim > &orientations) const
Compute permuted index of a face DOF.
Definition lagrangebasis.hh:649
FaceOrientations< dim > computeFaceOrientations(const Element &element) const
Compute FaceOrientations for grid elements.
Definition lagrangebasis.hh:616
unsigned int permuteFaceDOF(const Dune::LocalKey &localKey, const FaceOrientations< dim > &orientations) const
Compute permuted index of a face DOF.
Definition lagrangebasis.hh:688
Definition lagrangebasis.hh:907
LagrangeNode(unsigned int order)
Constructor with a run-time order.
Definition lagrangebasis.hh:969
const FiniteElement & finiteElement() const
Return the LocalFiniteElement for the element we are bound to.
Definition lagrangebasis.hh:985
const Element & element() const
Return current element, throw if unbound.
Definition lagrangebasis.hh:976
typename FiniteElementCache::FiniteElementType FiniteElement
Definition lagrangebasis.hh:961
void bind(const Element &e)
Bind to element.
Definition lagrangebasis.hh:991
typename GV::template Codim< 0 >::Entity Element
Definition lagrangebasis.hh:960
const FiniteElement * finiteElement_
Definition lagrangebasis.hh:1001
LagrangeNode()
Constructor without order (uses the compile-time value)
Definition lagrangebasis.hh:964
A pre-basis for a PQ-lagrange bases with given order.
Definition lagrangebasis.hh:760
LagrangePreBasis(const GridView &gv, unsigned int runTimeOrder)
Constructor for a given grid view object and run-time order.
Definition lagrangebasis.hh:800
void initializeIndices()
Initialize the global indices.
Definition lagrangebasis.hh:814
size_type dimension() const
Get the total dimension of the space spanned by this basis.
Definition lagrangebasis.hh:841
LagrangePreBasis(const GridView &gv)
Constructor for a given grid view object with compile-time order.
Definition lagrangebasis.hh:795
void update(const GridView &gv)
Update the stored grid view, to be called if the grid has changed.
Definition lagrangebasis.hh:824
GV GridView
The grid view that the FE basis is defined on.
Definition lagrangebasis.hh:786
const GridView & gridView() const
Obtain the grid view that the basis is defined on.
Definition lagrangebasis.hh:818
Node makeNode() const
Create tree node.
Definition lagrangebasis.hh:835
unsigned int order() const
Polynomial order used in the local Lagrange finite-elements.
Definition lagrangebasis.hh:887
FaceDOFPermutation faceDOFPermutation_
Definition lagrangebasis.hh:899
size_type maxNodeSize() const
Get the maximal number of DOFs associated to node for any element.
Definition lagrangebasis.hh:847
It indices(const Node &node, It it) const
Definition lagrangebasis.hh:855
Dune::MultipleCodimMultipleGeomTypeMapper< GridView > mapper_
Definition lagrangebasis.hh:898
A generic MixIn class for PreBasis.
Definition leafprebasismixin.hh:36
Definition nodes.hh:214
T swap(T... args)
T to_ulong(T... args)
