Class xlifepp::subdivision::VolMeshHexCube#

class VolMeshHexCube : public xlifepp::subdivision::HexahedronMesh#

Inheritence diagram for xlifepp::subdivision::VolMeshHexCube:

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

Collaboration diagram for xlifepp::subdivision::VolMeshHexCube:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "3" [label="xlifepp::subdivision::CartesianMesh< Hexahedron >" tooltip="xlifepp::subdivision::CartesianMesh< Hexahedron >"] "4" [label="xlifepp::subdivision::GeomFigureMesh< Hexahedron >" tooltip="xlifepp::subdivision::GeomFigureMesh< Hexahedron >"] "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 >"] "20" [label="std::vector< Hexahedron >" tooltip="std::vector< Hexahedron >"] "22" [label="std::vector< T_ >" tooltip="std::vector< T_ >"] "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"] "23" [label="xlifepp::subdivision::CartesianMesh< T_ >" tooltip="xlifepp::subdivision::CartesianMesh< T_ >"] "21" [label="xlifepp::subdivision::GeomFigureMesh< T_ >" tooltip="xlifepp::subdivision::GeomFigureMesh< T_ >"] "24" [label="xlifepp::subdivision::GeomFigureMesh< T_ >" tooltip="xlifepp::subdivision::GeomFigureMesh< T_ >"] "2" [label="xlifepp::subdivision::HexahedronMesh" tooltip="xlifepp::subdivision::HexahedronMesh"] "5" [label="xlifepp::subdivision::SubdivisionMesh" tooltip="xlifepp::subdivision::SubdivisionMesh"] "9" [label="xlifepp::subdivision::TopoGeom" tooltip="xlifepp::subdivision::TopoGeom"] "1" [label="xlifepp::subdivision::VolMeshHexCube" tooltip="xlifepp::subdivision::VolMeshHexCube" fillcolor="#BFBFBF"] "3" -> "4" [dir=forward tooltip="public-inheritance"] "3" -> "23" [dir=forward tooltip="template-instance"] "4" -> "5" [dir=forward tooltip="public-inheritance"] "4" -> "20" [dir=forward tooltip="usage"] "4" -> "21" [dir=forward tooltip="template-instance"] "7" -> "8" [dir=forward tooltip="template-instance"] "6" -> "7" [dir=forward tooltip="public-inheritance"] "20" -> "11" [dir=forward tooltip="template-instance"] "22" -> "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"] "23" -> "24" [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"] "2" -> "3" [dir=forward tooltip="public-inheritance"] "2" -> "10" [dir=forward tooltip="usage"] "5" -> "6" [dir=forward tooltip="usage"] "5" -> "9" [dir=forward tooltip="usage"] "5" -> "17" [dir=forward tooltip="usage"] "5" -> "18" [dir=forward tooltip="usage"] "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

VolMeshHexCube(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 hexahedrons 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 1 hexahedron instead of 8 when this big cube is the juxtatposition of 8 small cubes, which reduces the number of hexahedrons 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 hexahedron is subdivided into 8 hexahedrons with the same orientation as the original one.

  • order – order of the hexahedra in the final mesh (1 by default) The default value is 1, which leads to a Q1 mesh, in which case each hexahedron is defined by its 8 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)