GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
GmWedge15CellGeometryInfo Class Reference

The Wedge15 implementation. More...

#include <gmWedgeCellGeometryInfo.h>

Inheritance diagram for GmWedge15CellGeometryInfo:
Collaboration diagram for GmWedge15CellGeometryInfo:

Public Member Functions

virtual GmShapeshapeInstance (int P, int Q) const
 Shape function factory. Should return a NEW instance of the shape function object for this type. Should return NULL if the type has no associated shape function. P and Q are needed only when working with hierarchical element types and will have a value of 0 for "normal" types.
 
virtual double dimension (const GmMatrix &X) const
 Returns the Wedge15 volume by numeric integration.
 
virtual void centroidCartesian (const GmMatrix &X, GmVector &coord) const
 Returns the Wedge15 centroid by numeric integration.
 
virtual bool localAxis (const GmMatrix &X, GmMatrix &R) const
 Computes the cell local axis system, with R = [X, Y, Z] and X, Y and Z being the local axis unit vectors. The local axis system is defined by the cell geometry and is used to define the local coordinate system for the cell. The X matrix holds the cell node coordinates organized by column.
 
virtual int isValid (const GmMatrix &X, double tol) const
 Virtual method that should be implemented if this geometry info supports the GM_CELL_GEOMETRY_VALID capability. It should implement geometry checks, like orientation, convexity or self intersection checks to check a cell validity. If the capability is not implemented, this function should simply return true. The X matrix holds the cell node coordinates organized by column. The tol is the relative tolerance used for planar/collinear tests.
 
- Public Member Functions inherited from GmCellGeometryInfoSolidElement< GmWedgeIntegrationRuleSet, GmQuadraticWedgeIntegrationRuleSetDefaults, GmWedgeEdgeIntegrationRuleSet, GmQuadraticWedgeEdgeIntegrationRuleSetDefaults, GmWedgeFaceIntegrationRuleSet, GmQuadraticWedgeFaceIntegrationRuleSetDefaults >
 GmCellGeometryInfoSolidElement (GmCellGeometryMetadata &&metadata)
 Constructor receiving as parameter a metadata object that will be MOVED to the new object.
 
virtual GmIntegrationRuleintegrationRule (GmIntegrationRuleType irType, int rule1, int rule2, int rule3, int P, int Q) const
 A factory function that returns a new integration rule object suited for this kind of element.
 
virtual GmBorderIntegrationRuleedgeIntegrationRule (GmIntegrationRuleType irType, int rule1, int P, int Q) const
 A factory function that returns a new border integration rule object suited for this kind of element. Edge rules are used to integrate functions over an element edge. This function is undefined for line elements and should return NULL in those cases.
 
virtual GmBorderIntegrationRulefaceIntegrationRule (int faceType, GmIntegrationRuleType irType, int rule1, int rule2, int P, int Q) const
 A factory function that returns a new border integration rule object suited for this kind of element. Face rules are used to integrate functions over an element face. This function is undefined for line or 2D elements and should return NULL in those cases.
 
- Public Member Functions inherited from GmCellGeometryInfo
 GmCellGeometryInfo (const GmCellGeometryInfo &other)
 Standard copy constructor receiving the type metadata.
 
 GmCellGeometryInfo (GmCellGeometryMetadata &&metadata)
 Standard move constructor receiving the type metadata.
 
virtual double quality (const GmMatrix &J, double tol) const
 Virtual method that should be implemented if this geometry info supports the GM_CELL_GEOMETRY_QUALITY capability. It should return a normalized quality measure of the cell geometry, from 0 to 1, where 0.0 means very bad and 1.0 very good. If the capability is not implemented, this function should simply return 0.0. The J matrix is the Jacobian.
 
virtual bool contains (const GmMatrix &X, const GmVector &coord) const
 Virtual method that should be implemented if this geometry info supports the GM_CELL_GEOMETRY_CONTAINS capability. It should returns true if the cell contains the point specified by the given cartesian coordinates 'coord'. If the capability is not implemented, this function should simply return false. The X matrix holds the cell node coordinates organized by column.
 
const GmIntegrationRulecellIntegrationRule () const
 Returns the default integration rule for the current geometry type.
 
double dimensionByIntegration (const GmMatrix &X, const GmIntegrationRule *ir=NULL) const
 Given a cell geometry defined by matrix X (with node coordinates organized by column) performs a numerical integration using the given integration rule to calculate either the cell length, area or volume, depending on the cell type. If ir is NULL, the default integration rule for the type is used.
 
void centroidByIntegration (const GmMatrix &X, GmVector &coord, const GmIntegrationRule *ir=NULL) const
 Given a cell geometry defined by matrix X (with node coordinates organized by column) performs a numerical integration using the given integration rule to calculate the cell centroid, filling coord. If ir is NULL, the default integration rule for the type is used.
 

Static Public Member Functions

static const GmWedge15CellGeometryInfoinstance ()
 Instance function for the Wedge15 single geometry object.
 

Private Member Functions

 GmWedge15CellGeometryInfo (GmCellGeometryMetadata &&metadata)
 Protected constructor. Only a single Wedge15 geometry info object is ever necessary, created by GmWedgeCellGeometryInfoInit()
 

Additional Inherited Members

Detailed Description

The Wedge15 implementation.

Member Function Documentation

◆ centroidCartesian()

virtual void GmWedge15CellGeometryInfo::centroidCartesian ( const GmMatrix & X,
GmVector & coord ) const
inlinevirtual

Returns the Wedge15 centroid by numeric integration.

Implements GmCellGeometryInfo.

◆ dimension()

virtual double GmWedge15CellGeometryInfo::dimension ( const GmMatrix & X) const
inlinevirtual

Returns the Wedge15 volume by numeric integration.

Implements GmCellGeometryInfo.

◆ isValid()

virtual int GmWedge15CellGeometryInfo::isValid ( const GmMatrix & X,
double tol ) const
inlinevirtual

Virtual method that should be implemented if this geometry info supports the GM_CELL_GEOMETRY_VALID capability. It should implement geometry checks, like orientation, convexity or self intersection checks to check a cell validity. If the capability is not implemented, this function should simply return true. The X matrix holds the cell node coordinates organized by column. The tol is the relative tolerance used for planar/collinear tests.

Reimplemented from GmCellGeometryInfo.

◆ localAxis()

virtual bool GmWedge15CellGeometryInfo::localAxis ( const GmMatrix & X,
GmMatrix & R ) const
inlinevirtual

Computes the cell local axis system, with R = [X, Y, Z] and X, Y and Z being the local axis unit vectors. The local axis system is defined by the cell geometry and is used to define the local coordinate system for the cell. The X matrix holds the cell node coordinates organized by column.

Parameters
XThe cell's node matrix. Can be created by calling GmCell::fillNodeMatrix(coordAc, X, true)
RThe matrix filled with the local axis system. It will have size 3x3, with each column being a unit vector in the direction of the local axis. \Return True if the local axis system was successfully computed, false otherwise. In case of failure, the R matrix will be the identity.

Implements GmCellGeometryInfo.

◆ shapeInstance()

virtual GmShape * GmWedge15CellGeometryInfo::shapeInstance ( int P,
int Q ) const
inlinevirtual

Shape function factory. Should return a NEW instance of the shape function object for this type. Should return NULL if the type has no associated shape function. P and Q are needed only when working with hierarchical element types and will have a value of 0 for "normal" types.

Implements GmCellGeometryInfo.


The documentation for this class was generated from the following files: