Geophysical Inversion and Modelling Library
v1.4.3
|
Public Member Functions | |
MeshEntity () | |
virtual | ~MeshEntity () |
virtual uint | dim () const |
virtual uint | rtti () const |
virtual uint | parentType () const |
virtual void | setNodes (const std::vector< Node * > &nodes) |
const std::vector< Node * > & | nodes () const |
Node & | node (uint i) |
Node & | node (uint i) const |
uint | nodeCount () const |
Shape & | shape () |
Shape & | shape () const |
Shape * | pShape () |
RVector3 | rst (uint i) const |
RVector3 | center () const |
double | size () const |
virtual double | attribute () const |
IndexArray | ids () const |
virtual std::vector< PolynomialFunction< double > > | createShapeFunctions () const |
virtual RVector | N (const RVector3 &rst) const |
virtual void | N (const RVector3 &rst, RVector &n) const |
virtual RVector | dNdL (const RVector3 &rst, uint i) const |
virtual RMatrix | dNdL (const RVector3 &rst) const |
double | pot (const RVector3 &p, const RVector &u) const |
RVector3 | vec (const RVector3 &p, const R3Vector &v) const |
RVector3 | grad (const RVector3 &p, const RVector &u) const |
void | setUxCache (const RMatrix &mat) const |
const RMatrix & | uxCache () const |
ElementMatrix< double > & | uCache () |
ElementMatrix< double > & | gradUCache () |
void | changed () |
void | addSecondaryNode (Node *n) |
void | delSecondaryNode (Node *n) |
const std::vector< Node * > & | secondaryNodes () const |
const std::vector< Node * > | allNodes () const |
Index | allNodeCount () const |
virtual bool | enforcePositiveDirection () |
![]() | |
BaseEntity (const BaseEntity &ent) | |
BaseEntity & | operator= (const BaseEntity &ent) |
virtual bool | valid () const |
virtual void | setValid (bool valid) |
int | id () const |
void | setId (int id) |
void | setMarker (int marker) |
int | marker () const |
void | setTagged (bool tagged) |
void | untag () |
void | tag () |
bool | tagged () const |
Protected Member Functions | |
void | fillShape_ () |
virtual void | registerNodes_ () |
virtual void | deRegisterNodes_ () |
MeshEntity (const MeshEntity &ent) | |
MeshEntity & | operator= (const MeshEntity &ent) |
Protected Attributes | |
Shape * | shape_ |
std::vector< Node * > | nodeVector_ |
std::vector< Node * > | secondaryNodes_ |
ElementMatrix< double > | uCache_ |
ElementMatrix< double > | gradUCache_ |
RMatrix | uxCache_ |
![]() | |
int | id_ |
bool | valid_ |
int | marker_ |
bool | tagged_ |
Friends | |
std::ostream & | operator<< (std::ostream &str, const MeshEntity &c) |
GIMLI::MeshEntity::MeshEntity | ( | ) |
Default constructor.
|
virtual |
Default destructor.
|
inlineprotected |
do not copy a mesh entity at all
const std::vector< Node * > GIMLI::MeshEntity::allNodes | ( | ) | const |
Return primary and secondary nodes
RVector3 GIMLI::MeshEntity::center | ( | ) | const |
Return the center coordinates of this MeshEntity.
Referenced by GIMLI::Boundary::rst(), and GIMLI::TriangleWrapper::transformMeshToTriangle_().
void GIMLI::MeshEntity::changed | ( | ) |
Geometry has been changed. Deletes cache.
|
inlinevirtual |
Return the dimension for this MeshEntity.
Reimplemented in GIMLI::Pyramid, GIMLI::TriPrism, GIMLI::Hexahedron, GIMLI::Tetrahedron, GIMLI::Quadrangle, GIMLI::Triangle, GIMLI::EdgeCell, GIMLI::PolygonFace, GIMLI::QuadrangleFace, GIMLI::TriangleFace, GIMLI::Edge, and GIMLI::NodeBoundary.
Return the complete (n,3) matrix for all shape functions of all nodes of the current MeshEntity
with
References GIMLI::Matrix< ValueType >::push_back().
Return a RVector of the derivation for the shape functions
for the local coordinate
regarding to the local coordinates
with may be
|
virtual |
Reverse node sequence order to enforce positive Jacobian determinant. Please use with care! Return True if the order has been changed.
Return gradient at position pos for field u regarding to the shape functions of the entity. The field vector u need to be of size mesh.nodeCount() for the corresponding mesh. The position pos, in Cartesian coordinates (x,y,z), need to be inside, or on the boundary, of the entity.
IndexArray GIMLI::MeshEntity::ids | ( | ) | const |
Return IndexArray of all node ids.
Referenced by GIMLI::Mesh::addHoleMarker().
Return a RVector(n) for shape functions
in local coordinates
Referenced by GIMLI::Mesh::addRegionMarker().
|
inlineprotected |
do not assign a mesh entity at all
|
inlinevirtual |
To separate between major MeshEntity families e.g. Cell and Boundary.
Reimplemented in GIMLI::Boundary, and GIMLI::Cell.
Interpolate a scalar field at position p for the scalar field u regarding to the shape functions of the entity.
p | Cartesian coordinates (x,y,z) need to be inside, or on the boundary, of the entity. |
u | The field vector u need to be of size mesh.nodeCount() for the corresponding mesh. |
RVector3 GIMLI::MeshEntity::rst | ( | uint | i | ) | const |
Return rst-coordinates for the i-th node. See Shape::rst.
|
inlinevirtual |
Return the runtime identification for this MeshEntity.
Reimplemented from GIMLI::BaseEntity.
Reimplemented in GIMLI::Pyramid13, GIMLI::Pyramid, GIMLI::TriPrism15, GIMLI::TriPrism, GIMLI::Hexahedron20, GIMLI::Hexahedron, GIMLI::Tetrahedron10, GIMLI::Tetrahedron, GIMLI::Quadrangle8, GIMLI::Quadrangle, GIMLI::Triangle6, GIMLI::Triangle, GIMLI::Edge3Cell, GIMLI::EdgeCell, GIMLI::PolygonFace, GIMLI::Quadrangle8Face, GIMLI::QuadrangleFace, GIMLI::Triangle6Face, GIMLI::TriangleFace, GIMLI::Edge3, GIMLI::Edge, GIMLI::NodeBoundary, GIMLI::Boundary, and GIMLI::Cell.
double GIMLI::MeshEntity::size | ( | ) | const |
Return the size (i.e., length, area, volume) of this MeshEntity.
Referenced by GIMLI::Mesh::boundarySizes().
Interpolate a vector field at position p for the vector field v regarding to the shape functions of the entity.
p | Cartesian coordinates (x,y,z) need to be inside, or on the boundary, of the entity. |
v | The vector field vector v need to be of size mesh.nodeCount() for the corresponding mesh. |
|
mutableprotected |
Cache for derivation matrixes