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

#include <fei2dquadbiquad.h>

Inheritance diagram for oofem::FEI2dQuadBiQuad:
Collaboration diagram for oofem::FEI2dQuadBiQuad:

Public Member Functions

 FEI2dQuadBiQuad (int ind1, int ind2)
std::pair< double, FloatMatrixF< 2, 9 > > _evaldNdx (const FloatArrayF< 2 > &lcoords, const FEICellGeometry &cellgeo) const
void evalN (FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
void evaldNdxi (FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
int giveNumberOfNodes (const Element_Geometry_Type) const override
std::unique_ptr< IntegrationRulegiveIntegrationRule (int order, const Element_Geometry_Type) const override
Public Member Functions inherited from oofem::FEI2dQuadQuad
 FEI2dQuadQuad (int ind1, int ind2)
integrationDomain giveIntegrationDomain (const Element_Geometry_Type) const override
const Element_Geometry_Type giveGeometryType () const override
const Element_Geometry_Type giveBoundaryGeometryType (int boundary) const override
integrationDomain giveBoundaryIntegrationDomain (int ib, const Element_Geometry_Type) const override
 Returns boundary integration domain.
integrationDomain giveBoundarySurfaceIntegrationDomain (int isurf, const Element_Geometry_Type) const override
 Returns boundary integration domain.
integrationDomain giveBoundaryEdgeIntegrationDomain (int iedge, const Element_Geometry_Type) const override
 Returns boundary integration domain.
double giveArea (const FEICellGeometry &cellgeo) const override
std::pair< double, FloatMatrixF< 2, 8 > > evaldNdx (const FloatArrayF< 2 > &lcoords, 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 evaldNdxi (FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
void local2global (FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
int giveNumberOfNodes (const Element_Geometry_Type) const override
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.
double giveCharacteristicLength (const FEICellGeometry &cellgeo) const override
bool inside (const FloatArray &lcoords) const override
IntArray computeLocalEdgeMapping (int iedge) const override
void edgeEvalN (FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
void edgeEvaldNds (FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
void edgeLocal2global (FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
double edgeEvalNormal (FloatArray &normal, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
double evalNXIntegral (int iEdge, const FEICellGeometry &cellgeo) const override
std::unique_ptr< IntegrationRulegiveIntegrationRule (int order, const Element_Geometry_Type) const override
Public Member Functions inherited from oofem::FEInterpolation2d
 FEInterpolation2d (int o, int ind1, int ind2)
int giveNsd (const Element_Geometry_Type) const override
int global2local (FloatArray &answer, const FloatArray &gcoords, const FEICellGeometry &cellgeo) const override
void giveJacobianMatrixAt (FloatMatrix &jacobianMatrix, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const override
IntArray boundaryEdgeGiveNodes (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
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
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
virtual FloatArrayF< 2 > surfaceEvalBaseVectorsAt (int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const
virtual void surfaceEvaldNdxi (FloatMatrix &answer, const FloatArray &lcoords) const override
virtual void surfaceEvald2Ndxi2 (FloatMatrix &answer, const FloatArray &lcoords) const override
IntArray computeEdgeMapping (const IntArray &elemNodes, int iedge) const
virtual double edgeGiveTransformationJacobian (int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo) 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)
int giveInterpolationOrder () const
virtual void evald2Ndx2 (FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const
virtual void giveLocalNodeCoords (FloatMatrix &answer, const Element_Geometry_Type) const
virtual double giveTransformationJacobian (const FloatArray &lcoords, const FEICellGeometry &cellgeo) const
virtual std::unique_ptr< IntegrationRulegiveBoundaryEdgeIntegrationRule (int order, int boundary, const Element_Geometry_Type) const
virtual std::unique_ptr< IntegrationRulegiveBoundarySurfaceIntegrationRule (int order, int boundary, const Element_Geometry_Type) const
virtual std::unique_ptr< IntegrationRulegiveBoundaryIntegrationRule (int order, int boundary, const Element_Geometry_Type) 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

Static Public Member Functions

static FloatArrayF< 9 > evalN (const FloatArrayF< 2 > &lcoords)
static FloatMatrixF< 2, 9 > evaldNdxi (const FloatArrayF< 2 > &lcoords)
Static Public Member Functions inherited from oofem::FEI2dQuadQuad
static FloatArrayF< 8 > evalN (const FloatArrayF< 2 > &lcoords)
static FloatMatrixF< 2, 8 > evaldNdxi (const FloatArrayF< 2 > &lcoords)

Additional Inherited Members

Protected Attributes inherited from oofem::FEInterpolation2d
int xind
int yind
Protected Attributes inherited from oofem::FEInterpolation
int order = 0

Detailed Description

Class representing a 2d quadrilateral with bi-quadratic interpolation based on isoparametric coordinates. Local Node Numbering ^ eta | (4)–(7)–(3) | | | | (8) (9) (6)-->ksi | | | | (1)–(5)–(2) Everything regarding edges can be directly inherited by FEI2dQuadQuad.

Note
Untested.
Author
Mikael Öhman

Definition at line 57 of file fei2dquadbiquad.h.

Constructor & Destructor Documentation

◆ FEI2dQuadBiQuad()

oofem::FEI2dQuadBiQuad::FEI2dQuadBiQuad ( int ind1,
int ind2 )
inline

Definition at line 60 of file fei2dquadbiquad.h.

References oofem::FEI2dQuadQuad::FEI2dQuadQuad().

Member Function Documentation

◆ _evaldNdx()

std::pair< double, FloatMatrixF< 2, 9 > > oofem::FEI2dQuadBiQuad::_evaldNdx ( const FloatArrayF< 2 > & lcoords,
const FEICellGeometry & cellgeo ) const

◆ evaldNdxi() [1/2]

FloatMatrixF< 2, 9 > oofem::FEI2dQuadBiQuad::evaldNdxi ( const FloatArrayF< 2 > & lcoords)
static

Definition at line 93 of file fei2dquadbiquad.C.

Referenced by _evaldNdx().

◆ evaldNdxi() [2/2]

void oofem::FEI2dQuadBiQuad::evaldNdxi ( 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 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 from oofem::FEInterpolation.

Definition at line 128 of file fei2dquadbiquad.C.

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

◆ evalN() [1/2]

FloatArrayF< 9 > oofem::FEI2dQuadBiQuad::evalN ( const FloatArrayF< 2 > & lcoords)
static

Definition at line 45 of file fei2dquadbiquad.C.

◆ evalN() [2/2]

void oofem::FEI2dQuadBiQuad::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 67 of file fei2dquadbiquad.C.

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

◆ giveIntegrationRule()

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

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 192 of file fei2dquadbiquad.C.

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

◆ giveNumberOfNodes()

int oofem::FEI2dQuadBiQuad::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 fei2dquadbiquad.h.


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