Geophysical Inversion and Modelling Library  v1.5.2-5-g042d7f36
GIMLI::TriPrismShape Class Reference

Triangular prism. More...

+ Inheritance diagram for GIMLI::TriPrismShape:
+ Collaboration diagram for GIMLI::TriPrismShape:

Public Member Functions

 TriPrismShape (MeshEntity *ent)
 
virtual int rtti () const
 
virtual int dim () const
 
virtual std::string name () const
 
virtual RVector3 rst (Index i) const
 
virtual std::vector< PolynomialFunction< double > > createShapeFunctions () const
 
double volume () const
 
- Public Member Functions inherited from GIMLI::Shape
 Shape (MeshEntity *ent)
 
virtual ~Shape ()
 
Index nodeCount () const
 
Nodenode (Index i) const
 
void setNodesPtr (const std::vector< Node * > &n)
 
const std::vector< Node * > & nodes () const
 
void createJacobian (RMatrix3 &J) const
 
RMatrix3 createJacobian () const
 
const RMatrix3invJacobian () const
 
virtual RVector N (const RVector3 &L) const
 
virtual void N (const RVector3 &L, RVector &ret) const
 
virtual void dNdrst (const RVector3 &rst, RMatrix &MdNdrst) const
 
virtual RMatrix dNdrst (const RVector3 &L) const
 
virtual void rst2xyz (const RVector3 &rst, RVector3 &xyz) const
 
virtual RVector3 xyz (const RVector3 &rst) const
 
virtual void xyz2rst (const RVector3 &xyz, RVector3 &rst) const
 
virtual RVector3 rst (const RVector3 &xyz) const
 
double drstdxyz (uint rstI, uint xyzJ) const
 
virtual bool isInside (const RVector3 &xyz, bool verbose=false) const
 
virtual bool isInside (const RVector3 &xyz, RVector &sf, bool verbose=false) const
 
virtual bool touch (const RVector3 &pos, double tol=1e-6, bool verbose=false) const
 
virtual bool intersectRay (const RVector3 &start, const RVector3 &dir, RVector3 &pos)
 
double domainSize () const
 
RVector3 center () const
 
virtual RVector3 norm () const
 
double h () const
 
virtual Plane plane () const
 
void changed ()
 
double jacobianDeterminant () const
 
void resizeNodeSize_ (Index n)
 

Protected Member Functions

virtual double domainSize_ () const
 

Additional Inherited Members

- Protected Attributes inherited from GIMLI::Shape
Index nodeCount_
 
double domSize_
 
bool hasDomSize_
 
double _h
 
RMatrix3 invJacobian_
 
const std::vector< Node * > * nodeVector_
 

Detailed Description

Triangular prism.

A Triangular prism is a three-sided prism. Equivalently, it is a pentahedron of which two faces are parallel. Node direction: 5
/|\
3—4
| 2 |
|/ |
0—1

Member Function Documentation

◆ createShapeFunctions()

std::vector< PolynomialFunction< double > > GIMLI::TriPrismShape::createShapeFunctions ( ) const
virtual

Return a reference to all nodes.

Reimplemented from GIMLI::Shape.

◆ domainSize_()

virtual double GIMLI::TriPrismShape::domainSize_ ( ) const
inlineprotectedvirtual

Virtual method to calculate the domain size i.e length, area, volume of the shapes

Reimplemented from GIMLI::Shape.

◆ name()

virtual std::string GIMLI::TriPrismShape::name ( ) const
inlinevirtual

Return an identification name for the shape.

Reimplemented from GIMLI::Shape.

◆ rst()

RVector3 GIMLI::TriPrismShape::rst ( Index  i) const
virtual

See Shape::rst

Reimplemented from GIMLI::Shape.

References GIMLI::Shape::nodeCount().

◆ rtti()

virtual int GIMLI::TriPrismShape::rtti ( ) const
inlinevirtual

Pure virtual methode for runtime identification.

Implements GIMLI::Shape.