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

#include <feinterpol.h>

Inheritance diagram for oofem::FEInterpolation:

Public Member Functions

 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 giveCellDofMans (IntArray &nodes, IntArray &internalDofMans, Element *elem) const
 Returns list of element nodes (and list of internal dof managers) (including on edges and surfaces) defining the approximation.
virtual void evalN (FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual double evaldNdx (FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
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 void local2global (FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual int global2local (FloatArray &answer, const FloatArray &gcoords, const FEICellGeometry &cellgeo) const =0
virtual double giveTransformationJacobian (const FloatArray &lcoords, const FEICellGeometry &cellgeo) const
virtual void giveJacobianMatrixAt (FloatMatrix &jacobianMatrix, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const
virtual std::unique_ptr< IntegrationRulegiveIntegrationRule (int order, const Element_Geometry_Type) const
Edge boundary functions.

Provide interpolation services for boundary edges (entity of dimension 1)

virtual void boundaryEdgeEvalN (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual double boundaryEdgeEvalNormal (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual double boundaryEdgeGiveTransformationJacobian (int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual void boundaryEdgeLocal2Global (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual integrationDomain giveBoundaryEdgeIntegrationDomain (int boundary, const Element_Geometry_Type) const =0
 Returns boundary integration domain.
virtual std::unique_ptr< IntegrationRulegiveBoundaryEdgeIntegrationRule (int order, int boundary, const Element_Geometry_Type) const
virtual IntArray boundaryEdgeGiveNodes (int boundary, const Element_Geometry_Type, bool includeHierarchical=false) const =0
Surface interpolation services

Provide interpolation services for boundary edges (entities of dimension 2)

virtual void boundarySurfaceEvalN (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual void boundarySurfaceEvaldNdx (FloatMatrix &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual double boundarySurfaceEvalNormal (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual void boundarySurfaceLocal2global (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual double boundarySurfaceGiveTransformationJacobian (int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual integrationDomain giveBoundarySurfaceIntegrationDomain (int boundary, const Element_Geometry_Type) const =0
 Returns boundary integration domain.
virtual std::unique_ptr< IntegrationRulegiveBoundarySurfaceIntegrationRule (int order, int boundary, const Element_Geometry_Type) const
virtual IntArray boundarySurfaceGiveNodes (int boundary, const Element_Geometry_Type, bool includeHierarchical=false) const =0
General boundary interpolation functions.

Provide interpolation servises for boundary entities with one dimension lower than the receiver interpolation. Typically these are mapped to boundaryEdge and boundarySurface methods depending on dimension.

virtual IntArray boundaryGiveNodes (int boundary, const Element_Geometry_Type) const =0
virtual void boundaryEvalN (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual double boundaryEvalNormal (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual double boundaryGiveTransformationJacobian (int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual void boundaryLocal2Global (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual double evalNXIntegral (int boundary, const FEICellGeometry &cellgeo) const
virtual integrationDomain giveBoundaryIntegrationDomain (int boundary, const Element_Geometry_Type) const =0
 Returns boundary integration domain.
virtual std::unique_ptr< IntegrationRulegiveBoundaryIntegrationRule (int order, int boundary, const Element_Geometry_Type) 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
Methods to support interpolation defined on patch by patch basis.
virtual int giveKnotSpanBasisFuncMask (const IntArray &knotSpan, IntArray &mask) const
virtual int giveNumberOfKnotSpanBasisFunctions (const IntArray &knotSpan) const
virtual bool hasSubPatchFormulation () const
virtual const FloatArraygiveKnotVector () const
virtual int giveNumberOfKnotSpans (int dim) const
virtual const FloatArraygiveKnotValues (int dim) const
virtual const IntArraygiveKnotMultiplicity (int dim) const
virtual int giveNsd (const Element_Geometry_Type) const =0
virtual int giveNumberOfEdges (const Element_Geometry_Type) const
virtual int giveNumberOfNodes (const Element_Geometry_Type) const
virtual void initializeCell (Element *e) const
std::string errorInfo (const char *func) const

Protected Attributes

int order = 0

Detailed Description

Class representing a general abstraction for finite element interpolation class. The boundary functions denote the (numbered) region that have 1 spatial dimension (i.e. edges) or 2 spatial dimensions.

Definition at line 174 of file feinterpol.h.

Constructor & Destructor Documentation

◆ FEInterpolation()

◆ ~FEInterpolation()

virtual oofem::FEInterpolation::~FEInterpolation ( )
virtualdefault

Member Function Documentation

◆ boundaryEdgeEvalN()

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

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

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::CellTypeUnifiedInterpolation::boundaryEdgeEvalN(), oofem::TransportElement::computeBoundaryEdgeLoadVector(), and oofem::MITC4Shell::computeEdgeNMatrix().

◆ boundaryEdgeEvalNormal()

virtual double oofem::FEInterpolation::boundaryEdgeEvalNormal ( FloatArray & answer,
int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::CellTypeUnifiedInterpolation::boundaryEdgeEvalNormal().

◆ boundaryEdgeGiveNodes()

virtual IntArray oofem::FEInterpolation::boundaryEdgeGiveNodes ( int boundary,
const Element_Geometry_Type ,
bool includeHierarchical = false ) const
pure virtual

◆ boundaryEdgeGiveTransformationJacobian()

virtual double oofem::FEInterpolation::boundaryEdgeGiveTransformationJacobian ( int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI2dQuadLinAxi, oofem::FEI2dQuadQuadAxi, oofem::FEI2dTrLinAxi, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::CellTypeUnifiedInterpolation::boundaryEdgeGiveTransformationJacobian(), oofem::MPElement::computeEdgeVolumeAround(), and oofem::StructuralElement::computeEdgeVolumeAround().

◆ boundaryEdgeLocal2Global()

virtual void oofem::FEInterpolation::boundaryEdgeLocal2Global ( FloatArray & answer,
int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::CellTypeUnifiedInterpolation::boundaryEdgeLocal2Global(), and oofem::StructuralElement::computeBoundaryEdgeLoadVector().

◆ boundaryEvalN()

virtual void oofem::FEInterpolation::boundaryEvalN ( FloatArray & answer,
int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::PrescribedMean::assemble(), oofem::WeakPeriodicBoundaryCondition::assemble(), oofem::CellTypeUnifiedInterpolation::boundaryEvalN(), oofem::tet21ghostsolid::computeBoundarySurfaceLoadVector(), oofem::TransportElement::computeBoundarySurfaceLoadVector(), oofem::SolutionbasedShapeFunction::computeCorrectionFactors(), oofem::WeakPeriodicBoundaryCondition::computeElementTangent(), oofem::SurfaceTensionBoundaryCondition::computeLoadVectorFromElement(), oofem::TransportElement::computeTangentFromEdgeLoad(), oofem::SurfaceTensionBoundaryCondition::computeTangentFromElement(), oofem::TransportElement::computeTangentFromSurfaceLoad(), oofem::PrescribedMean::giveInternalForcesVector(), oofem::WeakPeriodicBoundaryCondition::giveInternalForcesVector(), oofem::MixedGradientPressureNeumann::integrateDevTangent(), oofem::TransportGradientNeumann::integrateTangent(), oofem::TransverseReinfConstraint::integrateTangentOnConcrete(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionVelocityTangent(), and oofem::MixedGradientPressureNeumann::integrateVolTangent().

◆ boundaryEvalNormal()

virtual double oofem::FEInterpolation::boundaryEvalNormal ( FloatArray & answer,
int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::CellTypeUnifiedInterpolation::boundaryEvalNormal(), oofem::SolutionbasedShapeFunction::computeCorrectionFactors(), oofem::TransportGradientNeumann::computeEta(), oofem::SurfaceTensionBoundaryCondition::computeLoadVectorFromElement(), oofem::NeumannMomentLoad::computeNormal(), oofem::MixedGradientPressureWeakPeriodic::computeStress(), oofem::SurfaceTensionBoundaryCondition::computeTangentFromElement(), oofem::NeumannMomentLoad::computeValueAtBoundary(), oofem::SADGBoundaryElement::giveCharacteristicMatrix(), oofem::WeakPeriodicBoundaryCondition::giveEdgeNormal(), oofem::SolutionbasedShapeFunction::initializeSurfaceData(), oofem::MixedGradientPressureNeumann::integrateDevTangent(), oofem::PrescribedGradientBCNeumann::integrateTangent(), oofem::TransportGradientNeumann::integrateTangent(), oofem::TransverseReinfConstraint::integrateTangentOnConcrete(), oofem::TransverseReinfConstraint::integrateTangentOnSteel(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentRStressConcrete(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentStress(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionDev(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionVelocityTangent(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionXTangent(), and oofem::MixedGradientPressureNeumann::integrateVolTangent().

◆ boundaryGiveNodes()

virtual IntArray oofem::FEInterpolation::boundaryGiveNodes ( int boundary,
const Element_Geometry_Type  ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::MixedGradientPressureNeumann::assemble(), oofem::MixedGradientPressureWeakPeriodic::assemble(), oofem::PrescribedMean::assemble(), oofem::SurfaceTensionBoundaryCondition::assemble(), oofem::TransportGradientNeumann::assemble(), oofem::WeakPeriodicBoundaryCondition::assemble(), oofem::MixedGradientPressureNeumann::assembleVector(), oofem::MixedGradientPressureWeakPeriodic::assembleVector(), oofem::SurfaceTensionBoundaryCondition::assembleVector(), oofem::TransportGradientNeumann::assembleVector(), oofem::CellTypeUnifiedInterpolation::boundaryGiveNodes(), oofem::TransportElement::computeBoundarySurfaceLoadVector(), oofem::SolutionbasedShapeFunction::computeCorrectionFactors(), oofem::WeakPeriodicBoundaryCondition::computeElementTangent(), oofem::MixedGradientPressureNeumann::computeFields(), oofem::GeometryBasedEI::computeIntersectionPoints(), oofem::Line::computeNumberOfIntersectionPoints(), oofem::TransportGradientNeumann::computeTangent(), oofem::TransportElement::computeTangentFromSurfaceLoad(), oofem::MixedGradientPressureNeumann::computeTangents(), oofem::PrescribedGradientBCWeak::findCrackBndIntersecCoord(), oofem::PrescribedGradientBCWeak::findHoleCoord(), oofem::Element::giveBoundaryNodes(), oofem::PrescribedMean::giveInternalForcesVector(), oofem::WeakPeriodicBoundaryCondition::giveInternalForcesVector(), oofem::MixedGradientPressureNeumann::giveLocationArrays(), oofem::MixedGradientPressureWeakPeriodic::giveLocationArrays(), oofem::SurfaceTensionBoundaryCondition::giveLocationArrays(), oofem::TransportGradientNeumann::giveLocationArrays(), oofem::SolutionbasedShapeFunction::initializeSurfaceData(), oofem::GnuplotExportModule::outputBoundaryCondition(), and oofem::GeometryBasedEI::updateNodeEnrMarker().

◆ boundaryGiveTransformationJacobian()

virtual double oofem::FEInterpolation::boundaryGiveTransformationJacobian ( int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEI2dQuadLinAxi, oofem::FEI2dQuadQuadAxi, oofem::FEI2dTrLinAxi, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::PrescribedMean::assemble(), oofem::WeakPeriodicBoundaryCondition::assemble(), oofem::CellTypeUnifiedInterpolation::boundaryGiveTransformationJacobian(), oofem::tet21ghostsolid::computeBoundarySurfaceLoadVector(), oofem::TransportElement::computeBoundarySurfaceLoadVector(), oofem::SolutionbasedShapeFunction::computeCorrectionFactors(), oofem::PrescribedMean::computeDomainSize(), oofem::WeakPeriodicBoundaryCondition::computeElementTangent(), oofem::SurfaceTensionBoundaryCondition::computeLoadVectorFromElement(), oofem::WeakPeriodicBoundaryCondition::computeProjectionCoefficient(), oofem::TransportElement::computeTangentFromEdgeLoad(), oofem::SurfaceTensionBoundaryCondition::computeTangentFromElement(), oofem::TransportElement::computeTangentFromSurfaceLoad(), oofem::WeakPeriodicBoundaryCondition::giveExternalForcesVector(), oofem::PrescribedMean::giveInternalForcesVector(), and oofem::WeakPeriodicBoundaryCondition::giveInternalForcesVector().

◆ boundaryLocal2Global()

virtual void oofem::FEInterpolation::boundaryLocal2Global ( FloatArray & answer,
int boundary,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::WeakPeriodicBoundaryCondition::assemble(), oofem::CellTypeUnifiedInterpolation::boundaryLocal2Global(), oofem::TransportElement::computeBoundaryEdgeLoadVector(), oofem::StructuralElement::computeBoundarySurfaceLoadVector(), oofem::TransportElement::computeBoundarySurfaceLoadVector(), oofem::SolutionbasedShapeFunction::computeCorrectionFactors(), oofem::WeakPeriodicBoundaryCondition::computeElementTangent(), oofem::TransportGradientNeumann::computeEta(), oofem::SurfaceTensionBoundaryCondition::computeLoadVectorFromElement(), oofem::WeakPeriodicBoundaryCondition::computeProjectionCoefficient(), oofem::MixedGradientPressureWeakPeriodic::computeStress(), oofem::TransportElement::computeTangentFromEdgeLoad(), oofem::SurfaceTensionBoundaryCondition::computeTangentFromElement(), oofem::TransportElement::computeTangentFromSurfaceLoad(), oofem::WeakPeriodicBoundaryCondition::giveExternalForcesVector(), oofem::WeakPeriodicBoundaryCondition::giveInternalForcesVector(), oofem::PrescribedGradientBCNeumann::integrateTangent(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentRStressConcrete(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentStress(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionDev(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionVelocityTangent(), and oofem::MixedGradientPressureWeakPeriodic::integrateTractionXTangent().

◆ boundarySurfaceEvaldNdx()

virtual void oofem::FEInterpolation::boundarySurfaceEvaldNdx ( FloatMatrix & answer,
int isurf,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::CellTypeUnifiedInterpolation::boundarySurfaceEvaldNdx().

◆ boundarySurfaceEvalN()

virtual void oofem::FEInterpolation::boundarySurfaceEvalN ( FloatArray & answer,
int isurf,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::CellTypeUnifiedInterpolation::boundarySurfaceEvalN(), oofem::MITC4Shell::computeSurfaceNMatrix(), and oofem::QDKTPlate::computeSurfaceNMatrix().

◆ boundarySurfaceEvalNormal()

virtual double oofem::FEInterpolation::boundarySurfaceEvalNormal ( FloatArray & answer,
int isurf,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::CellTypeUnifiedInterpolation::boundarySurfaceEvalNormal(), oofem::TMElement::computeFluxLBToLRotationMatrix(), and oofem::UPElement::computeFluxLBToLRotationMatrix().

◆ boundarySurfaceGiveNodes()

virtual IntArray oofem::FEInterpolation::boundarySurfaceGiveNodes ( int boundary,
const Element_Geometry_Type ,
bool includeHierarchical = false ) const
pure virtual

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)

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::CellTypeUnifiedInterpolation::boundarySurfaceGiveNodes(), oofem::MPElement::getSurfaceElementCodeNumbers(), oofem::Element::giveBoundarySurfaceNodes(), and oofem::MPElement::giveBoundarySurfaceNodes().

◆ boundarySurfaceGiveTransformationJacobian()

virtual double oofem::FEInterpolation::boundarySurfaceGiveTransformationJacobian ( int isurf,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::CellTypeUnifiedInterpolation::boundarySurfaceGiveTransformationJacobian(), oofem::MPElement::computeSurfaceVolumeAround(), and oofem::StructuralElement::computeSurfaceVolumeAround().

◆ boundarySurfaceLocal2global()

virtual void oofem::FEInterpolation::boundarySurfaceLocal2global ( FloatArray & answer,
int isurf,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEInterpolation1d, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Referenced by oofem::CellTypeUnifiedInterpolation::boundarySurfaceLocal2global(), and oofem::NTaTmTe::evaluate().

◆ errorInfo()

std::string oofem::FEInterpolation::errorInfo ( const char * func) const
inline

Definition at line 564 of file feinterpol.h.

◆ evald2Ndx2()

virtual void oofem::FEInterpolation::evald2Ndx2 ( FloatMatrix & answer,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlinevirtual

Evaluates the matrix of second 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.

Reimplemented in oofem::FEI1dHermite, oofem::FEI2dTrQuad, and oofem::FEI3dLineLin.

Definition at line 232 of file feinterpol.h.

References OOFEM_ERROR.

◆ evaldNdx()

virtual double oofem::FEInterpolation::evaldNdx ( FloatMatrix & answer,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEI1dHermite, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI2dLineConst, oofem::FEI2dLineHermite, oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI2dQuadConst, oofem::FEI2dQuadLin, oofem::FEI2dQuadQuad, oofem::FEI2dTrConst, oofem::FEI2dTrLin, oofem::FEI2dTrQuad, oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dHexaTriQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, oofem::NURBSInterpolation, and oofem::TSplineInterpolation.

Referenced by oofem::FEInterpolation2d::boundarySurfaceEvaldNdx(), oofem::PhaseFieldElement::computeBd_matrixAt(), oofem::SolidShell::computeBEmatrixAt(), oofem::AxisymElement::computeBHmatrixAt(), oofem::PlaneStrainElement::computeBHmatrixAt(), oofem::PlaneStressElement::computeBHmatrixAt(), oofem::SolidShell::computeBHmatrixAt(), oofem::Structural3DElement::computeBHmatrixAt(), oofem::PlaneStressStructuralElementEvaluator::computeBMatrixAt(), oofem::Space3dStructuralElementEvaluator::computeBMatrixAt(), oofem::AxisymElement::computeBmatrixAt(), oofem::L4Axisymm::computeBmatrixAt(), oofem::LSpace::computeBmatrixAt(), oofem::PlaneStrainElement::computeBmatrixAt(), oofem::PlaneStressElement::computeBmatrixAt(), oofem::SolidShell::computeBmatrixAt(), oofem::Structural3DElement::computeBmatrixAt(), oofem::XfemElementInterface::ComputeBOrBHMatrix(), oofem::WeakPeriodicBoundaryCondition::computeDeformationGradient(), oofem::MaterialForceEvaluator::computeMaterialForce(), oofem::QTrPlaneStrainP1::computeVolumetricBmatrixAt(), oofem::Quad1PlaneStrainP1::computeVolumetricBmatrixAt(), oofem::deltaB(), oofem::evalB(), oofem::CellTypeUnifiedInterpolation::evaldNdx(), oofem::GeometryBasedEI::evaluateEnrFuncDerivAt(), oofem::BTamNTerm::grad(), oofem::BTSigmaTerm2::grad(), oofem::BTSigTerm::grad(), oofem::gNTfTerm::grad(), oofem::NTamTBTerm::grad(), and oofem::PoissonTerm::grad().

◆ evaldNdxi()

virtual void oofem::FEInterpolation::evaldNdxi ( FloatMatrix & answer,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
inlinevirtual

Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point. These derivatives are wrt local (parent) coordinate system

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

Reimplemented in oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI2dQuadBiQuad, oofem::FEI2dQuadLin, oofem::FEI2dQuadQuad, oofem::FEI2dTrQuad, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dHexaTriQuad, oofem::FEI3dQuadLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, and oofem::FEI3dWedgeQuad.

Definition at line 243 of file feinterpol.h.

References OOFEM_ERROR.

Referenced by oofem::FEInterpolation2d::giveJacobianMatrixAt().

◆ evalN()

virtual void oofem::FEInterpolation::evalN ( FloatArray & answer,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEI1dHermite, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI2dLineConst, oofem::FEI2dLineHermite, oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI2dQuadBiQuad, oofem::FEI2dQuadConst, oofem::FEI2dQuadLin, oofem::FEI2dQuadQuad, oofem::FEI2dTrConst, oofem::FEI2dTrLin, oofem::FEI2dTrQuad, oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dHexaTriQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, oofem::NURBSInterpolation, and oofem::TSplineInterpolation.

Referenced by oofem::PrescribedMean::assemble(), oofem::PrescribedGradientBCWeak::assembleTangentGPContributionNew(), oofem::FEInterpolation2d::boundarySurfaceEvalN(), oofem::AxisymElement::computeBHmatrixAt(), oofem::AxisymElement::computeBmatrixAt(), oofem::L4Axisymm::computeBmatrixAt(), oofem::XfemElementInterface::ComputeBOrBHMatrix(), oofem::IntElLine1PF::computeDamageAt(), oofem::PhaseFieldElement::computeDamageAt(), oofem::LTRSpaceBoundary::computeGlobalCoordinates(), oofem::StructuralInterfaceElement::computeGlobalCoordinates(), oofem::GeometryBasedEI::computeIntersectionPoints(), oofem::TransportElement::computeLoadVector(), oofem::XfemElementInterface::computeNCohesive(), oofem::PhaseFieldElement::computeNd_matrixAt(), oofem::IntElLine1PF::computeNd_vectorAt(), oofem::PlaneStressStructuralElementEvaluator::computeNMatrixAt(), oofem::Space3dStructuralElementEvaluator::computeNMatrixAt(), oofem::DKTPlate::computeNmatrixAt(), oofem::QDKTPlate::computeNmatrixAt(), oofem::Quad1PlaneStrainP1::computePressureNMatrixAt(), oofem::CellTypeUnifiedInterpolation::evalN(), oofem::DofManValueField::evaluateAt(), oofem::SmoothedNodalInternalVariableField::evaluateAt(), oofem::GeometryBasedEI::evaluateEnrFuncAt(), oofem::GeometryBasedEI::evaluateEnrFuncDerivAt(), oofem::GeometryBasedEI::evaluateEnrFuncJumps(), oofem::evalVolumeFraction(), oofem::SADGBoundaryElement::giveCharacteristicMatrix(), oofem::PlaneStress2dXfem::giveCompositeExportData(), oofem::QTrPlaneStress2dXFEM::giveCompositeExportData(), oofem::PrescribedMean::giveInternalForcesVector(), oofem::Shell7Base::giveL2contribution(), oofem::XfemStructuralElementInterface::giveSubtriangulationCompositeExportData(), oofem::StokesFlowVelocityHomogenization::integrateNMatrix(), oofem::PrescribedGradientBCNeumann::integrateTangent(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentBStressConcrete(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentBStressSteel(), oofem::TransverseReinfConstraint::integrateTangentOnSteel(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentRStressConcrete(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentStress(), oofem::UnstructuredGridField::Cell::interpolate(), oofem::MMAShapeFunctProjection::interpolateIntVarAt(), oofem::Inclusion::isMaterialModified(), oofem::Shell7Base::nodalLeastSquareFitFromIP(), oofem::XfemElementInterface::partitionEdgeSegment(), oofem::HangingNode::postInitialize(), oofem::qcNode::postInitializeAsHangingNode(), oofem::PLHoopStressCirc::propagateInterface(), oofem::PLPrincipalStrain::propagateInterface(), oofem::EnrichmentItem::tipIsTouchingEI(), oofem::XfemElementInterface::XfemElementInterface_createEnrNmatrixAt(), oofem::ZZErrorEstimatorInterface::ZZErrorEstimatorI_computeElementContributions(), oofem::Shell7Base::ZZNodalRecoveryMI_ComputeEstimatedInterpolationMtrx(), oofem::Tr_Warp::ZZNodalRecoveryMI_computeNNMatrix(), oofem::ZZNodalRecoveryModelInterface::ZZNodalRecoveryMI_computeNNMatrix(), oofem::Tr_Warp::ZZNodalRecoveryMI_computeNValProduct(), and oofem::ZZNodalRecoveryModelInterface::ZZNodalRecoveryMI_computeNValProduct().

◆ evalNXIntegral()

◆ giveBoundaryEdgeIntegrationDomain()

◆ giveBoundaryEdgeIntegrationRule()

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

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 in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::FEInterpolation1d, and oofem::FEInterpolation3d.

Definition at line 112 of file feinterpol.C.

References giveBoundaryEdgeIntegrationDomain(), and order.

Referenced by oofem::TMElement::computeBoundaryEdgeLoadVector(), oofem::UPElement::computeBoundaryEdgeLoadVector(), giveBoundaryEdgeIntegrationDomain(), oofem::CellTypeUnifiedInterpolation::giveBoundaryEdgeIntegrationRule(), oofem::Element::giveBoundaryEdgeIntegrationRule(), oofem::TMElement::giveCharacteristicMatrixFromBC(), oofem::TMElement::giveCharacteristicVectorFromBC(), and oofem::PrescribedDispSlipBCNeumannRC::integrateTangentRStressConcrete().

◆ giveBoundaryGeometryType()

◆ giveBoundaryIntegrationDomain()

◆ giveBoundaryIntegrationRule()

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

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 in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dHexaTriQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, oofem::FEInterpolation1d, and oofem::FEInterpolation3d.

Definition at line 101 of file feinterpol.C.

References giveBoundaryIntegrationDomain(), and order.

Referenced by oofem::PrescribedMean::assemble(), oofem::WeakPeriodicBoundaryCondition::assemble(), oofem::tet21ghostsolid::computeBoundarySurfaceLoadVector(), oofem::SolutionbasedShapeFunction::computeCorrectionFactors(), oofem::PrescribedMean::computeDomainSize(), oofem::WeakPeriodicBoundaryCondition::computeElementTangent(), oofem::TransportGradientNeumann::computeEta(), oofem::SurfaceTensionBoundaryCondition::computeLoadVectorFromElement(), oofem::WeakPeriodicBoundaryCondition::computeProjectionCoefficient(), oofem::MixedGradientPressureWeakPeriodic::computeStress(), oofem::SurfaceTensionBoundaryCondition::computeTangentFromElement(), giveBoundaryIntegrationDomain(), oofem::CellTypeUnifiedInterpolation::giveBoundaryIntegrationRule(), oofem::WeakPeriodicBoundaryCondition::giveExternalForcesVector(), oofem::PrescribedMean::giveInternalForcesVector(), oofem::WeakPeriodicBoundaryCondition::giveInternalForcesVector(), oofem::MixedGradientPressureNeumann::integrateDevTangent(), oofem::PrescribedGradientBCNeumann::integrateTangent(), oofem::TransportGradientNeumann::integrateTangent(), oofem::TransverseReinfConstraint::integrateTangentOnConcrete(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentStress(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionDev(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionVelocityTangent(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionXTangent(), and oofem::MixedGradientPressureNeumann::integrateVolTangent().

◆ giveBoundarySurfaceIntegrationDomain()

◆ giveBoundarySurfaceIntegrationRule()

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

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 in oofem::CellTypeUnifiedInterpolation.

Definition at line 123 of file feinterpol.C.

References giveBoundarySurfaceIntegrationDomain(), and order.

Referenced by oofem::TMElement::computeBoundarySurfaceLoadVector(), oofem::UPElement::computeBoundarySurfaceLoadVector(), giveBoundarySurfaceIntegrationDomain(), oofem::CellTypeUnifiedInterpolation::giveBoundarySurfaceIntegrationRule(), oofem::Element::giveBoundarySurfaceIntegrationRule(), oofem::TMElement::giveCharacteristicMatrixFromBC(), and oofem::TMElement::giveCharacteristicVectorFromBC().

◆ giveCellDofMans()

virtual void oofem::FEInterpolation::giveCellDofMans ( IntArray & nodes,
IntArray & internalDofMans,
Element * elem ) const
inlinevirtual

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 in oofem::CellTypeUnifiedInterpolation, oofem::FEI2dLineConst, oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI2dQuadConst, oofem::FEI2dQuadLin, oofem::FEI2dQuadQuad, oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dTetLin, and oofem::FEI3dTetQuad.

Definition at line 208 of file feinterpol.h.

Referenced by oofem::Integral::getElementTermCodeNumbers(), oofem::MPElement::getUnknownVector(), and oofem::CellTypeUnifiedInterpolation::giveCellDofMans().

◆ giveGeometryType()

◆ giveIntegrationDomain()

◆ giveIntegrationRule()

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

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 in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::FEI2dLineConst, oofem::FEI2dLineHermite, oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI2dQuadBiQuad, oofem::FEI2dQuadConst, oofem::FEI2dQuadLin, oofem::FEI2dQuadQuad, oofem::FEI2dTrConst, oofem::FEI2dTrLin, oofem::FEI2dTrQuad, oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dHexaTriQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, and oofem::FEInterpolation1d.

Definition at line 90 of file feinterpol.C.

References giveIntegrationDomain(), and order.

Referenced by oofem::PrescribedMean::assemble(), oofem::PrescribedMean::computeDomainSize(), oofem::PrescribedDispSlipBCNeumannRC::computeInterfaceLength(), oofem::TransportElement::computeLoadVector(), oofem::PrescribedDispSlipBCNeumannRC::computeWeightMatrix(), oofem::NeumannMomentLoad::computeXbar(), oofem::PrescribedDispSlipBCDirichletRC::domainSize(), oofem::PrescribedDispSlipBCNeumannRC::domainSize(), oofem::CellTypeUnifiedInterpolation::giveIntegrationRule(), oofem::PrescribedMean::giveInternalForcesVector(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentBStressConcrete(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentBStressSteel(), oofem::TransverseReinfConstraint::integrateTangentOnSteel(), and oofem::PrescribedDispSlipBCNeumannRC::integrateTangentRStressSteel().

◆ giveInterpolationOrder()

int oofem::FEInterpolation::giveInterpolationOrder ( ) const
inline

Returns the interpolation order.

Definition at line 199 of file feinterpol.h.

References order.

Referenced by oofem::TMElement::computeBoundaryEdgeLoadVector(), oofem::TransportElement::computeBoundaryEdgeLoadVector(), oofem::UPElement::computeBoundaryEdgeLoadVector(), oofem::TMElement::computeBoundarySurfaceLoadVector(), oofem::TransportElement::computeBoundarySurfaceLoadVector(), oofem::UPElement::computeBoundarySurfaceLoadVector(), oofem::TransportGradientNeumann::computeEta(), oofem::PrescribedDispSlipBCNeumannRC::computeInterfaceLength(), oofem::TransportElement::computeLoadVector(), oofem::SurfaceTensionBoundaryCondition::computeLoadVectorFromElement(), oofem::MixedGradientPressureWeakPeriodic::computeStress(), oofem::TransportElement::computeTangentFromEdgeLoad(), oofem::SurfaceTensionBoundaryCondition::computeTangentFromElement(), oofem::TransportElement::computeTangentFromSurfaceLoad(), oofem::PrescribedDispSlipBCNeumannRC::computeWeightMatrix(), oofem::TransportGradientDirichlet::computeXi(), oofem::PrescribedDispSlipBCDirichletRC::domainSize(), oofem::PrescribedDispSlipBCNeumannRC::domainSize(), oofem::HuertaRemeshingCriteria::estimateMeshDensities(), oofem::TMElement::giveCharacteristicMatrixFromBC(), oofem::TMElement::giveCharacteristicVectorFromBC(), oofem::MixedGradientPressureNeumann::integrateDevTangent(), oofem::PrescribedGradientBCNeumann::integrateTangent(), oofem::TransportGradientNeumann::integrateTangent(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentBStressConcrete(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentBStressSteel(), oofem::TransverseReinfConstraint::integrateTangentOnConcrete(), oofem::TransverseReinfConstraint::integrateTangentOnSteel(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentRStressConcrete(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentRStressSteel(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentStress(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionDev(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionVelocityTangent(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionXTangent(), and oofem::MixedGradientPressureNeumann::integrateVolTangent().

◆ giveJacobianMatrixAt()

◆ giveKnotMultiplicity()

virtual const IntArray * oofem::FEInterpolation::giveKnotMultiplicity ( int dim) const
inlinevirtual

Returns the knot multiplicity of the receiver.

Reimplemented in oofem::BSplineInterpolation, and oofem::CellTypeUnifiedInterpolation.

Definition at line 542 of file feinterpol.h.

Referenced by oofem::IGAElement::initializeFinish(), and oofem::IGATSplineElement::initializeFinish().

◆ giveKnotSpanBasisFuncMask()

virtual int oofem::FEInterpolation::giveKnotSpanBasisFuncMask ( const IntArray & knotSpan,
IntArray & mask ) const
inlinevirtual

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 in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, and oofem::TSplineInterpolation.

Definition at line 517 of file feinterpol.h.

Referenced by oofem::StructuralElementEvaluator::giveIntegrationElementLocalCodeNumbers().

◆ giveKnotValues()

virtual const FloatArray * oofem::FEInterpolation::giveKnotValues ( int dim) const
inlinevirtual

Returns the knot values of the receiver.

Reimplemented in oofem::BSplineInterpolation, and oofem::CellTypeUnifiedInterpolation.

Definition at line 538 of file feinterpol.h.

Referenced by oofem::IGAElement::initializeFinish(), and oofem::IGATSplineElement::initializeFinish().

◆ giveKnotVector()

◆ giveLocalNodeCoords()

virtual void oofem::FEInterpolation::giveLocalNodeCoords ( FloatMatrix & answer,
const Element_Geometry_Type  ) const
inlinevirtual

Returns a matrix containing the local coordinates for each node corresponding to the interpolation

Reimplemented in oofem::FEI3dTrQuad, and oofem::FEI3dWedgeQuad.

Definition at line 250 of file feinterpol.h.

References OOFEM_ERROR.

◆ giveNsd()

◆ giveNumberOfEdges()

◆ giveNumberOfKnotSpanBasisFunctions()

virtual int oofem::FEInterpolation::giveNumberOfKnotSpanBasisFunctions ( const IntArray & knotSpan) const
inlinevirtual

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

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

Reimplemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, and oofem::TSplineInterpolation.

Definition at line 522 of file feinterpol.h.

◆ giveNumberOfKnotSpans()

virtual int oofem::FEInterpolation::giveNumberOfKnotSpans ( int dim) const
inlinevirtual

Returns the number of knot spans of the receiver.

Reimplemented in oofem::BSplineInterpolation, and oofem::CellTypeUnifiedInterpolation.

Definition at line 534 of file feinterpol.h.

Referenced by oofem::IGAElement::initializeFinish(), and oofem::IGATSplineElement::initializeFinish().

◆ giveNumberOfNodes()

◆ giveTransformationJacobian()

double oofem::FEInterpolation::giveTransformationJacobian ( const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
virtual

Evaluates the determinant of the transformation.

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

Reimplemented in oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEI1dHermite, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI2dLineConst, oofem::FEI2dLineHermite, oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI2dQuadLinAxi, oofem::FEI2dQuadQuadAxi, oofem::FEI2dTrConst, oofem::FEI2dTrLin, oofem::FEI2dTrLinAxi, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dWedgeLin, and oofem::FEI3dWedgeQuad.

Definition at line 81 of file feinterpol.C.

References oofem::FloatMatrix::giveDeterminant(), and giveJacobianMatrixAt().

Referenced by oofem::PrescribedMean::assemble(), oofem::FEInterpolation2d::boundarySurfaceEvalNormal(), oofem::FEInterpolation2d::boundarySurfaceGiveTransformationJacobian(), oofem::NLStructuralElement::computeCurrentVolume(), oofem::PrescribedMean::computeDomainSize(), oofem::SolidShell::computeEASBmatrixAt(), oofem::PrescribedDispSlipBCNeumannRC::computeInterfaceLength(), oofem::MPElement::computeVolumeAround(), oofem::TR1_2D_SUPG2::computeVolumeAroundID(), oofem::TR1_2D_SUPG2_AXI::computeVolumeAroundID(), oofem::PrescribedDispSlipBCNeumannRC::computeWeightMatrix(), oofem::NeumannMomentLoad::computeXbar(), oofem::MatlabExportModule::doOutputHomogenizeDofIDs(), oofem::PrescribedMean::giveInternalForcesVector(), oofem::CellTypeUnifiedInterpolation::giveTransformationJacobian(), oofem::FEI2dQuadLinAxi::giveTransformationJacobian(), oofem::FEI2dQuadQuadAxi::giveTransformationJacobian(), global2local(), oofem::StokesFlowVelocityHomogenization::integrateNMatrix(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentBStressConcrete(), oofem::PrescribedDispSlipBCNeumannRC::integrateTangentBStressSteel(), and oofem::PrescribedDispSlipBCNeumannRC::integrateTangentRStressSteel().

◆ global2local()

virtual int oofem::FEInterpolation::global2local ( FloatArray & answer,
const FloatArray & gcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

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.

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEI1dHermite, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI2dLineConst, oofem::FEI2dLineHermite, oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI2dQuadLin, oofem::FEI2dTrConst, oofem::FEI2dTrLin, oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, oofem::FEInterpolation2d, oofem::NURBSInterpolation, and oofem::TSplineInterpolation.

References giveTransformationJacobian().

Referenced by oofem::WeakPeriodicBoundaryCondition::assemble(), oofem::WeakPeriodicBoundaryCondition::computeElementTangent(), oofem::Element::computeLocalCoordinates(), oofem::NeumannMomentLoad::computeValueAtBoundary(), oofem::DofManValueField::evaluateAt(), oofem::SmoothedNodalInternalVariableField::evaluateAt(), oofem::UnstructuredGridField::Cell::giveClosestPoint(), oofem::WeakPeriodicBoundaryCondition::giveInternalForcesVector(), oofem::CellTypeUnifiedInterpolation::global2local(), oofem::UnstructuredGridField::Cell::interpolate(), oofem::HangingNode::postInitialize(), oofem::qcNode::postInitializeAsHangingNode(), and oofem::SpatialLocalizerInterface::SpatialLocalizerI_giveClosestPoint().

◆ hasSubPatchFormulation()

virtual bool oofem::FEInterpolation::hasSubPatchFormulation ( ) const
inlinevirtual

◆ initializeCell()

virtual void oofem::FEInterpolation::initializeCell ( Element * e) const
inlinevirtual

MPM support for cell initialization. Standard FE interpolation classes do not require element initialization, as elements are tailored to specific interpolation

Reimplemented in oofem::ConstantInterpolation, oofem::LinearInterpolation, and oofem::QuadraticInterpolation.

Definition at line 562 of file feinterpol.h.

◆ initializeFrom()

virtual void oofem::FEInterpolation::initializeFrom ( InputRecord & ir,
ParameterManager & pm,
int elnum,
int priority )
inlinevirtual

Initializes receiver according to object description stored in input record.

Reimplemented in oofem::BSplineInterpolation, oofem::NURBSInterpolation, and oofem::TSplineInterpolation.

Definition at line 183 of file feinterpol.h.

◆ local2global()

virtual void oofem::FEInterpolation::local2global ( FloatArray & answer,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
pure virtual

Evaluates global coordinates from given local ones.

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

Implemented in oofem::BSplineInterpolation, oofem::CellTypeUnifiedInterpolation, oofem::DummyFEInterpolation, oofem::FEI1dHermite, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI2dLineConst, oofem::FEI2dLineHermite, oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI2dQuadConst, oofem::FEI2dQuadLin, oofem::FEI2dQuadQuad, oofem::FEI2dTrConst, oofem::FEI2dTrLin, oofem::FEI2dTrQuad, oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, oofem::NURBSInterpolation, and oofem::TSplineInterpolation.

Referenced by oofem::FEInterpolation2d::boundarySurfaceLocal2global(), oofem::FEContactSurface::computeContactPointLocalCoordinates_2d(), oofem::FEContactSurface::computeContactPointLocalCoordinates_3d(), oofem::Element::computeGlobalCoordinates(), oofem::NeumannMomentLoad::computeXbar(), oofem::StructuralElementEvaluator::drawIGAPatchDeformedGeometry, oofem::IGAElement::drawRawGeometry(), oofem::BsplinePlaneStressElement::drawScalar(), oofem::NURBSPlaneStressElement::drawScalar(), oofem::NURBSSpace3dElement::drawScalar(), oofem::TSplinePlaneStressElement::drawScalar(), oofem::BodyFluxFunctor::evaluate(), oofem::BoundaryFluxFunctor::evaluate(), oofem::dnTaN::evaluate_lin(), oofem::SADGBoundaryElement::giveCharacteristicMatrix(), oofem::UnstructuredGridField::Cell::giveClosestPoint(), oofem::FEInterpolation2d::global2local(), oofem::CellTypeUnifiedInterpolation::local2global(), oofem::SpatialLocalizerInterface::SpatialLocalizerI_giveClosestPoint(), oofem::TR1_2D_SUPG2::updateIntegrationRules(), and oofem::TR1_2D_SUPG2_AXI::updateIntegrationRules().

◆ postInitialize()

virtual void oofem::FEInterpolation::postInitialize ( ParameterManager & pm,
int elnum )
inlinevirtual

Reimplemented in oofem::BSplineInterpolation, and oofem::NURBSInterpolation.

Definition at line 184 of file feinterpol.h.

Referenced by oofem::IGAElement::initializeFinish().

◆ surfaceEvald2Ndxi2()

virtual void oofem::FEInterpolation::surfaceEvald2Ndxi2 ( FloatMatrix & answer,
const FloatArray & lcoords ) const
inlinevirtual

Evaluates the matrix of second derivatives of surface interpolation functions (shape functions) wrt parametric coordinates at given point.

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

Reimplemented in oofem::FEI2dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTrLin, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Definition at line 507 of file feinterpol.h.

◆ surfaceEvaldNdxi()

virtual void oofem::FEInterpolation::surfaceEvaldNdxi ( FloatMatrix & answer,
const FloatArray & lcoords ) const
inlinevirtual

Evaluates the matrix of derivatives of surface interpolation functions (shape functions) wrt parametric coordinates at given point.

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

Reimplemented in oofem::FEI2dLineLin, oofem::FEI3dHexaLin, oofem::FEI3dQuadLin, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEInterpolation2d, and oofem::FEInterpolation3d.

Definition at line 501 of file feinterpol.h.

Member Data Documentation

◆ order

int oofem::FEInterpolation::order = 0
protected

Definition at line 177 of file feinterpol.h.

Referenced by oofem::FEInterpolation3d::computeLocalSurfaceMapping(), FEInterpolation(), giveBoundaryEdgeIntegrationDomain(), oofem::BSplineInterpolation::giveBoundaryEdgeIntegrationRule(), oofem::FEInterpolation1d::giveBoundaryEdgeIntegrationRule(), oofem::FEInterpolation3d::giveBoundaryEdgeIntegrationRule(), giveBoundaryEdgeIntegrationRule(), giveBoundaryIntegrationDomain(), oofem::BSplineInterpolation::giveBoundaryIntegrationRule(), oofem::FEI3dHexaConst::giveBoundaryIntegrationRule(), oofem::FEI3dHexaLin::giveBoundaryIntegrationRule(), oofem::FEI3dHexaQuad::giveBoundaryIntegrationRule(), oofem::FEI3dHexaTriQuad::giveBoundaryIntegrationRule(), oofem::FEI3dLineLin::giveBoundaryIntegrationRule(), oofem::FEI3dQuadLin::giveBoundaryIntegrationRule(), oofem::FEI3dTetLin::giveBoundaryIntegrationRule(), oofem::FEI3dTetQuad::giveBoundaryIntegrationRule(), oofem::FEI3dTrLin::giveBoundaryIntegrationRule(), oofem::FEI3dTrQuad::giveBoundaryIntegrationRule(), oofem::FEI3dWedgeLin::giveBoundaryIntegrationRule(), oofem::FEI3dWedgeQuad::giveBoundaryIntegrationRule(), oofem::FEInterpolation1d::giveBoundaryIntegrationRule(), giveBoundaryIntegrationRule(), giveBoundarySurfaceIntegrationDomain(), giveBoundarySurfaceIntegrationRule(), oofem::CellTypeUnifiedInterpolation::giveCellDofManNumberingOffsets(), oofem::BSplineInterpolation::giveIntegrationRule(), oofem::FEI2dLineConst::giveIntegrationRule(), oofem::FEI2dLineHermite::giveIntegrationRule(), oofem::FEI2dLineLin::giveIntegrationRule(), oofem::FEI2dLineQuad::giveIntegrationRule(), oofem::FEI2dQuadBiQuad::giveIntegrationRule(), oofem::FEI2dQuadConst::giveIntegrationRule(), oofem::FEI2dQuadLin::giveIntegrationRule(), oofem::FEI2dQuadQuad::giveIntegrationRule(), oofem::FEI2dTrConst::giveIntegrationRule(), oofem::FEI2dTrLin::giveIntegrationRule(), oofem::FEI2dTrQuad::giveIntegrationRule(), oofem::FEI3dHexaConst::giveIntegrationRule(), oofem::FEI3dHexaLin::giveIntegrationRule(), oofem::FEI3dHexaQuad::giveIntegrationRule(), oofem::FEI3dHexaTriQuad::giveIntegrationRule(), oofem::FEI3dLineLin::giveIntegrationRule(), oofem::FEI3dQuadLin::giveIntegrationRule(), oofem::FEI3dTetLin::giveIntegrationRule(), oofem::FEI3dTetQuad::giveIntegrationRule(), oofem::FEI3dTrLin::giveIntegrationRule(), oofem::FEI3dTrQuad::giveIntegrationRule(), oofem::FEI3dWedgeLin::giveIntegrationRule(), oofem::FEI3dWedgeQuad::giveIntegrationRule(), oofem::FEInterpolation1d::giveIntegrationRule(), giveIntegrationRule(), giveInterpolationOrder(), oofem::FEI3dWedgeLin::giveSurfaceIntegrationRule(), and oofem::FEI3dWedgeQuad::giveSurfaceIntegrationRule().


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

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