![]() |
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_;
764 using FaceDOFPermutation = Experimental::LagrangeFaceDOFPermutation<typename GV::Grid::GlobalIdSet>;
792 DUNE_THROW(RangeError, "Polynomial order >2 is not supported for grids containing pyramid elements.");
794 DUNE_THROW(RangeError, "Polynomial order >2 is not supported for grids containing prism elements.");
796 DUNE_THROW(RangeError, "Polynomial order >" << FaceDOFPermutation::maxOrder3d << " is not supported in 3d");
813 DUNE_THROW(RangeError, "Polynomial order >2 is not supported for grids containing pyramid elements.");
815 DUNE_THROW(RangeError, "Polynomial order >2 is not supported for grids containing prism elements.");
930 constexpr auto type = Dune::GeometryType(Dune::Capabilities::hasSingleGeometryType<typename GV::Grid>::topologyId, GV::dimension);
932 return Dune::MetaType<SingleLocalFiniteElementCache<Dune::LagrangeSimplexLocalFiniteElement<D,R,dim,k>>>{};
934 return Dune::MetaType<SingleLocalFiniteElementCache<Dune::LagrangeCubeLocalFiniteElement<D,R,dim,k>>>{};
936 return Dune::MetaType<SingleLocalFiniteElementCache<Dune::LagrangePrismLocalFiniteElement<D,R,k>>>{};
938 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:1007
STL namespace.
int size() const
auto transformedRangeView(R &&range, F &&f)
static constexpr IntegralRange< std::decay_t< T > > range(T &&from, U &&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:896
LagrangeNode(unsigned int order)
Constructor with a run-time order.
Definition lagrangebasis.hh:958
const FiniteElement & finiteElement() const
Return the LocalFiniteElement for the element we are bound to.
Definition lagrangebasis.hh:974
const Element & element() const
Return current element, throw if unbound.
Definition lagrangebasis.hh:965
typename FiniteElementCache::FiniteElementType FiniteElement
Definition lagrangebasis.hh:950
void bind(const Element &e)
Bind to element.
Definition lagrangebasis.hh:980
typename GV::template Codim< 0 >::Entity Element
Definition lagrangebasis.hh:949
const FiniteElement * finiteElement_
Definition lagrangebasis.hh:990
LagrangeNode()
Constructor without order (uses the compile-time value)
Definition lagrangebasis.hh:953
A pre-basis for a PQ-lagrange bases with given order.
Definition lagrangebasis.hh:743
LagrangePreBasis(const GridView &gv, unsigned int runTimeOrder)
Constructor for a given grid view object and run-time order.
Definition lagrangebasis.hh:783
void initializeIndices()
Initialize the global indices.
Definition lagrangebasis.hh:800
size_type dimension() const
Get the total dimension of the space spanned by this basis.
Definition lagrangebasis.hh:830
LagrangePreBasis(const GridView &gv)
Constructor for a given grid view object with compile-time order.
Definition lagrangebasis.hh:778
void update(const GridView &gv)
Update the stored grid view, to be called if the grid has changed.
Definition lagrangebasis.hh:810
GV GridView
The grid view that the FE basis is defined on.
Definition lagrangebasis.hh:769
const GridView & gridView() const
Obtain the grid view that the basis is defined on.
Definition lagrangebasis.hh:804
Node makeNode() const
Create tree node.
Definition lagrangebasis.hh:824
unsigned int order() const
Polynomial order used in the local Lagrange finite-elements.
Definition lagrangebasis.hh:876
FaceDOFPermutation faceDOFPermutation_
Definition lagrangebasis.hh:888
size_type maxNodeSize() const
Get the maximal number of DOFs associated to node for any element.
Definition lagrangebasis.hh:836
It indices(const Node &node, It it) const
Definition lagrangebasis.hh:844
Dune::MultipleCodimMultipleGeomTypeMapper< GridView > mapper_
Definition lagrangebasis.hh:887
A generic MixIn class for PreBasis.
Definition leafprebasismixin.hh:36
Definition nodes.hh:214
T swap(T... args)
T to_ulong(T... args)
