Geophysical Inversion and Modelling Library
v1.4.3
|
A abstract cell. More...
Inherits GIMLI::MeshEntity.
Inherited by GIMLI::EdgeCell, GIMLI::Hexahedron, GIMLI::Pyramid, GIMLI::Quadrangle, GIMLI::Tetrahedron, GIMLI::Triangle, and GIMLI::TriPrism.
Public Member Functions | |
Cell () | |
Cell (const std::vector< Node * > &nodes) | |
virtual | ~Cell () |
bool | operator== (const Cell &cell) |
virtual uint | rtti () const |
virtual uint | parentType () const |
virtual uint | neighborCellCount () const |
uint | boundaryCount () const |
void | cleanNeighborInfos () |
Cell * | neighborCell (const RVector &sf) |
Cell * | neighborCell (uint i) |
virtual void | findNeighborCell (uint i) |
double | attribute () const |
void | setAttribute (double attr) |
Node * | oppositeTo (const Boundary &bound) |
Boundary * | boundaryTo (const RVector &sf) |
Boundary * | boundary (Index i) |
virtual std::vector< Node * > | boundaryNodes (Index i) const |
![]() | |
MeshEntity () | |
virtual | ~MeshEntity () |
virtual uint | dim () 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 |
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 | |
virtual void | registerNodes_ () |
virtual void | deRegisterNodes_ () |
Cell (const Cell &cell) | |
Cell & | operator= (const Cell &cell) |
![]() | |
void | fillShape_ () |
MeshEntity (const MeshEntity &ent) | |
MeshEntity & | operator= (const MeshEntity &ent) |
Protected Attributes | |
std::vector< Cell * > | neighborCells_ |
double | attribute_ |
![]() | |
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 | |
DLLEXPORT friend std::ostream & | operator<< (std::ostream &str, const Cell &c) |
A abstract cell.
Interface class for all cells.
GIMLI::Cell::Cell | ( | ) |
Default constructor.
GIMLI::Cell::Cell | ( | const std::vector< Node * > & | nodes | ) |
Construct cell from vector of nodes.
|
virtual |
Default destructor.
|
inlineprotected |
Don't call this class directly
Boundary * GIMLI::Cell::boundary | ( | Index | i | ) |
Return the i-th boundary. Experimental!
Referenced by GIMLI::dcfemDomainAssembleStiffnessMatrix(), and GIMLI::Mesh::findCellsAlongRay().
|
inlinevirtual |
Experimental
Reimplemented in GIMLI::Pyramid, GIMLI::TriPrism, GIMLI::Hexahedron20, GIMLI::Hexahedron, GIMLI::Tetrahedron, GIMLI::Quadrangle, GIMLI::Triangle, and GIMLI::EdgeCell.
Find the nearest boundary to be crossed in direction to the point responsible for the shape function.
|
virtual |
Find neighbor cell regarding to the i-th Boundary and store them in neighborCells_.
|
inline |
Return the direct neighbor cell corresponding to local node i. The cell will be searched and stored by the virtual method findNeighborCell. All neighboring relationships have to be initialized ones by calling Mesh::createNeighborInfos(). If no cell can be found NULL is returned.
|
inline |
For pygimli bindings to allow simple check
DEPRECATED???? Find the node of this cell which is in opposite position to the given boundary. Returns a pointer to the node. The boundary must be part of the cell otherwise, a NULL pointer returns. Works for triangle/edge and tetrahedron/triangleFace
|
inlinevirtual |
To separate between major MeshEntity families e.g. Cell and Boundary.
Reimplemented from GIMLI::MeshEntity.
|
inlinevirtual |
Return the runtime identification for this MeshEntity.
Reimplemented from GIMLI::MeshEntity.
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, and GIMLI::EdgeCell.