Class xlifepp::subdivision::GeomFigure#

class GeomFigure#

Subclassed by xlifepp::subdivision::CartesianFig< Hexahedron >, xlifepp::subdivision::CartesianFig< Quadrangle >, xlifepp::subdivision::Simplex< Tetrahedron >, xlifepp::subdivision::Simplex< Triangle >, xlifepp::subdivision::CartesianFig< T_ >, xlifepp::subdivision::Simplex< T_ >

Public Functions

inline GeomFigure(const number_t num, const number_t nelem, const number_t bdSideNum)#

constructor by number, number of vertices (initial size of vector) and number of boundary side if it lies on a curved patch

inline virtual ~GeomFigure()#

destructor

inline unsigned short bdSideOnCP() const#

returns the number of the side of the figure lying on a boundary curved patch

std::vector<real_t> extNormVec(const number_t i, const std::vector<Vertex> &listV) const#

returns a normal vector to the face number i >= 1 The vector is not normalized and is oriented towards the exterior of the element.

inline number_t number() const#

returns figure number

virtual number_t numberOfEdgesinFig() const = 0#

returns the number of edges of the figure

virtual number_t numberOfO1Vertices() const = 0#

returns the number of main vertices (of order 1) of the figure

inline number_t numberOfVertices() const#

returns the number of all the vertices of the figure

void print(std::ostream &os) const#

prints, on stream os, the definition of an element

inline number_t rankOfVertex(const number_t i) const#

returns rank of vertex number i in the general list of vertices of class SubdivisionMesh, 1 <= i <= numberOfVertices()

inline std::vector<number_t> rankOfVertices() const#

returns the list of all the vertices (given by their rank in the general list of vertices of class SubdivisionMesh)

std::vector<number_t> rkOfHOVeOnEdge(const number_t Order, const number_t i) const#

returns the high order vertices (given by their rank) of edge number i >= 1

Access function returning the high order vertices (given by their rank) of edge number i >= 1 The order is not stored in this class, so it needs to be passed by argument; it should be the correct one, otherwise the result is false.

virtual std::vector<number_t> rkOfHOVeOnFace(const number_t Order, const number_t i) const = 0#

returns the high order vertices (given by their rank) of face number i >= 1

Access function returning the high order vertices (given by their rank) of face number i >= 1 The order is not stored in this class, so it needs to be passed by argument; it should be the correct one, otherwise the result is false.

For the triangle and the quadrangle, the face is the element itself and the input number i should be equal to 1.

pair_nn rkOfO1VeOnEdge(const number_t i) const#

returns edge number i >= 1 (given by rank of order 1 vertices) called in createHOeV

Access function returning the edge number i, i in {1,…nb_edges_}.

The edge is defined by the rank of the vertices of order 1 in the vertex list.

std::vector<number_t> rkOfO1VeOnFace(const number_t i) const#

returns face number i >= 1 (given by rank of order 1 vertices) called in createHOfV

Access function returning the face number i, i in {1,…nb_faces_}.

The face is defined by the rank of the vertices of order 1 in the vertex list.