Class xlifepp::subdivision::SubdivisionMesh#
-
class SubdivisionMesh#
-
Inheritence diagram for xlifepp::subdivision::SubdivisionMesh:
Collaboration diagram for xlifepp::subdivision::SubdivisionMesh:
Subclassed by xlifepp::subdivision::GeomFigureMesh< Hexahedron >, xlifepp::subdivision::GeomFigureMesh< Quadrangle >, xlifepp::subdivision::GeomFigureMesh< Tetrahedron >, xlifepp::subdivision::GeomFigureMesh< Triangle >, xlifepp::subdivision::GeomFigureMesh< T_ >
Public Functions
-
SubdivisionMesh(const number_t nbsubdiv, const number_t order, const number_t type, const number_t minVertexNum, const number_t minElementNum)#
-
main constructor
Main constructor.
-
virtual ~SubdivisionMesh()#
-
destructor
Destructor.
Free memory allocated for patch shapes taking care of duplicated pointers (see IMPORTANT NOTE in TopoGeom.hpp).
-
inline std::string boundaryDescription(const number_t num) const#
-
returns the description of boundary num, num >=1
-
inline std::string boundaryName(const number_t num) const#
-
returns the name of boundary num, num >=1
-
virtual std::vector<number_t> element(const number_t num) const = 0#
-
returns the list of all the vertices of element num, each given by its number, with num such that minElementNum_ <= num <= numberOfElements+minElementNum_-1
-
virtual std::vector<real_t> faceExtNormalVec(const number_t num, const number_t i) const = 0#
-
returns a normal vector to the face number i >= 1 of element num, with num such that minElementNum_ <= num <= numberOfElements+minElementNum_-1 The vector is not normalized and is oriented towards the exterior of the element.
-
virtual int faceOrientation(const number_t num, const number_t i) const = 0#
-
returns the orientation of the face number i >= 1 of element num, with num such that minElementNum_ <= num <= numberOfElements+minElementNum_-1.
The function:
returns 1 if the first three vertices (i,j,k) of the face define a vector ij x ik oriented towards the exterior of the element,
returns -1 otherwise.
-
void initUserAttribute(const std::vector<std::string> &attribute)#
-
initializes the user attribute of the geometrical areas of the mesh, boundaries, interfaces and subdomains, given in this order
Initializes the attribute of the areas of the mesh.
The areas are considered in the order boundary, then interface and at last subdomain. If the input data vector holds less attributes than the number of areas, the data are reused cyclically starting again from the beginning.
-
inline std::string interfaceDescription(const number_t num) const#
-
returns the description of interface num, num >=1
-
inline std::string interfaceName(const number_t num) const#
-
returns the name of interface num, num >=1
-
inline number_t minElementNumber() const#
-
returns the smallest number associated to an element among all the elements in the mesh
-
inline number_t minVertexNumber() const#
-
returns the smallest number associated to a vertex among all the vertices in the mesh
-
inline number_t numberOfMainVertices() const#
-
returns the number of vertices of order 1 in the mesh (equals numberOfVertices() if order=1)
-
number_t numberOfMainVerticesByElement() const#
-
returns the number of vertices of order 1 per element
-
virtual number_t numberOfVerticesByElement() const = 0#
-
returns the total number of vertices of each element
-
number_t numberOfVerticesIn(const topologicalArea TA, const number_t num = 0) const#
-
returns the number of vertices of any order in the mesh, belonging to an area of kind TA or belonging to any area of kind TA if num=0
Returns the number of vertices of any order in the mesh, belonging to the area num (num>=1) of kind TA or belonging to any area of kind TA if num=0.
-
number_t numberOfVerticesInside() const#
-
returns the number of the internal vertices of any order in the mesh
Returns the number of the internal vertices of any order in the mesh.
-
virtual void print(std::ostream &os) const = 0#
-
prints, on stream os, the mesh with vertices numbers
-
virtual void printall(std::ostream &os) const = 0#
-
prints, on stream os, the mesh with vertices coordinates
-
void printInfo(std::ostream &os, const bool forTeX = false) const#
-
prints, on stream os, the general informations about the mesh
Prints, on stream os, the general informations about the mesh.
-
virtual void printTeX(std::ostream &ftex, const float psi = -30, const float theta = 25, const number_t nbviews = 1, const std::string &DimProj = "4cm,orthogonal", const bool withInterface = true, const bool withElems = false) const = 0#
-
prints, on stream ftex, fig4tex instructions to draw a mesh with observation direction defined by longitude psi and latitude theta
-
std::vector<real_t> rkvertexCoord(const number_t rk) const#
-
returns the coordinates of a vertex, given its rank rk>=0 in the global list of vertices
Returns the coordinates of a vertex, given its rank rk>=0 in the global list of vertices.
-
inline std::string subdomainDescription(const number_t num) const#
-
returns the description of subdomain num, num >=1
-
inline std::string subdomainName(const number_t num) const#
-
returns the name of subdomain num, num >=1
-
inline std::string title() const#
-
returns the title of the mesh
-
std::vector<real_t> vertexCoord(const number_t num) const#
-
returns the coordinates of a vertex, given its number num, num >= minVertexNum_
Returns the coordinates of a vertex, given its number num, num >= minVertexNum_.
-
std::vector<number_t> verticesIn(const topologicalArea TA, const number_t num = 0) const#
-
returns the list of vertices of any order in the mesh, belonging to an area of kind TA or belonging to any area of kind TA if num=0 (given by their number)
Returns the list of vertices of any order in a tetrahedron mesh, belonging to the area num (num>=1) of kind TA or belonging to any area of kind TA if num=0.
Vertices are defined by their number (starting from 1).
-
std::vector<number_t> verticesInside() const#
-
returns the list of the internal vertices of any order in the mesh (given by their number)
Returns the list of vertices of any order in a tetrahedron mesh, which are not on the boundaries.
Thus, they are inside the domain. Vertices are defined by their number (starting from 1).
-
SubdivisionMesh(const number_t nbsubdiv, const number_t order, const number_t type, const number_t minVertexNum, const number_t minElementNum)#