OOFEM 3.0
Loading...
Searching...
No Matches
oofem::CellTypeUnifiedInterpolation Class Referenceabstract

CellTypeUnifiedInterpolation represent unification of interpolations of the same type (linear, quadratic) defined for specific elements set of cell types to work on set of different cell types. More...

#include <prototype2.h>

Inheritance diagram for oofem::CellTypeUnifiedInterpolation:
Collaboration diagram for oofem::CellTypeUnifiedInterpolation:

Public Member Functions

 CellTypeUnifiedInterpolation (int o)
virtual const FEInterpolationgetCellInterpolation (Element_Geometry_Type egt) const =0
void giveCellDofMans (IntArray &nodes, IntArray &internalDofMans, Element *elem) const override
 Returns list of element nodes (and list of internal dof managers) (including on edges and surfaces) defining the approximation.
void evalN (FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
double evaldNdx (FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
void local2global (FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
virtual int global2local (FloatArray &answer, const FloatArray &gcoords, const FEICellGeometry &cellgeo) const override
double giveTransformationJacobian (const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
void giveJacobianMatrixAt (FloatMatrix &jacobianMatrix, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
std::unique_ptr< IntegrationRulegiveIntegrationRule (int _order, Element_Geometry_Type egt) const override
virtual void boundaryEdgeEvalN (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
double boundaryEdgeEvalNormal (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
double boundaryEdgeGiveTransformationJacobian (int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
void boundaryEdgeLocal2Global (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
integrationDomain giveBoundaryEdgeIntegrationDomain (int boundary, Element_Geometry_Type egt) const override
 Returns boundary integration domain.
std::unique_ptr< IntegrationRulegiveBoundaryEdgeIntegrationRule (int _order, int boundary, Element_Geometry_Type egt) const override
IntArray boundaryEdgeGiveNodes (int boundary, Element_Geometry_Type gt, bool includeHierarchical=false) const override
void boundarySurfaceEvalN (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
void boundarySurfaceEvaldNdx (FloatMatrix &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
double boundarySurfaceEvalNormal (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
void boundarySurfaceLocal2global (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
double boundarySurfaceGiveTransformationJacobian (int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
integrationDomain giveBoundarySurfaceIntegrationDomain (int boundary, const Element_Geometry_Type egt) const override
 Returns boundary integration domain.
std::unique_ptr< IntegrationRulegiveBoundarySurfaceIntegrationRule (int _order, int boundary, const Element_Geometry_Type egt) const override
IntArray boundarySurfaceGiveNodes (int boundary, const Element_Geometry_Type gt, bool includeHierarchical=false) const override
IntArray boundaryGiveNodes (int boundary, const Element_Geometry_Type gt) const override
void boundaryEvalN (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
double boundaryEvalNormal (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
double boundaryGiveTransformationJacobian (int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
void boundaryLocal2Global (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
integrationDomain giveBoundaryIntegrationDomain (int boundary, Element_Geometry_Type egt) const override
 Returns boundary integration domain.
std::unique_ptr< IntegrationRulegiveBoundaryIntegrationRule (int _order, int boundary, Element_Geometry_Type egt) const override
int giveKnotSpanBasisFuncMask (const IntArray &knotSpan, IntArray &mask) const override
int giveNumberOfKnotSpanBasisFunctions (const IntArray &knotSpan) const override
bool hasSubPatchFormulation () const override
const FloatArraygiveKnotVector () const override
int giveNumberOfKnotSpans (int dim) const override
const FloatArraygiveKnotValues (int dim) const override
const IntArraygiveKnotMultiplicity (int dim) const override
int giveNumberOfEdges (Element_Geometry_Type gt) const override
int giveNumberOfNodes (Element_Geometry_Type gt) const override
virtual void giveCellDofManNumberingOffsets (Element_Geometry_Type egt, int order, int &dofManOffset, int &internalDofManOffset) const
Public Member Functions inherited from oofem::FEInterpolation
 FEInterpolation (int o)
virtual ~FEInterpolation ()=default
virtual void initializeFrom (InputRecord &ir, ParameterManager &pm, int elnum, int priority)
 Initializes receiver according to object description stored in input record.
virtual void postInitialize (ParameterManager &pm, int elnum)
virtual integrationDomain giveIntegrationDomain (const Element_Geometry_Type) const =0
virtual const Element_Geometry_Type giveGeometryType () const =0
int giveInterpolationOrder () const
virtual void evald2Ndx2 (FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const
virtual void evaldNdxi (FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const
virtual void giveLocalNodeCoords (FloatMatrix &answer, const Element_Geometry_Type) const
virtual double evalNXIntegral (int boundary, const FEICellGeometry &cellgeo) const
virtual const Element_Geometry_Type giveBoundaryGeometryType (int boundary) const =0
virtual void surfaceEvaldNdxi (FloatMatrix &answer, const FloatArray &lcoords) const
virtual void surfaceEvald2Ndxi2 (FloatMatrix &answer, const FloatArray &lcoords) const
virtual int giveNsd (const Element_Geometry_Type) const =0
virtual void initializeCell (Element *e) const
std::string errorInfo (const char *func) const

Additional Inherited Members

Protected Attributes inherited from oofem::FEInterpolation
int order = 0

Detailed Description

CellTypeUnifiedInterpolation represent unification of interpolations of the same type (linear, quadratic) defined for specific elements set of cell types to work on set of different cell types.

Definition at line 41 of file prototype2.h.

Constructor & Destructor Documentation

◆ CellTypeUnifiedInterpolation()

oofem::CellTypeUnifiedInterpolation::CellTypeUnifiedInterpolation ( int o)
inline

Member Function Documentation

◆ boundaryEdgeEvalN()

virtual void oofem::CellTypeUnifiedInterpolation::boundaryEdgeEvalN ( FloatArray & answer,
int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates the basis functions on the requested boundary. Only basis functions that are nonzero anywhere on the boundary are given. Ordering can be obtained from giveBoundaryNodes. Boundaries are defined as the corner nodes for 1D geometries, edges for 2D geometries and surfaces for 3D geometries.

Parameters
answerBasis functions Array to be filled with the boundary nodes.
boundaryBoundary number.
lcoordsThe local coordinates (on the boundary local coordinate system).
cellgeoUnderlying cell geometry.
Todo

Implements oofem::FEInterpolation.

Definition at line 70 of file prototype2.h.

References oofem::FEInterpolation::boundaryEdgeEvalN(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ boundaryEdgeEvalNormal()

double oofem::CellTypeUnifiedInterpolation::boundaryEdgeEvalNormal ( FloatArray & answer,
int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates the normal out of the edge at given point.

Parameters
answerContains resulting normal vector.
isurfDetermines the surface number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.
Returns
Surface mapping jacobian.

Implements oofem::FEInterpolation.

Definition at line 73 of file prototype2.h.

References oofem::FEInterpolation::boundaryEdgeEvalNormal(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ boundaryEdgeGiveNodes()

IntArray oofem::CellTypeUnifiedInterpolation::boundaryEdgeGiveNodes ( int boundary,
Element_Geometry_Type ,
bool includeHierarchical = false ) const
inlineoverridevirtual

Gives the boundary nodes for requested boundary number.

Parameters
answerArray to be filled with the boundary nodes.
boundaryBoundary number.
includeHierarchicalIf true, include hierarchical nodes, introduced by interpolations on universal cells (mpm)

Implements oofem::FEInterpolation.

Definition at line 88 of file prototype2.h.

References oofem::FEInterpolation::boundaryEdgeGiveNodes(), and getCellInterpolation().

◆ boundaryEdgeGiveTransformationJacobian()

double oofem::CellTypeUnifiedInterpolation::boundaryEdgeGiveTransformationJacobian ( int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates the determinant of the transformation Jacobian on the requested boundary. Boundaries are defined as the corner nodes for 1D geometries, edges for 2D geometries and surfaces for 3D geometries.

Parameters
boundaryBoundary number.
lcoordsThe local coordinates (on the boundary local coordinate system).
cellgeoUnderlying cell geometry.
Returns
The determinant of the boundary transformation Jacobian.

Implements oofem::FEInterpolation.

Definition at line 76 of file prototype2.h.

References oofem::FEInterpolation::boundaryEdgeGiveTransformationJacobian(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ boundaryEdgeLocal2Global()

void oofem::CellTypeUnifiedInterpolation::boundaryEdgeLocal2Global ( FloatArray & answer,
int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Maps the local boundary coordinates to global. Boundaries are defined as the corner nodes for 1D geometries, edges for 2D geometries and surfaces for 3D geometries.

Parameters
answerGlobal coordinates.
boundaryBoundary number.
lcoordsThe local coordinates (on the boundary local coordinate system).
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation.

Definition at line 79 of file prototype2.h.

References oofem::FEInterpolation::boundaryEdgeLocal2Global(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ boundaryEvalN()

void oofem::CellTypeUnifiedInterpolation::boundaryEvalN ( FloatArray & answer,
int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates the basis functions on the requested boundary. Only basis functions that are nonzero anywhere on the boundary are given. Ordering can be obtained from giveBoundaryNodes. Boundaries are defined as the corner nodes for 1D geometries, edges for 2D geometries and surfaces for 3D geometries.

Parameters
answerBasis functions Array to be filled with the boundary nodes.
boundaryBoundary number.
lcoordsThe local coordinates (on the boundary local coordinate system).
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation.

Definition at line 121 of file prototype2.h.

References oofem::FEInterpolation::boundaryEvalN(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ boundaryEvalNormal()

double oofem::CellTypeUnifiedInterpolation::boundaryEvalNormal ( FloatArray & answer,
int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates the normal on the requested boundary.

Parameters
answerThe evaluated normal.
boundaryBoundary number.
lcoordsThe local coordinates (on the boundary local coordinate system).
cellgeoUnderlying cell geometry.
Returns
The boundary transformation Jacobian.

Implements oofem::FEInterpolation.

Definition at line 124 of file prototype2.h.

References oofem::FEInterpolation::boundaryEvalNormal(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ boundaryGiveNodes()

IntArray oofem::CellTypeUnifiedInterpolation::boundaryGiveNodes ( int boundary,
const Element_Geometry_Type  ) const
inlineoverridevirtual

Gives the boundary nodes for requested boundary number. Boundaries are defined as the corner nodes for 1D geometries, edges for 2D geometries and surfaces for 3D geometries.

Parameters
answerArray to be filled with the boundary nodes.
boundaryBoundary number.

Implements oofem::FEInterpolation.

Definition at line 118 of file prototype2.h.

References oofem::FEInterpolation::boundaryGiveNodes(), and getCellInterpolation().

◆ boundaryGiveTransformationJacobian()

double oofem::CellTypeUnifiedInterpolation::boundaryGiveTransformationJacobian ( int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates the determinant of the transformation Jacobian on the requested boundary. Boundaries are defined as the corner nodes for 1D geometries, edges for 2D geometries and surfaces for 3D geometries.

Parameters
boundaryBoundary number.
lcoordsThe local coordinates (on the boundary local coordinate system).
cellgeoUnderlying cell geometry.
Returns
The determinant of the boundary transformation Jacobian.

Implements oofem::FEInterpolation.

Definition at line 127 of file prototype2.h.

References oofem::FEInterpolation::boundaryGiveTransformationJacobian(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ boundaryLocal2Global()

void oofem::CellTypeUnifiedInterpolation::boundaryLocal2Global ( FloatArray & answer,
int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Maps the local boundary coordinates to global. Boundaries are defined as the corner nodes for 1D geometries, edges for 2D geometries and surfaces for 3D geometries.

Parameters
answerGlobal coordinates.
boundaryBoundary number.
lcoordsThe local coordinates (on the boundary local coordinate system).
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation.

Definition at line 130 of file prototype2.h.

References oofem::FEInterpolation::boundaryLocal2Global(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ boundarySurfaceEvaldNdx()

void oofem::CellTypeUnifiedInterpolation::boundarySurfaceEvaldNdx ( FloatMatrix & answer,
int isurf,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates the matrix of derivatives of edge interpolation functions (shape functions) at given point. These derivatives are in global coordinate system (where the nodal coordinates are defined).

Parameters
answerContains resulting matrix of derivatives, the member at i,j position contains value of dNj/dxi.
isurfDetermines the surface number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation.

Definition at line 95 of file prototype2.h.

References oofem::FEInterpolation::boundarySurfaceEvaldNdx(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ boundarySurfaceEvalN()

void oofem::CellTypeUnifiedInterpolation::boundarySurfaceEvalN ( FloatArray & answer,
int isurf,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates the array of edge interpolation functions (shape functions) at given point.

Parameters
answerContains resulting array of evaluated interpolation functions.
isurfSurface number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation.

Definition at line 92 of file prototype2.h.

References oofem::FEInterpolation::boundarySurfaceEvalN(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ boundarySurfaceEvalNormal()

double oofem::CellTypeUnifiedInterpolation::boundarySurfaceEvalNormal ( FloatArray & answer,
int isurf,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates the normal out of the surface at given point.

Parameters
answerContains resulting normal vector.
isurfDetermines the surface number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.
Returns
Surface mapping jacobian.

Implements oofem::FEInterpolation.

Definition at line 98 of file prototype2.h.

References oofem::FEInterpolation::boundarySurfaceEvalNormal(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ boundarySurfaceGiveNodes()

IntArray oofem::CellTypeUnifiedInterpolation::boundarySurfaceGiveNodes ( int boundary,
const Element_Geometry_Type ,
bool includeHierarchical = false ) const
inlineoverridevirtual

Gives the boundary nodes for requested boundary number.

Parameters
answerArray to be filled with the boundary nodes.
boundaryBoundary number.
includeHierarchicalIf true, include hierarchical nodes, introduced by interpolations on universal cells (mpm)

Implements oofem::FEInterpolation.

Definition at line 114 of file prototype2.h.

References oofem::FEInterpolation::boundarySurfaceGiveNodes(), and getCellInterpolation().

◆ boundarySurfaceGiveTransformationJacobian()

double oofem::CellTypeUnifiedInterpolation::boundarySurfaceGiveTransformationJacobian ( int isurf,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates the edge jacobian of transformation between local and global coordinates.

Parameters
isurfDetermines the surface number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.
Returns
Determinant of the transformation.

Implements oofem::FEInterpolation.

Definition at line 105 of file prototype2.h.

References oofem::FEInterpolation::boundarySurfaceGiveTransformationJacobian(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ boundarySurfaceLocal2global()

void oofem::CellTypeUnifiedInterpolation::boundarySurfaceLocal2global ( FloatArray & answer,
int isurf,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates edge global coordinates from given local ones. These derivatives are in global coordinate system (where the nodal coordinates are defined).

Parameters
answerContains resulting global coordinates.
isurfDetermines the surface number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation.

Definition at line 102 of file prototype2.h.

References oofem::FEInterpolation::boundarySurfaceLocal2global(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ evaldNdx()

double oofem::CellTypeUnifiedInterpolation::evaldNdx ( FloatMatrix & answer,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point. These derivatives are in global coordinate system (where the nodal coordinates are defined)

Parameters
answerContains resulting matrix of derivatives, the member at i,j position contains value of dNi/dxj.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.
Returns
Determinant of the Jacobian.

Implements oofem::FEInterpolation.

Definition at line 52 of file prototype2.h.

References oofem::FEInterpolation::evaldNdx(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ evalN()

void oofem::CellTypeUnifiedInterpolation::evalN ( FloatArray & answer,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates the array of interpolation functions (shape functions) at given point.

Parameters
answerContains resulting array of evaluated interpolation functions.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation.

Definition at line 49 of file prototype2.h.

References oofem::FEInterpolation::evalN(), getCellInterpolation(), and oofem::FEICellGeometry::giveGeometryType().

◆ getCellInterpolation()

◆ giveBoundaryEdgeIntegrationDomain()

integrationDomain oofem::CellTypeUnifiedInterpolation::giveBoundaryEdgeIntegrationDomain ( int boundary,
Element_Geometry_Type  ) const
inlineoverridevirtual

Returns boundary integration domain.

Implements oofem::FEInterpolation.

Definition at line 82 of file prototype2.h.

References getCellInterpolation(), and oofem::FEInterpolation::giveBoundaryEdgeIntegrationDomain().

◆ giveBoundaryEdgeIntegrationRule()

std::unique_ptr< IntegrationRule > oofem::CellTypeUnifiedInterpolation::giveBoundaryEdgeIntegrationRule ( int order,
int boundary,
Element_Geometry_Type egt ) const
inlineoverridevirtual

Sets up a suitable integration rule for integrating over the requested boundary. The required polynomial order for the determinant of the jacobian is added automatically.

Parameters
orderPolynomial order of the integrand (should NOT including determinant of jacobian).
boundaryBoundary number.

Reimplemented from oofem::FEInterpolation.

Definition at line 85 of file prototype2.h.

References getCellInterpolation(), and oofem::FEInterpolation::giveBoundaryEdgeIntegrationRule().

◆ giveBoundaryIntegrationDomain()

integrationDomain oofem::CellTypeUnifiedInterpolation::giveBoundaryIntegrationDomain ( int boundary,
Element_Geometry_Type  ) const
inlineoverridevirtual

Returns boundary integration domain.

Implements oofem::FEInterpolation.

Definition at line 133 of file prototype2.h.

References getCellInterpolation(), and oofem::FEInterpolation::giveBoundaryIntegrationDomain().

◆ giveBoundaryIntegrationRule()

std::unique_ptr< IntegrationRule > oofem::CellTypeUnifiedInterpolation::giveBoundaryIntegrationRule ( int order,
int boundary,
Element_Geometry_Type egt ) const
inlineoverridevirtual

Sets up a suitable integration rule for integrating over the requested boundary. The required polynomial order for the determinant of the jacobian is added automatically.

Parameters
orderPolynomial order of the integrand (should NOT including determinant of jacobian).
boundaryBoundary number.

Reimplemented from oofem::FEInterpolation.

Definition at line 136 of file prototype2.h.

References getCellInterpolation(), and oofem::FEInterpolation::giveBoundaryIntegrationRule().

◆ giveBoundarySurfaceIntegrationDomain()

integrationDomain oofem::CellTypeUnifiedInterpolation::giveBoundarySurfaceIntegrationDomain ( int boundary,
const Element_Geometry_Type  ) const
inlineoverridevirtual

Returns boundary integration domain.

Implements oofem::FEInterpolation.

Definition at line 108 of file prototype2.h.

References getCellInterpolation(), and oofem::FEInterpolation::giveBoundarySurfaceIntegrationDomain().

◆ giveBoundarySurfaceIntegrationRule()

std::unique_ptr< IntegrationRule > oofem::CellTypeUnifiedInterpolation::giveBoundarySurfaceIntegrationRule ( int order,
int boundary,
const Element_Geometry_Type egt ) const
inlineoverridevirtual

Sets up a suitable integration rule for integrating over the requested boundary. The required polynomial order for the determinant of the jacobian is added automatically.

Parameters
orderPolynomial order of the integrand (should NOT including determinant of jacobian).
boundaryBoundary number.

Reimplemented from oofem::FEInterpolation.

Definition at line 111 of file prototype2.h.

References getCellInterpolation(), and oofem::FEInterpolation::giveBoundarySurfaceIntegrationRule().

◆ giveCellDofManNumberingOffsets()

virtual void oofem::CellTypeUnifiedInterpolation::giveCellDofManNumberingOffsets ( Element_Geometry_Type egt,
int order,
int & dofManOffset,
int & internalDofManOffset ) const
inlinevirtual

Return dofmanager numbering offsets for given cell type and interpolation order

Parameters
egtcell geometry type
orderinterpolation order
dofManOffsetdofman numbering offset for new dofmanagers to be introduced for given interpolation order
internalDofManOffsetinternal dofman numbering offset for new dofmanagers to be introduced for given interpolation order

Definition at line 163 of file prototype2.h.

References OOFEM_ERROR, and oofem::FEInterpolation::order.

Referenced by oofem::QuadraticInterpolation::initializeCell().

◆ giveCellDofMans()

void oofem::CellTypeUnifiedInterpolation::giveCellDofMans ( IntArray & nodes,
IntArray & internalDofMans,
Element * elem ) const
inlineoverridevirtual

Returns list of element nodes (and list of internal dof managers) (including on edges and surfaces) defining the approximation.

Returns local element node numbers defining the approximation. Typically this corresponds to all element nodes. But for elements with mixed interpolation, we need to select subset of nodes (quadratic triangle with linear interpolation). This method can query element geometry type (from given element) and compile the nodal set.

Note
Required by mpm module

Reimplemented from oofem::FEInterpolation.

Definition at line 46 of file prototype2.h.

References getCellInterpolation(), oofem::FEInterpolation::giveCellDofMans(), and oofem::Element::giveGeometryType().

◆ giveIntegrationRule()

std::unique_ptr< IntegrationRule > oofem::CellTypeUnifiedInterpolation::giveIntegrationRule ( int order,
Element_Geometry_Type egt ) const
inlineoverridevirtual

Sets up a suitable integration rule for numerical integrating over volume. The required polynomial order for the determinant of the jacobian is added automatically.

Parameters
orderPolynomial order of integrand (should NOT including determinant of jacobian).

Reimplemented from oofem::FEInterpolation.

Definition at line 67 of file prototype2.h.

References getCellInterpolation(), and oofem::FEInterpolation::giveIntegrationRule().

◆ giveJacobianMatrixAt()

void oofem::CellTypeUnifiedInterpolation::giveJacobianMatrixAt ( FloatMatrix & jacobianMatrix,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Gives the jacobian matrix at the local coordinates.

Parameters
jacobianMatrixThe requested matrix.
lcoordsLocal coordinates.
cellgeoElement geometry.

Reimplemented from oofem::FEInterpolation.

Definition at line 64 of file prototype2.h.

References getCellInterpolation(), oofem::FEICellGeometry::giveGeometryType(), and oofem::FEInterpolation::giveJacobianMatrixAt().

◆ giveKnotMultiplicity()

const IntArray * oofem::CellTypeUnifiedInterpolation::giveKnotMultiplicity ( int dim) const
inlineoverridevirtual

Returns the knot multiplicity of the receiver.

Reimplemented from oofem::FEInterpolation.

Definition at line 145 of file prototype2.h.

◆ giveKnotSpanBasisFuncMask()

int oofem::CellTypeUnifiedInterpolation::giveKnotSpanBasisFuncMask ( const IntArray & knotSpan,
IntArray & mask ) const
inlineoverridevirtual

Returns indices (zero based) of nonzero basis functions for given knot span. The knot span identifies the sub-region of the finite element.

Returns
Nonzero if mask is provided, zero otherwise meaning that all basis functions are generally nonzero.

Reimplemented from oofem::FEInterpolation.

Definition at line 139 of file prototype2.h.

◆ giveKnotValues()

const FloatArray * oofem::CellTypeUnifiedInterpolation::giveKnotValues ( int dim) const
inlineoverridevirtual

Returns the knot values of the receiver.

Reimplemented from oofem::FEInterpolation.

Definition at line 144 of file prototype2.h.

◆ giveKnotVector()

const FloatArray * oofem::CellTypeUnifiedInterpolation::giveKnotVector ( ) const
inlineoverridevirtual

Returns the subdivision of patch parametric space

Reimplemented from oofem::FEInterpolation.

Definition at line 142 of file prototype2.h.

◆ giveNumberOfEdges()

int oofem::CellTypeUnifiedInterpolation::giveNumberOfEdges ( Element_Geometry_Type ) const
inlineoverridevirtual

Returns number of edges.

Reimplemented from oofem::FEInterpolation.

Definition at line 147 of file prototype2.h.

References getCellInterpolation(), and oofem::FEInterpolation::giveNumberOfEdges().

◆ giveNumberOfKnotSpanBasisFunctions()

int oofem::CellTypeUnifiedInterpolation::giveNumberOfKnotSpanBasisFunctions ( const IntArray & knotSpan) const
inlineoverridevirtual

Returns the number of nonzero basis functions at individual knot span,

Returns
Zero in case of all basis functions generaedgeEvaldNdslly nonzero, answer otherwise.

Reimplemented from oofem::FEInterpolation.

Definition at line 140 of file prototype2.h.

◆ giveNumberOfKnotSpans()

int oofem::CellTypeUnifiedInterpolation::giveNumberOfKnotSpans ( int dim) const
inlineoverridevirtual

Returns the number of knot spans of the receiver.

Reimplemented from oofem::FEInterpolation.

Definition at line 143 of file prototype2.h.

◆ giveNumberOfNodes()

int oofem::CellTypeUnifiedInterpolation::giveNumberOfNodes ( Element_Geometry_Type ) const
inlineoverridevirtual

Returns the number of geometric nodes of the receiver.

Reimplemented from oofem::FEInterpolation.

Definition at line 151 of file prototype2.h.

References getCellInterpolation(), and giveNumberOfNodes().

Referenced by giveNumberOfNodes().

◆ giveTransformationJacobian()

double oofem::CellTypeUnifiedInterpolation::giveTransformationJacobian ( const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates the determinant of the transformation.

Parameters
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.
Returns
Determinant of the transformation.

Reimplemented from oofem::FEInterpolation.

Definition at line 61 of file prototype2.h.

References getCellInterpolation(), oofem::FEICellGeometry::giveGeometryType(), and oofem::FEInterpolation::giveTransformationJacobian().

◆ global2local()

virtual int oofem::CellTypeUnifiedInterpolation::global2local ( FloatArray & answer,
const FloatArray & gcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates local coordinates from given global ones. If local coordinates cannot be found (generate elements, or point far outside geometry, then the center coordinate will be used as a last resort, and the return value will be zero.

Parameters
answerContains evaluated local coordinates.
gcoordsArray containing global coordinates.
cellgeoUnderlying cell geometry.
Returns
Nonzero is returned if point is within the element geometry, zero otherwise.

Implements oofem::FEInterpolation.

Definition at line 58 of file prototype2.h.

References getCellInterpolation(), oofem::FEICellGeometry::giveGeometryType(), and oofem::FEInterpolation::global2local().

◆ hasSubPatchFormulation()

bool oofem::CellTypeUnifiedInterpolation::hasSubPatchFormulation ( ) const
inlineoverridevirtual

Returns true, if receiver is formulated on sub-patch basis.

Reimplemented from oofem::FEInterpolation.

Definition at line 141 of file prototype2.h.

◆ local2global()

void oofem::CellTypeUnifiedInterpolation::local2global ( FloatArray & answer,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlineoverridevirtual

Evaluates global coordinates from given local ones.

Parameters
answerContains resulting global coordinates.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation.

Definition at line 55 of file prototype2.h.

References getCellInterpolation(), oofem::FEICellGeometry::giveGeometryType(), and oofem::FEInterpolation::local2global().


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

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011