Class xlifepp::LagrangeTetrahedron#

class LagrangeTetrahedron : public xlifepp::RefTetrahedron#

Inheritence diagram for xlifepp::LagrangeTetrahedron:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "4" [label="xlifepp::LagrangeStdTetrahedron< Pk >" tooltip="xlifepp::LagrangeStdTetrahedron< Pk >"] "5" [label="xlifepp::LagrangeStdTetrahedronPk" tooltip="xlifepp::LagrangeStdTetrahedronPk"] "1" [label="xlifepp::LagrangeTetrahedron" tooltip="xlifepp::LagrangeTetrahedron" fillcolor="#BFBFBF"] "3" [label="xlifepp::RefElement" tooltip="xlifepp::RefElement"] "2" [label="xlifepp::RefTetrahedron" tooltip="xlifepp::RefTetrahedron"] "4" -> "1" [dir=forward tooltip="public-inheritance"] "5" -> "1" [dir=forward tooltip="public-inheritance"] "1" -> "2" [dir=forward tooltip="public-inheritance"] "2" -> "3" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for xlifepp::LagrangeTetrahedron:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "16" [label="std::list< std::vector< PolynomialT< real_t > > >" tooltip="std::list< std::vector< PolynomialT< real_t > > >"] "19" [label="std::map< xlifepp::Quadrature *, std::vector< xlifepp::ShapeValues > >" tooltip="std::map< xlifepp::Quadrature *, std::vector< xlifepp::ShapeValues > >"] "21" [label="std::map< xlifepp::Triplet< number_t >, number_t >" tooltip="std::map< xlifepp::Triplet< number_t >, number_t >"] "17" [label="std::list< T >" tooltip="std::list< T >"] "20" [label="std::map< K, T >" tooltip="std::map< K, T >"] "6" [label="std::vector< T >" tooltip="std::vector< T >"] "7" [label="std::vector< ShapeType >" tooltip="std::vector< ShapeType >"] "5" [label="std::vector< real_t >" tooltip="std::vector< real_t >"] "9" [label="std::vector< std::vector< int_t > >" tooltip="std::vector< std::vector< int_t > >"] "8" [label="std::vector< std::vector< number_t > >" tooltip="std::vector< std::vector< number_t > >"] "10" [label="std::vector< xlifepp::GeomRefElement * >" tooltip="std::vector< xlifepp::GeomRefElement * >"] "12" [label="std::vector< xlifepp::Interpolation * >" tooltip="std::vector< xlifepp::Interpolation * >"] "18" [label="std::vector< xlifepp::PolynomialsBasisT >" tooltip="std::vector< xlifepp::PolynomialsBasisT >"] "13" [label="std::vector< xlifepp::RefDof * >" tooltip="std::vector< xlifepp::RefDof * >"] "14" [label="std::vector< xlifepp::RefElement * >" tooltip="std::vector< xlifepp::RefElement * >"] "22" [label="std::vector< xlifepp::Triplet< number_t > >" tooltip="std::vector< xlifepp::Triplet< number_t > >"] "4" [label="xlifepp::GeomRefElement" tooltip="xlifepp::GeomRefElement"] "11" [label="xlifepp::Interpolation" tooltip="xlifepp::Interpolation"] "1" [label="xlifepp::LagrangeTetrahedron" tooltip="xlifepp::LagrangeTetrahedron" fillcolor="#BFBFBF"] "15" [label="xlifepp::PolynomialsBasisT< K >" tooltip="xlifepp::PolynomialsBasisT< K >"] "3" [label="xlifepp::RefElement" tooltip="xlifepp::RefElement"] "2" [label="xlifepp::RefTetrahedron" tooltip="xlifepp::RefTetrahedron"] "16" -> "17" [dir=forward tooltip="template-instance"] "19" -> "20" [dir=forward tooltip="template-instance"] "21" -> "20" [dir=forward tooltip="template-instance"] "7" -> "6" [dir=forward tooltip="template-instance"] "5" -> "6" [dir=forward tooltip="template-instance"] "9" -> "6" [dir=forward tooltip="template-instance"] "8" -> "6" [dir=forward tooltip="template-instance"] "10" -> "6" [dir=forward tooltip="template-instance"] "12" -> "6" [dir=forward tooltip="template-instance"] "18" -> "6" [dir=forward tooltip="template-instance"] "13" -> "6" [dir=forward tooltip="template-instance"] "14" -> "6" [dir=forward tooltip="template-instance"] "22" -> "6" [dir=forward tooltip="template-instance"] "4" -> "5" [dir=forward tooltip="usage"] "4" -> "7" [dir=forward tooltip="usage"] "4" -> "8" [dir=forward tooltip="usage"] "4" -> "9" [dir=forward tooltip="usage"] "4" -> "10" [dir=forward tooltip="usage"] "11" -> "12" [dir=forward tooltip="usage"] "1" -> "2" [dir=forward tooltip="public-inheritance"] "1" -> "21" [dir=forward tooltip="usage"] "1" -> "22" [dir=forward tooltip="usage"] "15" -> "16" [dir=forward tooltip="public-inheritance"] "3" -> "4" [dir=forward tooltip="usage"] "3" -> "11" [dir=forward tooltip="usage"] "3" -> "13" [dir=forward tooltip="usage"] "3" -> "14" [dir=forward tooltip="usage"] "3" -> "8" [dir=forward tooltip="usage"] "3" -> "15" [dir=forward tooltip="usage"] "3" -> "18" [dir=forward tooltip="usage"] "3" -> "19" [dir=forward tooltip="usage"] "2" -> "3" [dir=forward tooltip="public-inheritance"] }

