Class xlifepp::subdivision::SurfMeshQuaCone#

class SurfMeshQuaCone : public xlifepp::subdivision::QuadrangleMesh#

Inheritence diagram for xlifepp::subdivision::SurfMeshQuaCone:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "3" [label="xlifepp::subdivision::CartesianMesh< Quadrangle >" tooltip="xlifepp::subdivision::CartesianMesh< Quadrangle >"] "4" [label="xlifepp::subdivision::GeomFigureMesh< Quadrangle >" tooltip="xlifepp::subdivision::GeomFigureMesh< Quadrangle >"] "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::QuadrangleMesh" tooltip="xlifepp::subdivision::QuadrangleMesh"] "5" [label="xlifepp::subdivision::SubdivisionMesh" tooltip="xlifepp::subdivision::SubdivisionMesh"] "1" [label="xlifepp::subdivision::SurfMeshQuaCone" tooltip="xlifepp::subdivision::SurfMeshQuaCone" 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::SurfMeshQuaCone:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "3" [label="xlifepp::subdivision::CartesianMesh< Quadrangle >" tooltip="xlifepp::subdivision::CartesianMesh< Quadrangle >"] "4" [label="xlifepp::subdivision::GeomFigureMesh< Quadrangle >" tooltip="xlifepp::subdivision::GeomFigureMesh< Quadrangle >"] "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< Quadrangle >" tooltip="std::vector< Quadrangle >"] "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::QuadrangleMesh" tooltip="xlifepp::subdivision::QuadrangleMesh"] "5" [label="xlifepp::subdivision::SubdivisionMesh" tooltip="xlifepp::subdivision::SubdivisionMesh"] "1" [label="xlifepp::subdivision::SurfMeshQuaCone" tooltip="xlifepp::subdivision::SurfMeshQuaCone" fillcolor="#BFBFBF"] "9" [label="xlifepp::subdivision::TopoGeom" tooltip="xlifepp::subdivision::TopoGeom"] "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"] "5" -> "6" [dir=forward tooltip="usage"] "5" -> "9" [dir=forward tooltip="usage"] "5" -> "17" [dir=forward tooltip="usage"] "5" -> "18" [dir=forward tooltip="usage"] "1" -> "2" [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"] }

Public Functions

SurfMeshQuaCone(const number_t nbslices = 0, const number_t nbsubdiv = 0, const number_t order = 1, const number_t type = 1, const real_t radius1 = 1., const real_t radius2 = 0.5, const Point P1 = Point(0, 0, 0), const Point P2 = Point(0, 0, 1), const GeomEndShape endShape1 = None, const GeomEndShape endShape2 = None, const number_t minVertexNum = 1, const number_t minElementNum = 1)#

main constructor

Build a mesh of quadrangles by successive subdivisions in a cone or a truncated cone.

The cylinder is a particular kind of truncated cone which has a special constructor below.

Nota: If none of the radii is null, this defines a truncated cone. If one of the radii is null, the corresponding point, P1 or P2, is the apex of the cone. But indeed, NONE of the radii should be null, because this leads to degenerated quadrangles (several points collapse to the apex of the cone) ; this brings an error during the check stage of the mesh thus obtained (wrong number of interfaces). However, one can obtain nearly a “true” cone by setting one radius as small as 1.e-15.

Parameters:
  • nbslices – number of slices of elements orthogonal to the axis of the cone (0 by default, which means that the number of slices is automatically computed ; if nbslices>0, the given value has precedence and is taken into account)

  • nbsubdiv – subdivision level (0 by default) nbsubdiv = 0 corresponds to the initial mesh. For nbsubdiv > 0, each quadrangle is subdivided into 4 quadrangles with the same orientation as the original one.

  • order – order of the quadrangles in the final mesh (1 by default) The default value is 1, which leads to a Q1 mesh, in which case each quadrangle is defined by its 4 vertices. For higher orders, the supplemental vertices correspond to the regular Lagrange mesh. Moreover, if the second argument (type) is non 0, the vertices belonging to the appropriate boundary lie on the surface of the cone.

  • type – type of the subdivision (1 by default) type equal to 0 leads to a simple (flat) subdivision of the initial mesh where new vertices are all the midpoints of the edges. type equal to 1 leads to a subdivision where the boundary vertices are computed so that they lie on the corresponding surface

  • radius1 – : radius of the basis of the cone containing P1 (1. by default)

  • radius2 – : radius of the other basis of the cone containing P2 (0.5 by default)

  • P1, P2 – : the two end points of the axis of the cone

  • endShape1 – : shape of the end surface of the cone on P1 and P2 side

  • endShape2 – : (Flat by default). The possible values are of GeomEndShape type.

  • 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)