Class xlifepp::subdivision::VolMeshTetCube#

class VolMeshTetCube : public xlifepp::subdivision::TetrahedronMesh#

Inheritence diagram for xlifepp::subdivision::VolMeshTetCube:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "4" [label="xlifepp::subdivision::GeomFigureMesh< Tetrahedron >" tooltip="xlifepp::subdivision::GeomFigureMesh< Tetrahedron >"] "3" [label="xlifepp::subdivision::SimplexMesh< Tetrahedron >" tooltip="xlifepp::subdivision::SimplexMesh< Tetrahedron >"] "6" [label="xlifepp::subdivision::GeomFigureMesh< T_ >" tooltip="xlifepp::subdivision::GeomFigureMesh< T_ >"] "8" [label="xlifepp::subdivision::GeomFigureMesh< T_ >" tooltip="xlifepp::subdivision::GeomFigureMesh< T_ >"] "7" [label="xlifepp::subdivision::SimplexMesh< T_ >" tooltip="xlifepp::subdivision::SimplexMesh< T_ >"] "5" [label="xlifepp::subdivision::SubdivisionMesh" tooltip="xlifepp::subdivision::SubdivisionMesh"] "2" [label="xlifepp::subdivision::TetrahedronMesh" tooltip="xlifepp::subdivision::TetrahedronMesh"] "1" [label="xlifepp::subdivision::VolMeshTetCube" tooltip="xlifepp::subdivision::VolMeshTetCube" fillcolor="#BFBFBF"] "4" -> "5" [dir=forward tooltip="public-inheritance"] "4" -> "6" [dir=forward tooltip="template-instance"] "3" -> "4" [dir=forward tooltip="public-inheritance"] "3" -> "7" [dir=forward tooltip="template-instance"] "6" -> "5" [dir=forward tooltip="public-inheritance"] "8" -> "5" [dir=forward tooltip="public-inheritance"] "7" -> "8" [dir=forward tooltip="public-inheritance"] "2" -> "3" [dir=forward tooltip="public-inheritance"] "1" -> "2" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for xlifepp::subdivision::VolMeshTetCube:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "4" [label="xlifepp::subdivision::GeomFigureMesh< Tetrahedron >" tooltip="xlifepp::subdivision::GeomFigureMesh< Tetrahedron >"] "3" [label="xlifepp::subdivision::SimplexMesh< Tetrahedron >" tooltip="xlifepp::subdivision::SimplexMesh< Tetrahedron >"] "7" [label="std::basic_string< char >" tooltip="std::basic_string< char >"] "8" [label="std::basic_string< Char >" tooltip="std::basic_string< Char >"] "6" [label="std::string" tooltip="std::string"] "11" [label="std::vector< T >" tooltip="std::vector< T >"] "22" [label="std::vector< T_ >" tooltip="std::vector< T_ >"] "20" [label="std::vector< Tetrahedron >" tooltip="std::vector< Tetrahedron >"] "14" [label="std::vector< number_t >" tooltip="std::vector< number_t >"] "19" [label="std::vector< real_t >" tooltip="std::vector< real_t >"] "12" [label="std::vector< refnum_t >" tooltip="std::vector< refnum_t >"] "16" [label="std::vector< std::pair< xlifepp::subdivision::PatchGeometry *, refnum_t > >" tooltip="std::vector< std::pair< xlifepp::subdivision::PatchGeometry *, refnum_t > >"] "13" [label="std::vector< std::string >" tooltip="std::vector< std::string >"] "10" [label="std::vector< std::vector< number_t > >" tooltip="std::vector< std::vector< number_t > >"] "15" [label="std::vector< xlifepp::subdivision::PatchGeometry * >" tooltip="std::vector< xlifepp::subdivision::PatchGeometry * >"] "17" [label="std::vector< xlifepp::subdivision::Vertex >" tooltip="std::vector< xlifepp::subdivision::Vertex >"] "18" [label="xlifepp::Point" tooltip="xlifepp::Point"] "21" [label="xlifepp::subdivision::GeomFigureMesh< T_ >" tooltip="xlifepp::subdivision::GeomFigureMesh< T_ >"] "24" [label="xlifepp::subdivision::GeomFigureMesh< T_ >" tooltip="xlifepp::subdivision::GeomFigureMesh< T_ >"] "23" [label="xlifepp::subdivision::SimplexMesh< T_ >" tooltip="xlifepp::subdivision::SimplexMesh< T_ >"] "5" [label="xlifepp::subdivision::SubdivisionMesh" tooltip="xlifepp::subdivision::SubdivisionMesh"] "2" [label="xlifepp::subdivision::TetrahedronMesh" tooltip="xlifepp::subdivision::TetrahedronMesh"] "9" [label="xlifepp::subdivision::TopoGeom" tooltip="xlifepp::subdivision::TopoGeom"] "1" [label="xlifepp::subdivision::VolMeshTetCube" tooltip="xlifepp::subdivision::VolMeshTetCube" fillcolor="#BFBFBF"] "4" -> "5" [dir=forward tooltip="public-inheritance"] "4" -> "20" [dir=forward tooltip="usage"] "4" -> "21" [dir=forward tooltip="template-instance"] "3" -> "4" [dir=forward tooltip="public-inheritance"] "3" -> "23" [dir=forward tooltip="template-instance"] "7" -> "8" [dir=forward tooltip="template-instance"] "6" -> "7" [dir=forward tooltip="public-inheritance"] "22" -> "11" [dir=forward tooltip="template-instance"] "20" -> "11" [dir=forward tooltip="template-instance"] "14" -> "11" [dir=forward tooltip="template-instance"] "19" -> "11" [dir=forward tooltip="template-instance"] "12" -> "11" [dir=forward tooltip="template-instance"] "16" -> "11" [dir=forward tooltip="template-instance"] "13" -> "11" [dir=forward tooltip="template-instance"] "10" -> "11" [dir=forward tooltip="template-instance"] "15" -> "11" [dir=forward tooltip="template-instance"] "17" -> "11" [dir=forward tooltip="template-instance"] "18" -> "19" [dir=forward tooltip="public-inheritance"] "21" -> "5" [dir=forward tooltip="public-inheritance"] "21" -> "22" [dir=forward tooltip="usage"] "24" -> "5" [dir=forward tooltip="public-inheritance"] "24" -> "22" [dir=forward tooltip="usage"] "23" -> "24" [dir=forward tooltip="public-inheritance"] "5" -> "6" [dir=forward tooltip="usage"] "5" -> "9" [dir=forward tooltip="usage"] "5" -> "17" [dir=forward tooltip="usage"] "5" -> "18" [dir=forward tooltip="usage"] "2" -> "3" [dir=forward tooltip="public-inheritance"] "9" -> "10" [dir=forward tooltip="usage"] "9" -> "12" [dir=forward tooltip="usage"] "9" -> "13" [dir=forward tooltip="usage"] "9" -> "14" [dir=forward tooltip="usage"] "9" -> "15" [dir=forward tooltip="usage"] "9" -> "16" [dir=forward tooltip="usage"] "1" -> "2" [dir=forward tooltip="public-inheritance"] }

