OOFEM 3.0
Loading...
Searching...
No Matches
oofem::FEI1dHermite Class Reference

#include <fei1dhermite.h>

Inheritance diagram for oofem::FEI1dHermite:
Collaboration diagram for oofem::FEI1dHermite:

Public Member Functions

 FEI1dHermite (int coordIndx)
integrationDomain giveIntegrationDomain (const Element_Geometry_Type) const override
const Element_Geometry_Type giveGeometryType () const override
double giveLength (const FEICellGeometry &cellgeo) const override
std::pair< double, FloatMatrixF< 1, 4 > > evaldNdx (double ksi, const FEICellGeometry &cellgeo) const
FloatMatrixF< 1, 4 > evald2Ndx2 (double ksi, const FEICellGeometry &cellgeo) const
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 evald2Ndx2 (FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
void local2global (FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
int global2local (FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
double giveTransformationJacobian (const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
int giveNumberOfNodes (const Element_Geometry_Type) const override
Public Member Functions inherited from oofem::FEInterpolation1d
 FEInterpolation1d (int o)
int giveNsd (const Element_Geometry_Type) const override
IntArray boundaryGiveNodes (int boundary, const Element_Geometry_Type) 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
const Element_Geometry_Type giveBoundaryGeometryType (int boundary) 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
IntArray boundarySurfaceGiveNodes (int boundary, const Element_Geometry_Type, bool includeHierarchical=false) const override
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
std::unique_ptr< IntegrationRulegiveIntegrationRule (int order, const Element_Geometry_Type) const override
std::unique_ptr< IntegrationRulegiveBoundaryIntegrationRule (int order, int boundary, const Element_Geometry_Type) const override
std::unique_ptr< IntegrationRulegiveBoundaryEdgeIntegrationRule (int order, int boundary, const Element_Geometry_Type) const override
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)
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 evaldNdxi (FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const
virtual void giveLocalNodeCoords (FloatMatrix &answer, const Element_Geometry_Type) const
virtual void giveJacobianMatrixAt (FloatMatrix &jacobianMatrix, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const
virtual integrationDomain giveBoundaryEdgeIntegrationDomain (int boundary, const Element_Geometry_Type) const =0
 Returns boundary integration domain.
virtual IntArray boundaryEdgeGiveNodes (int boundary, const Element_Geometry_Type, bool includeHierarchical=false) 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 double evalNXIntegral (int boundary, const FEICellGeometry &cellgeo) const
virtual integrationDomain giveBoundaryIntegrationDomain (int boundary, const Element_Geometry_Type) const =0
 Returns boundary integration domain.
virtual void surfaceEvaldNdxi (FloatMatrix &answer, const FloatArray &lcoords) const
virtual void surfaceEvald2Ndxi2 (FloatMatrix &answer, const FloatArray &lcoords) const
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 giveNumberOfEdges (const Element_Geometry_Type) const
virtual void initializeCell (Element *e) const
std::string errorInfo (const char *func) const

Protected Attributes

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

Detailed Description

Class representing a 1d Hermitian cubic isoparametric interpolation.

Author
Mikael Öhman

Definition at line 45 of file fei1dhermite.h.

Constructor & Destructor Documentation

◆ FEI1dHermite()

oofem::FEI1dHermite::FEI1dHermite ( int coordIndx)
inline

Definition at line 51 of file fei1dhermite.h.

References cindx, and oofem::FEInterpolation1d::FEInterpolation1d().

Member Function Documentation

◆ evald2Ndx2() [1/2]

FloatMatrixF< 1, 4 > oofem::FEI1dHermite::evald2Ndx2 ( double ksi,
const FEICellGeometry & cellgeo ) const

Definition at line 92 of file fei1dhermite.C.

References giveLength().

◆ evald2Ndx2() [2/2]

void oofem::FEI1dHermite::evald2Ndx2 ( FloatMatrix & answer,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
overridevirtual

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 from oofem::FEInterpolation.

Definition at line 105 of file fei1dhermite.C.

References oofem::FloatArray::at(), oofem::FloatMatrix::at(), giveLength(), oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().

◆ evaldNdx() [1/2]

std::pair< double, FloatMatrixF< 1, 4 > > oofem::FEI1dHermite::evaldNdx ( double ksi,
const FEICellGeometry & cellgeo ) const

Definition at line 60 of file fei1dhermite.C.

References giveLength().

◆ evaldNdx() [2/2]

double oofem::FEI1dHermite::evaldNdx ( FloatMatrix & answer,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
overridevirtual

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 74 of file fei1dhermite.C.

References oofem::FloatArray::at(), oofem::FloatMatrix::at(), giveLength(), oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().

◆ evalN()

void oofem::FEI1dHermite::evalN ( FloatArray & answer,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
overridevirtual

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 45 of file fei1dhermite.C.

References oofem::FloatArray::at(), giveLength(), oofem::FloatArray::resize(), and oofem::FloatArray::zero().

Referenced by local2global().

◆ giveGeometryType()

const Element_Geometry_Type oofem::FEI1dHermite::giveGeometryType ( ) const
inlineoverridevirtual

Returns the geometry type fo the interpolator.

Implements oofem::FEInterpolation.

Definition at line 54 of file fei1dhermite.h.

◆ giveIntegrationDomain()

integrationDomain oofem::FEI1dHermite::giveIntegrationDomain ( const Element_Geometry_Type ) const
inlineoverridevirtual

Returns the integration domain of the interpolator.

Implements oofem::FEInterpolation.

Definition at line 53 of file fei1dhermite.h.

References oofem::_Line.

◆ giveLength()

double oofem::FEI1dHermite::giveLength ( const FEICellGeometry & cellgeo) const
overridevirtual

Computes the exact length.

Parameters
cellgeoCell geometry for the element.
Returns
Length of geometry.

Reimplemented from oofem::FEInterpolation1d.

Definition at line 152 of file fei1dhermite.C.

References oofem::FloatArray::at(), cindx, and oofem::FEICellGeometry::giveVertexCoordinates().

Referenced by evald2Ndx2(), evald2Ndx2(), evaldNdx(), evaldNdx(), evalN(), and giveTransformationJacobian().

◆ giveNumberOfNodes()

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

Returns the number of geometric nodes of the receiver.

Reimplemented from oofem::FEInterpolation.

Definition at line 68 of file fei1dhermite.h.

◆ giveTransformationJacobian()

double oofem::FEI1dHermite::giveTransformationJacobian ( const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
overridevirtual

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 144 of file fei1dhermite.C.

References giveLength().

◆ global2local()

int oofem::FEI1dHermite::global2local ( FloatArray & answer,
const FloatArray & gcoords,
const FEICellGeometry & cellgeo ) const
overridevirtual

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 132 of file fei1dhermite.C.

References oofem::FloatArray::at(), cindx, oofem::clamp(), oofem::FEICellGeometry::giveVertexCoordinates(), and oofem::FloatArray::resize().

◆ local2global()

void oofem::FEI1dHermite::local2global ( FloatArray & answer,
const FloatArray & lcoords,
const FEICellGeometry & cellgeo ) const
overridevirtual

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 120 of file fei1dhermite.C.

References oofem::FloatArray::at(), cindx, evalN(), oofem::FEICellGeometry::giveVertexCoordinates(), and oofem::FloatArray::resize().

Member Data Documentation

◆ cindx

int oofem::FEI1dHermite::cindx
protected

Definition at line 48 of file fei1dhermite.h.

Referenced by FEI1dHermite(), giveLength(), global2local(), and local2global().


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