Class xlifepp::GeomRefElement#

class GeomRefElement#

Subclassed by xlifepp::GeomRefHexahedron, xlifepp::GeomRefPoint, xlifepp::GeomRefPrism, xlifepp::GeomRefPyramid, xlifepp::GeomRefQuadrangle, xlifepp::GeomRefSegment, xlifepp::GeomRefTetrahedron, xlifepp::GeomRefTriangle

Public Functions

GeomRefElement()#

default constructor

GeomRefElement(ShapeType, const dimen_t, const real_t, const real_t, const number_t, const number_t, const number_t)#

constructor for any dimension elements, with number of vertices, edges and faces

GeomRefElement(ShapeType, const real_t m = 1.0, const real_t c = 0.5)#

constructor for 1D linear elements

constructor for 1D elements

GeomRefElement(ShapeType, const real_t, const real_t, const number_t)#

constructor for 2D polygonal elements with number of vertices

constructor for 2D elements, with number of vertices

GeomRefElement(ShapeType, const real_t, const real_t, const number_t, const number_t)#

constructor for 3D polyhedral elements with number of vertices and number of edges

virtual ~GeomRefElement()#

destructor

inline const std::vector<real_t> &center() const#

returns centroid as point

inline std::vector<real_t>::const_iterator centroid() const#

returns centroid as iterator

virtual bool contains(std::vector<real_t> &p, real_t tol = theTolerance) const#

test if a point belongs to current element

inline dimen_t dim() const#

returns element dimension

inline bool isSimplex() const#

returns true for a segment, triangle and tetrahedron

inline real_t measure() const#

returns element length, area or volume

virtual real_t measure(const dimen_t dim, const number_t sideNum = 0) const = 0#

returns edge length or face area for any geometric reference element

inline number_t nbSideOfSides() const#

returns element number of side of side elements

inline number_t nbSides() const#

returns element number of side elements

number_t nbVertices(const number_t s = 0) const#

returns number of element vertices or number of vertices on a side (s = 1, …)

returns number of vertices

void noSuchFunction(const string_t &s) const#

function not yet implemented in a child class

function not yet implemented for a type of element

void noSuchSide(const number_t) const#

side number too large in a child class

face number too large

void noSuchSide(const number_t, const number_t, const number_t = 0, const number_t = 0) const#

vertex numbers not found on an side or a side of side

vertex numbers too large

void noSuchSideOfSide(const number_t) const#

side of side number too large in a child class

edge number too large

virtual std::vector<real_t> projection(const std::vector<real_t>&, real_t&) const#

projection of a point onto ref element

void rotateVertices(const number_t newFirst, std::vector<number_t>&) const#

circular permutation of vertices such that new_first is first

circular permutation of vertices such that vertex newFirst is first new vertex

string_t shape(const number_t s = 0) const#

returns element shape (s = 0 ) or element side (s > 0) shape as a string

returns shape of element as a string

ShapeType shapeType(const number_t s = 0) const#

returns shape of element or shape of element side as a number (s = 1, …)

returns shape of element

int_t sideOfSideNumber(const number_t i, const number_t s) const#

returns local number of i-th edge ( i = 1,2, …) on face number s (s = 1,2,…)

returns local number of -i-th side of side ( i = 1,2, …) on side number sideNum (sideNum = 1,2,…)

inline const std::vector<std::vector<int_t>> &sideOfSideNumbers() const#

returns sideOfSideNumbers

inline const std::vector<int_t> &sideOfSideNumbers(const number_t s) const#

returns local numbers of edges on face number s (s = 1,2,…)

number_t sideOfSideVertexNumber(const number_t v, const number_t ss) const#

returns local number of v-th vertex ( i = 1,2, …) on side of side number ss (ss = 1,2,…)

returns local number of -i-th vertex ( i = 1,2, …) on side of side number sideOfSideNum (sideOfSideNum = 1,2,…)

inline const std::vector<std::vector<number_t>> &sideOfSideVertexNumbers() const#

returns vertex numbers of side of sides

inline std::vector<ShapeType> sideShapeTypes()#

returns shape of sides

std::vector<real_t> sideToElt(number_t, std::vector<real_t>::const_iterator, const std::vector<number_t> &perm = std::vector<number_t>()) const#

return coordinates of a point on side defined in local coordinates

number_t sideVertexNumber(const number_t v, const number_t s) const#

returns local number of v-th vertex ( i = 1,2, …) on side number s (s = 1,2,…)

returns local number of -i-th vertex ( i = 1,2, …) on side number sideNum (sideNum = 1,2,…) of dimension d

inline const std::vector<std::vector<number_t>> &sideVertexNumbers() const#

returns vertex numbers of sides

inline virtual number_t sideWithVertices(const number_t, const number_t) const#

returns local number of edge bearing vertices with local numbers v1 and v2

inline virtual number_t sideWithVertices(const number_t, const number_t, const number_t, const number_t = 0) const#

returns local number of face bearing vertices with local numbers v1, v2 and v3

inline virtual std::vector<number_t> simplexNodes() const#

node numbers defining first simplex of ref element

std::vector<real_t>::const_iterator vertex(const number_t v) const#

returns coordinates of v-th vertex as a stl-vector ( vNum = 1,2, …)

returns coordinates of vNum-th vertex as a std::vector ( vNum = 1,2, …)

virtual number_t vertexOppositeSide(const number_t sideNum) const = 0#

returns local number of a vertex opposite to the side sideNum

inline std::vector<real_t>::const_iterator vertices() const#

returns vertices

Public Static Functions

static void clearGlobalVector()#

delete all GeomRefElement objects

static void printAllGeomRefElements(std::ostream&)#

print the list of GeomRefElement objects in memory

Public Static Attributes

static std::vector<GeomRefElement*> theGeomRefElements#

vector carrying all run time GeomRefElements

list of pointers of all geometric reference elements

Friends

friend std::ostream &operator<<(std::ostream&, const GeomRefElement&)#

prints GeomRefElement object to ostream

print operator