Public Functions

VolMeshTetCube(const std::vector<std::pair<real_t, dimen_t>> &rots, const int nboctants, const number_t nbsubdiv = 0, const number_t order = 1, const real_t edgeLength = 1., const Point Center = Point(0, 0, 0), const number_t minVertexNum = 1, const number_t minElementNum = 1)#

main constructor

Build a mesh of tetrahedrons by successive subdivisions.

Parameters:
  • rots – rotations to be applied to the cube to get its final position. Each rotation, if any, is defined by an angle in degrees and the number of the absolute axis (1, 2 or 3) around which the rotation is made. Each rotation is applied in turn to the cube starting from the canonical initial position where the cube is centered at the origin and its edges are parallel to the axes.

  • nboctants – number of octants to be filled nboctants may take a value in [1, 8]. For the big cube, the initial mesh may consist of 5 tetrahedrons instead of 40 when this big cube is the juxtatposition of 8 small cubes, which reduces the number of tetrahedrons of the final mesh by a factor 8. In order to activate this behaviour, nboctants must take the value -8.

  • nbsubdiv – subdivision level (0 by default) nbsubdiv = 0 corresponds to the initial mesh. For nbsubdiv > 0, each tetrahedron is subdivided into 8 tetrahedrons with the same orientation as the original one: if the first tetrahedron is (1,2,3,4), the vectors 12x13, 41x43, 43x42 and 42x41 define the exterior normals to the faces.

  • order – order of the tetrahedra in the final mesh (1 by default) The default value is 1, which leads to a P1 mesh, in which case each tetrahedron is defined by its 4 vertices. For higher orders, the supplemental vertices correspond to the regular Lagrange mesh.

  • edgeLength – edge length of the cube (1. by default)

  • Center – center of the cube ((0,0,0) by default)

  • minVertexNum – minimum number associated to the vertices of the mesh (1 by default)

  • minElementNum – minimum number associated to the elements of the mesh (1 by default)