In file tetrahedrisation/ActiveTetraTetrahedron3D.h:

class ActiveTetraTetrahedron3D : public TetraTetrahedron3D

a tetrahedron of an active 3D Tetrahedrisation

Inheritance:


Public Methods

typedef void(*UPDATEPROPERTYFUNCTION) ( ActiveTetraTetrahedron3D*, ActiveTetraTetrahedron3D*)
a function in the global scope that is used to update the data used for internal force computation
inline ActiveTetraZone3D* getZone () const
returns the zone containing the tetrahedron
inline ActiveTetra3D* getTetrahedrisation () const
get the mesh containing the vertex
inline ActiveTetraVertex3D* getVertex (const unsigned int i) const
returns a vertex of the tetrahedron
inline ActiveTetraEdge3D* getEdge (const unsigned int i) const
returns an edge of the tetrahedron
inline ActiveTetraEdge3D* getAdjacentEdge (const unsigned int i, const unsigned j) const
returns the jth edge (0
inline ActiveTetraEdge3D* getEdge (const unsigned int i, const unsigned j) const
returns the edge linking the ith and jth vertex
inline ActiveTetraEdge3D* getOppositeEdge (const unsigned int i, const unsigned j) const
returns the jth opposite edge (0
inline ActiveTetraTriangle3D* getTriangle (const unsigned int i) const
returns a triangle of the tetrahedron
inline ActiveTetraTetrahedron3D* getNeighboringTetrahedron (const unsigned int i) const
returns a neighboring tetrahedron of the tetrahedron
inline void* getForceData () const
returns the pointer where some data are stored to compute the internal force
double* getBarycentricCoordinatesArray (unsigned int i)
returns the array that store the barycentric coordinates of the projection of each vertex at rest position in the opposite triangle
void computeBarycentricCoordinatesArray ()
computes the array that store the barycentric coordinates of the projection of each vertex at rest Position in the opposite triangle
inline void setForceData (void *p)
sets the pointer where some data are stored to compute the internal force
static void setPropertyFunction (UPDATEPROPERTYFUNCTION fn)
set the property function called by setProperty
double getShapeIndex () const
returns the shape quality index of a tetrahedron (1 for regular tetrahedron
inline double getLambda () const
return the first Lamé coefficient
inline double getMu () const
return the second Lamé coefficient
void setLambda (const double _l)
set the first Lamé coefficient
void setMu (const double _m)
set the second Lamé coefficient
void setLambdaLongitudinal (const double _l)
set the first Lamé coefficient in the transverse direction
void setMuLongitudinal (const double _m)
set the second Lamé coefficient in the transverse direction
inline double getLambdaLongitudinal () const
return the first Lamé coefficient
inline double getMuLongitudinal () const
return the second Lamé coefficient
void setAnisotropicDirection (const Vec3 _d)
set the anisotropic direction for the elastic force
inline Vec3 getAnisotropicDirection () const
set the anisotropic direction for the elastic force
inline bool isUsingAnisotropy ()
to know is tetra is using anisotropy
void usingAnisotropy (bool _b)
to choose if tetra use anisotropy or not
inline double getVolume () const
returns the current signed volume of the tetrahedron
inline double getRestVolume () const
return the tetrahedron volume at its rest position
void storeDotProductRestEdge ()
store the kij scalar for each tetrahedron edge
inline double getDotProductRestEdge (const unsigned int i) const
get the kij scalar for a tetrahedron edge i
void addElasticTensors ()
add in adjacent vertices and edges the elastic tensors of this tetrahedron
void substractElasticTensors () const
substract in adjacent vertices and edges the elastic tensors of this tetrahedron
Matrix3x3 getLocalBase ()
compute local base (each column is a base vector)

Public

constructor
ActiveTetraTetrahedron3D (Tetra3D *mesh, ActiveTetraVertex3D *v0, ActiveTetraVertex3D *v1, ActiveTetraVertex3D *v2, ActiveTetraVertex3D *v3, bool orientation = true)
3D Active Tetrahedron constructor
destructor
virtual ~ActiveTetraTetrahedron3D ()
delete tetrahedron

Protected Fields

Matrix3x3 elasticTensors [13]
coefficients
double lambda
first Lamé coefficient
double mu
second Lamé coefficient
bool useAnisotropy
whether we are using anisotropic elasticity
double lambdaLongitudinal
the first Lamé coefficient in the anisotropic direction
double muLongitudinal
the second Lamé coefficient in the anisotropic direction
Vec3 anisotropicDirection
eventually use anisotropic direction for the elastic force
double restVolume
volume of the tetrahedron at its rest position
double barycentricCoordinates [4][3]
for each vertex the barycentric coordinates of its projection on the opposite triangle
double dotProductRestEdge [6]
the Kij scalar for non linear elasticity

Protected Methods

virtual void setProperties (TetraTetrahedron3D* t)
set Tetrahedron properties
virtual void removeFromMesh ()
remove tetrahedron from mesh
void initTetrahedron ()
initialize Lamé Coefficient

Inherited from TetraTetrahedron3D:

Public Methods

void _do_set_vertices(TetraVertex3D* v0, TetraVertex3D* v1, TetraVertex3D* v2, TetraVertex3D* v3, bool orientation=true)
void setZone(TetraZone3D *z, bool force=true)
inline bool isReal() const
void setVirtual()
inline unsigned int getRef() const
void setVertex(const unsigned int i, TetraVertex3D* v)
unsigned int getAdjacentEdgeIndex(const unsigned int i, const unsigned j) const
unsigned int getEdgeIndex(const unsigned int i, const unsigned j) const
static void getComplementVertices(const unsigned int i, const unsigned int j, unsigned int &k, unsigned int &l)
static void getEdgeVertexIndex(const unsigned int i, unsigned int &v0, unsigned int &v1)
inline int neighborIndex(const TetraTetrahedron3D *t) const
int triangleIndex(const TetraTriangle3D *tr) const
int vertexIndex(const TetraVertex3D *v) const
int edgeIndex(const TetraEdge3D *e) const
void setRef(unsigned int r)

Protected Fields

Tetra3D* tetrahedrisation
bool empty
std::list <TetraTetrahedron3D*> * dividedTetra
unsigned int ref
TetraVertex3D* vertex[4]
TetraEdge3D* edge[6]
TetraTriangle3D* triangle[4]
TetraTetrahedron3D* neighbor[4]
TetraZone3D* zone

Protected Methods

void setEdgeTriangleRelationShip()
void setVertexTetrahedronRelationShip()

Private


Documentation

a tetrahedron of an active 3D Tetrahedrisation
typedef void (*UPDATEPROPERTYFUNCTION)( ActiveTetraTetrahedron3D*, ActiveTetraTetrahedron3D*)
a function in the global scope that is used to update the data used for internal force computation. The first parameter is a former tetrahedra, the second parameter is the new tetrahedron

Matrix3x3 elasticTensors[13]
coefficients

double lambda
first Lamé coefficient

double mu
second Lamé coefficient

bool useAnisotropy
whether we are using anisotropic elasticity

double lambdaLongitudinal
the first Lamé coefficient in the anisotropic direction

double muLongitudinal
the second Lamé coefficient in the anisotropic direction

Vec3 anisotropicDirection
eventually use anisotropic direction for the elastic force

double restVolume
volume of the tetrahedron at its rest position

double barycentricCoordinates[4][3]
for each vertex the barycentric coordinates of its projection on the opposite triangle

double dotProductRestEdge[6]
the Kij scalar for non linear elasticity

virtual void setProperties(TetraTetrahedron3D* t)
set Tetrahedron properties

virtual void removeFromMesh()
remove tetrahedron from mesh

constructor

ActiveTetraTetrahedron3D(Tetra3D *mesh, ActiveTetraVertex3D *v0, ActiveTetraVertex3D *v1, ActiveTetraVertex3D *v2, ActiveTetraVertex3D *v3, bool orientation = true)
3D Active Tetrahedron constructor
Parameters:
mesh - tetrahedrisation containing the tetrahedron
empty - if the tetrahedron is real or virtual
v0 - , v1, v2, v3 the 4 vertices in the tetrahedron

destructor

virtual ~ActiveTetraTetrahedron3D()
delete tetrahedron

void initTetrahedron()
initialize Lamé Coefficient

inline ActiveTetraZone3D* getZone() const
returns the zone containing the tetrahedron

inline ActiveTetra3D* getTetrahedrisation() const
get the mesh containing the vertex

inline ActiveTetraVertex3D* getVertex(const unsigned int i) const
returns a vertex of the tetrahedron

inline ActiveTetraEdge3D* getEdge(const unsigned int i) const
returns an edge of the tetrahedron

inline ActiveTetraEdge3D* getAdjacentEdge(const unsigned int i, const unsigned j) const
returns the jth edge (0

inline ActiveTetraEdge3D* getEdge(const unsigned int i, const unsigned j) const
returns the edge linking the ith and jth vertex

inline ActiveTetraEdge3D* getOppositeEdge(const unsigned int i, const unsigned j) const
returns the jth opposite edge (0

inline ActiveTetraTriangle3D* getTriangle(const unsigned int i) const
returns a triangle of the tetrahedron

inline ActiveTetraTetrahedron3D* getNeighboringTetrahedron(const unsigned int i) const
returns a neighboring tetrahedron of the tetrahedron

inline void* getForceData() const
returns the pointer where some data are stored to compute the internal force

double* getBarycentricCoordinatesArray(unsigned int i)
returns the array that store the barycentric coordinates of the projection of each vertex at rest position in the opposite triangle

void computeBarycentricCoordinatesArray()
computes the array that store the barycentric coordinates of the projection of each vertex at rest Position in the opposite triangle

inline void setForceData(void *p)
sets the pointer where some data are stored to compute the internal force

static void setPropertyFunction(UPDATEPROPERTYFUNCTION fn)
set the property function called by setProperty

double getShapeIndex() const
returns the shape quality index of a tetrahedron (1 for regular tetrahedron

inline double getLambda() const
return the first Lamé coefficient

inline double getMu() const
return the second Lamé coefficient

void setLambda(const double _l)
set the first Lamé coefficient

void setMu(const double _m)
set the second Lamé coefficient

void setLambdaLongitudinal(const double _l)
set the first Lamé coefficient in the transverse direction

void setMuLongitudinal(const double _m)
set the second Lamé coefficient in the transverse direction

inline double getLambdaLongitudinal() const
return the first Lamé coefficient

inline double getMuLongitudinal() const
return the second Lamé coefficient

void setAnisotropicDirection(const Vec3 _d)
set the anisotropic direction for the elastic force

inline Vec3 getAnisotropicDirection() const
set the anisotropic direction for the elastic force

inline bool isUsingAnisotropy()
to know is tetra is using anisotropy

void usingAnisotropy(bool _b)
to choose if tetra use anisotropy or not

inline double getVolume() const
returns the current signed volume of the tetrahedron

inline double getRestVolume() const
return the tetrahedron volume at its rest position

void storeDotProductRestEdge()
store the kij scalar for each tetrahedron edge

inline double getDotProductRestEdge(const unsigned int i) const
get the kij scalar for a tetrahedron edge i

void addElasticTensors()
add in adjacent vertices and edges the elastic tensors of this tetrahedron

void substractElasticTensors() const
substract in adjacent vertices and edges the elastic tensors of this tetrahedron

Matrix3x3 getLocalBase()
compute local base (each column is a base vector)


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de