Geophysical Inversion and Modelling Library
v1.5.2-5-g042d7f36
|
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 () |
Public Member Functions inherited from GIMLI::BaseEntity | |
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_ |
Protected Attributes inherited from GIMLI::BaseEntity | |
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.
References GIMLI::Shape::center().
Referenced by GIMLI::addTriangleBoundary(), GIMLI::Mesh::boundaryCenters(), GIMLI::Mesh::cellCenters(), GIMLI::Mesh::cellDataToBoundaryGradient(), GIMLI::Mesh::cellToBoundaryInterpolation(), GIMLI::Mesh::exportMidCellValue(), 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 GIMLI::Shape::changed(), and uCache_.
Referenced by GIMLI::Boundary::swapNorm().
|
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 dNdL(), and 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
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::Shape::invJacobian(), GIMLI::Matrix< ValueType >::push_back(), GIMLI::Shape::rst(), rst(), and GIMLI::Matrix< ValueType >::transMult().
IndexArray GIMLI::MeshEntity::ids | ( | ) | const |
Return IndexArray of all node ids.
References GIMLI::BaseEntity::id().
Referenced by GIMLI::ElectrodeShapeEntity::assembleRHS(), GIMLI::Mesh::copyBoundary(), grad(), GIMLI::Mesh::interpolationMatrix(), and pot().
Return a RVector(n) for shape functions in local coordinates
Referenced by GIMLI::ElectrodeShapeEntity::assembleRHS(), GIMLI::Mesh::interpolationMatrix(), N(), and pot().
Inplace variant of N
References GIMLI::Singleton< ShapeFunctionCache >::instance(), N(), and rst().
|
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.
Referenced by GIMLI::ElectrodeShapeEntity::geomMeanCellAttributes().
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 GIMLI::ElectrodeShapeEntity::pot(), and vec().
RVector3 GIMLI::MeshEntity::rst | ( | uint | i | ) | const |
Return rst-coordinates for the i-th node. See Shape::rst.
References GIMLI::Pos::round(), and GIMLI::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.
Referenced by GIMLI::Mesh::addVTUPiece_().
double GIMLI::MeshEntity::size | ( | ) | const |
Return the size (i.e., length, area, volume) of this MeshEntity.
References GIMLI::Shape::domainSize().
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().