Geophysical Inversion and Modelling Library
v1.5.2-5-g042d7f36
|
Inherits GIMLI::MeshEntity.
Inherited by GIMLI::Edge, GIMLI::NodeBoundary, GIMLI::PolygonFace, GIMLI::QuadrangleFace, and GIMLI::TriangleFace.
Public Member Functions | |
Boundary (const std::vector< Node * > &nodes) | |
virtual uint | rtti () const |
virtual uint | parentType () const |
virtual RVector3 | rst (uint i) const |
const Cell & | leftCell () const |
Cell * | leftCell () |
const Cell & | rightCell () const |
Cell * | rightCell () |
void | setLeftCell (Cell *cell) |
void | setRightCell (Cell *cell) |
virtual RVector3 | norm () const |
virtual RVector3 | norm (const Cell &cell) const |
bool | normShowsOutside (const Cell &cell) const |
void | swapNorm (bool withNeighbours=true) |
bool | outside () const |
Public Member Functions inherited from GIMLI::MeshEntity | |
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 |
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 | |
virtual void | registerNodes_ () |
virtual void | deRegisterNodes_ () |
virtual void | registerSecNode_ (Node *n) |
virtual void | deRegisterSecNode_ (Node *n) |
Boundary (const Boundary &bound) | |
Boundary & | operator= (const Boundary &boundary) |
Protected Member Functions inherited from GIMLI::MeshEntity | |
void | fillShape_ () |
MeshEntity (const MeshEntity &ent) | |
MeshEntity & | operator= (const MeshEntity &ent) |
Protected Attributes | |
Cell * | leftCell_ |
Cell * | rightCell_ |
Protected Attributes inherited from GIMLI::MeshEntity | |
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 Boundary &e) |
|
inlineprotected |
Don't call this class directly
|
inline |
Normal vector of the boundary shows outside for left cell. Every boundary needs a left cell for a valid mesh.
Referenced by GIMLI::addTriangleBoundary(), GIMLI::Mesh::boundaryDataToCellGradient(), GIMLI::calcGBounds(), GIMLI::Mesh::cellDataToBoundaryGradient(), GIMLI::Mesh::cellToBoundaryInterpolation(), GIMLI::Mesh::create2DGrid(), GIMLI::Mesh::create3DGrid(), GIMLI::createMesh2D(), GIMLI::createMesh3D(), GIMLI::Mesh::createNeighborInfosCell_(), GIMLI::Mesh::divergence(), GIMLI::RegionManager::fillConstraints(), GIMLI::Region::fillConstraints(), GIMLI::Mesh::fixBoundaryDirections(), GIMLI::NodeBoundary::norm(), GIMLI::Region::resize(), GIMLI::Mesh::saveBinary(), GIMLI::Mesh::saveBinaryV2(), and swapNorm().
|
virtual |
Return normal vector for this boundary.
Reimplemented in GIMLI::NodeBoundary.
References GIMLI::Shape::norm().
Referenced by GIMLI::Region::_createConstraintWeights(), GIMLI::Mesh::cellDataToBoundaryGradient(), GIMLI::RegionManager::fillConstraints(), norm(), normShowsOutside(), and GIMLI::Mesh::prolongateEmptyCellsValues().
Return outer normal vector for this boundary regarding the given cell. The boundary should part of this cell.
References norm(), and normShowsOutside().
bool GIMLI::Boundary::normShowsOutside | ( | const Cell & | cell | ) | const |
Return true if the normal vector of this boundary shown from the cell away (outside-direction)
References GIMLI::MeshEntity::center(), and norm().
Referenced by GIMLI::Mesh::createNeighborInfosCell_(), GIMLI::Mesh::fixBoundaryDirections(), and norm().
Don't call this class directly
|
inline |
Is the boundary is on the outside of the mesh.
|
inlinevirtual |
To separate between major MeshEntity families e.g. Cell and Boundary.
Reimplemented from GIMLI::MeshEntity.
|
virtual |
Return these coordinates manual until boundary coordinate transformation is done.
Reimplemented in GIMLI::Quadrangle8Face, GIMLI::Triangle6Face, and GIMLI::Edge3.
References GIMLI::Shape::nodeCount(), GIMLI::Shape::rst(), and rtti().
|
inlinevirtual |
Return the runtime identification for this MeshEntity.
Reimplemented from GIMLI::MeshEntity.
Reimplemented in GIMLI::PolygonFace, GIMLI::Quadrangle8Face, GIMLI::QuadrangleFace, GIMLI::Triangle6Face, GIMLI::TriangleFace, GIMLI::Edge3, GIMLI::Edge, and GIMLI::NodeBoundary.
Referenced by GIMLI::Mesh::copyBoundary(), GIMLI::Mesh::createNodeWithCheck(), GIMLI::Mesh::createRefined_(), and rst().
void GIMLI::Boundary::swapNorm | ( | bool | withNeighbours = true | ) |
Reverse node order to swap normal direction.
References GIMLI::MeshEntity::changed(), and leftCell().
Referenced by GIMLI::Mesh::fixBoundaryDirections().