Geophysical Inversion and Modelling Library  v1.5.0
GIMLI::Boundary Class Reference

Inherits GIMLI::MeshEntity.

Inherited by GIMLI::Edge, GIMLI::NodeBoundary, GIMLI::PolygonFace, GIMLI::QuadrangleFace, and GIMLI::TriangleFace.

+ Collaboration diagram for GIMLI::Boundary:

Public Member Functions

 Boundary (const std::vector< Node * > &nodes)
virtual uint rtti () const
virtual uint parentType () const
virtual RVector3 rst (uint i) const
const CellleftCell () const
CellleftCell ()
const CellrightCell () const
CellrightCell ()
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
Nodenode (uint i)
Nodenode (uint i) const
uint nodeCount () const
Shapeshape ()
Shapeshape () const
ShapepShape ()
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 RMatrixuxCache () 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)
BaseEntityoperator= (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)
Boundaryoperator= (const Boundary &boundary)
- Protected Member Functions inherited from GIMLI::MeshEntity
void fillShape_ ()
 MeshEntity (const MeshEntity &ent)
MeshEntityoperator= (const MeshEntity &ent)

Protected Attributes

- Protected Attributes inherited from GIMLI::MeshEntity
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_


std::ostream & operator<< (std::ostream &str, const Boundary &e)

Constructor & Destructor Documentation

◆ Boundary()

GIMLI::Boundary::Boundary ( const Boundary bound)

Don't call this class directly

Member Function Documentation

◆ leftCell()

◆ norm() [1/2]

◆ norm() [2/2]

RVector3 GIMLI::Boundary::norm ( const Cell cell) const

Return outer normal vector for this boundary regarding the given cell. The boundary should part of this cell.

References norm(), and normShowsOutside().

◆ 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().

◆ operator=()

Boundary& GIMLI::Boundary::operator= ( const Boundary boundary)

Don't call this class directly

◆ outside()

bool GIMLI::Boundary::outside ( ) const

Is the boundary is on the outside of the mesh.

◆ parentType()

virtual uint GIMLI::Boundary::parentType ( ) const

To separate between major MeshEntity families e.g. Cell and Boundary.

Reimplemented from GIMLI::MeshEntity.

◆ rst()

RVector3 GIMLI::Boundary::rst ( uint  i) const

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().

◆ rtti()

virtual uint GIMLI::Boundary::rtti ( ) const

◆ swapNorm()

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().