Class xlifepp::GeomRefElement#

class GeomRefElement#

Inheritence diagram for xlifepp::GeomRefElement:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "1" [label="xlifepp::GeomRefElement" tooltip="xlifepp::GeomRefElement" fillcolor="#BFBFBF"] "2" [label="xlifepp::GeomRefHexahedron" tooltip="xlifepp::GeomRefHexahedron"] "3" [label="xlifepp::GeomRefPoint" tooltip="xlifepp::GeomRefPoint"] "4" [label="xlifepp::GeomRefPrism" tooltip="xlifepp::GeomRefPrism"] "5" [label="xlifepp::GeomRefPyramid" tooltip="xlifepp::GeomRefPyramid"] "6" [label="xlifepp::GeomRefQuadrangle" tooltip="xlifepp::GeomRefQuadrangle"] "7" [label="xlifepp::GeomRefSegment" tooltip="xlifepp::GeomRefSegment"] "8" [label="xlifepp::GeomRefTetrahedron" tooltip="xlifepp::GeomRefTetrahedron"] "9" [label="xlifepp::GeomRefTriangle" tooltip="xlifepp::GeomRefTriangle"] "2" -> "1" [dir=forward tooltip="public-inheritance"] "3" -> "1" [dir=forward tooltip="public-inheritance"] "4" -> "1" [dir=forward tooltip="public-inheritance"] "5" -> "1" [dir=forward tooltip="public-inheritance"] "6" -> "1" [dir=forward tooltip="public-inheritance"] "7" -> "1" [dir=forward tooltip="public-inheritance"] "8" -> "1" [dir=forward tooltip="public-inheritance"] "9" -> "1" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for xlifepp::GeomRefElement:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "3" [label="std::vector< T >" tooltip="std::vector< T >"] "4" [label="std::vector< ShapeType >" tooltip="std::vector< ShapeType >"] "2" [label="std::vector< real_t >" tooltip="std::vector< real_t >"] "6" [label="std::vector< std::vector< int_t > >" tooltip="std::vector< std::vector< int_t > >"] "5" [label="std::vector< std::vector< number_t > >" tooltip="std::vector< std::vector< number_t > >"] "7" [label="std::vector< xlifepp::GeomRefElement * >" tooltip="std::vector< xlifepp::GeomRefElement * >"] "1" [label="xlifepp::GeomRefElement" tooltip="xlifepp::GeomRefElement" fillcolor="#BFBFBF"] "4" -> "3" [dir=forward tooltip="template-instance"] "2" -> "3" [dir=forward tooltip="template-instance"] "6" -> "3" [dir=forward tooltip="template-instance"] "5" -> "3" [dir=forward tooltip="template-instance"] "7" -> "3" [dir=forward tooltip="template-instance"] "1" -> "2" [dir=forward tooltip="usage"] "1" -> "4" [dir=forward tooltip="usage"] "1" -> "5" [dir=forward tooltip="usage"] "1" -> "6" [dir=forward tooltip="usage"] "1" -> "7" [dir=forward tooltip="usage"] }

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