Geophysical Inversion and Modelling Library v1.5.4
|
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_ () |
virtual void | registerSecNode_ (Node *n) |
virtual void | deRegisterSecNode_ (Node *n) |
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.
Referenced by GIMLI::Cell::Cell(), GIMLI::Cell::Cell(), MeshEntity(), and operator=().
|
virtual |
Default destructor.
|
inlineprotected |
do not copy a mesh entity at all
References MeshEntity().
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::addTriangleBoundary(), GIMLI::Mesh::boundaryCenters(), GIMLI::Mesh::cellCenters(), GIMLI::Mesh::cellDataToBoundaryGradient(), GIMLI::Mesh::cellToBoundaryInterpolation(), GIMLI::NodeBoundary::norm(), GIMLI::Boundary::normShowsOutside(), GIMLI::setAllNeumannBoundaryConditions(), GIMLI::setDefaultBERTBoundaryConditions(), and GIMLI::TriangleWrapper::transformMeshToTriangle_().
void GIMLI::MeshEntity::changed | ( | ) |
Geometry has been changed. Deletes cache.
References uCache_.
Referenced by GIMLI::Boundary::swapNorm().
|
virtual |
Reimplemented in GIMLI::Quadrangle8Face, GIMLI::QuadrangleFace, GIMLI::Triangle6Face, and GIMLI::TriangleFace.
|
inlinevirtual |
Return the dimension for this MeshEntity.
Reimplemented in GIMLI::Edge, GIMLI::EdgeCell, GIMLI::Hexahedron, GIMLI::NodeBoundary, GIMLI::PolygonFace, GIMLI::Pyramid, GIMLI::Quadrangle, GIMLI::QuadrangleFace, GIMLI::Tetrahedron, GIMLI::Triangle, GIMLI::TriangleFace, and GIMLI::TriPrism.
Return the complete (n,3) matrix for all
References dNdL(), GIMLI::Matrix< ValueType >::push_back(), and rst().
Return a RVector of the derivation for the
References GIMLI::Singleton< ShapeFunctionCache >::instance(), and rst().
|
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.
References dNdL(), ids(), GIMLI::Matrix< ValueType >::push_back(), rst(), and GIMLI::Matrix< ValueType >::transMult().
IndexArray GIMLI::MeshEntity::ids | ( | ) | const |
Return IndexArray of all node ids.
Referenced by GIMLI::Mesh::copyBoundary(), grad(), GIMLI::Mesh::interpolationMatrix(), and pot().
Inplace variant of N
References GIMLI::Singleton< ShapeFunctionCache >::instance(), N(), and rst().
|
inlineprotected |
do not assign a mesh entity at all
References MeshEntity().
|
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. |
References ids(), N(), and rst().
Referenced by vec().
RVector3 GIMLI::MeshEntity::rst | ( | uint | i | ) | const |
Return rst-coordinates for the i-th node. See Shape::rst.
References GIMLI::Pos::round().
|
inlinevirtual |
Return the runtime identification for this MeshEntity.
Reimplemented from GIMLI::BaseEntity.
Reimplemented in GIMLI::Boundary, GIMLI::Cell, GIMLI::Edge3, GIMLI::Edge3Cell, GIMLI::Edge, GIMLI::EdgeCell, GIMLI::Hexahedron20, GIMLI::Hexahedron, GIMLI::NodeBoundary, GIMLI::PolygonFace, GIMLI::Pyramid13, GIMLI::Pyramid, GIMLI::Quadrangle8, GIMLI::Quadrangle8Face, GIMLI::Quadrangle, GIMLI::QuadrangleFace, GIMLI::Tetrahedron10, GIMLI::Tetrahedron, GIMLI::Triangle6, GIMLI::Triangle6Face, GIMLI::Triangle, GIMLI::TriangleFace, GIMLI::TriPrism15, and GIMLI::TriPrism.
double GIMLI::MeshEntity::size | ( | ) | const |
Return the size (i.e., length, area, volume) of this MeshEntity.
Referenced by GIMLI::Mesh::boundarySizes(), GIMLI::Mesh::cellSizes(), and GIMLI::prepExportSensitivityData().
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. |
References pot(), GIMLI::x(), GIMLI::y(), and GIMLI::z().
|
mutableprotected |
Cache for derivation matrixes
Referenced by changed().