defines Lagrange Reference Element interpolation data on tetrahedra

Subclassed by xlifepp::LagrangeStdTetrahedron< Pk >, xlifepp::LagrangeStdTetrahedronPk

Public Functions

LagrangeTetrahedron(const Interpolation *interp_p)#

constructor by interpolation

LagrangeTetrahedron constructor for Lagrange reference elements.

virtual ~LagrangeTetrahedron()#

destructor

void buildBarycentricSideDof()#

build barycentricSideDofMap

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

internal side dofs mapping when vertices of side are permuted

internal side dofs mapping when vertices of side are permuted this function returns the number of the n-th internal dof of a face where vertices are permuted if no permutation, it returns n

Numbering of internal side dofs of Pk tetrahedron, p= k-3

1      2      2          2              2                  2                      2
p=0    | \    | \        | \            | \                | \                    | \
       3---1  5   4      5   7          5  10              5  13                  5  16
        p=1   |     \    |     \        |     \            |     \                |     \
              3---6---1  8  10   4      8  14   7          8  17  10              8  20  13
                 p=2     |         \    |  |  \   \        |  | \    \            |  | \    \
                         3---6---9---1 11  15--13   4     11  20  19   7         11  23  25  10
                               p=3      |             \    |  |     \    \        |  |     \    \
                                        3---6---9--12---1 14  18--21--16   4     14  26  28  22   7
                                                 p=4       |                 \    |  |         \    \
                                                           3---6---9--12--15---1 17  21--24--27--19   4
                                                                    p=5           |                     \
                                                                                  3---6---9--12--15--18---1
                                                                                             p=6
Map exemple for P4 tetrahedron

2 1 | \ | \ | \ | \ | \ | \ sideDofsMap(1,3,1,2)=2 | 2 \ | 1 \ sideDofsMap(2,3,1,2)=3 | | \ \ | | \ \ sideDofsMap(3,3,1,2)=1 | 3&#8212;1 \ | 2&#8212;3 \ | \ | \ 3————&#8212;1 2———–&#8212;3

standard face permuted face

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

internal side dofs mapping when vertices of side are permuted

Public Members

std::map<Triplet<number_t>, number_t> barycentricSideDofMap#

internal dof on side (face) ordered by barycentric coordinates

std::vector<Triplet<number_t>> barycentricSideDofs#

dof barycentric coordinates