Class xlifepp::NedelecEdgeFirstTetrahedronPk#

class NedelecEdgeFirstTetrahedronPk : public xlifepp::NedelecEdgeTetrahedron#

Nedelec edge first family of any order k on tetrahedron t (NE1k) space Vk : P^3_(k-1) + Sk with Sk={p in Phk^3, x.p=0}, Phk homogeneous polynomials of degree k, k(k+2)(k+3)/2 dofs edge dofs : v-> int_e v.t q, q in P_(k-1)[e] k dofs by edge e face dofs (k>1) : v-> int_f v.q, q in {P_(k-2)[f]^3, q.n=0} k(k-1) dofs by face tetrahedron dofs (k>2): v-> int_t v.q, q in P_(k-3)[t]^3 k(k-1)(k-2)/2 dofs.

Public Functions

NedelecEdgeFirstTetrahedronPk(const Interpolation *int_p)#

Nedelec edge first family of order k on tetrahedron (NE1k)

virtual void computeShapeFunctions()#

compute shape functions as polynomials

compute shape functions as polynomials using general algorithm

virtual void computeShapeValues(std::vector<real_t>::const_iterator it_pt, ShapeValues &shv, const bool der1 = true, const bool der2 = false) const#

compute shape values at a point

virtual Value evalFaceDof(const FeDof &dof, const GeomElement &selt, const Function &f, const Function &gradf, const Function &grad2f) const#

specific eval face dof function

virtual void interpolationData()#

defines reference element interpolation data

interp defines Reference Element interpolation data

void pointCoordinates()#

builds virtual coordinates of moment dofs

virtual void rotateDofs(const std::vector<number_t>&, ShapeValues &shv, bool der1 = false, bool der2 = false) const#

rotation of face dofs to ensure matching of dofs on shared face

virtual number_t sideDofsMap(const number_t &n, const number_t &i, const number_t &j, const number_t &k = 0) const#

face dofs mapping

virtual void sideNumbering()#

local numbering on faces (side)

virtual number_t sideofsideDofsMap(const number_t &n, const number_t &i, const number_t &j) const#

edge dof mapping

void sideOfSideNumbering()#

local numbering on edges (side of side)