|
OOFEM 3.0
|
#include <feinterpol3d.h>
Public Member Functions | |
| FEInterpolation3d (int o) | |
| int | giveNsd (const Element_Geometry_Type) const override |
| virtual double | giveVolume (const FEICellGeometry &cellgeo) const |
| 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 | 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 |
| double | boundaryEdgeEvalNormal (FloatArray &answer, int isurf, 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 |
| FloatMatrixF< 3, 3 > | surfaceGiveJacobianMatrixAt (int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const |
| 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 |
Edge interpolation services | |
| virtual void | edgeEvalN (FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0 |
| virtual double | edgeEvalNormal (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const |
| virtual void | edgeEvaldNdx (FloatMatrix &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0 |
| virtual void | edgeEvaldNdxi (FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const |
| virtual void | edgeLocal2global (FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0 |
| virtual double | edgeGiveTransformationJacobian (int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0 |
| virtual IntArray | computeLocalEdgeMapping (int iedge) const =0 |
| IntArray | computeEdgeMapping (const IntArray &elemNodes, int iedge) const |
Surface interpolation services | |
| virtual void | surfaceEvalN (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0 |
| virtual void | surfaceEvaldNdx (FloatMatrix &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const |
| virtual double | surfaceEvalNormal (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const |
| void | surfaceEvaldNdxi (FloatMatrix &answer, const FloatArray &lcoords) const override |
| void | surfaceEvald2Ndxi2 (FloatMatrix &answer, const FloatArray &lcoords) const override |
| virtual std::tuple< FloatArrayF< 3 >, FloatArrayF< 3 > > | surfaceEvalBaseVectorsAt (int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const |
| virtual std::tuple< double, FloatArrayF< 3 > > | surfaceEvalUnitNormal (int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const |
| virtual void | surfaceLocal2global (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0 |
| virtual double | surfaceGiveTransformationJacobian (int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0 |
| virtual IntArray | computeLocalSurfaceMapping (int isurf) const =0 |
| IntArray | computeSurfaceMapping (const IntArray &elemNodes, int isurf) const |
| std::unique_ptr< IntegrationRule > | giveBoundaryEdgeIntegrationRule (int order, int boundary, const Element_Geometry_Type) const override |
| std::unique_ptr< IntegrationRule > | giveBoundaryIntegrationRule (int _order, int boundary, const Element_Geometry_Type) const override |
| IntArray | boundarySurfaceGiveNodes (int boundary, Element_Geometry_Type, bool includeHierarchical=false) 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) |
| 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< IntegrationRule > | giveIntegrationRule (int order, const Element_Geometry_Type) const |
| virtual integrationDomain | giveBoundaryEdgeIntegrationDomain (int boundary, const Element_Geometry_Type) const =0 |
| Returns boundary integration domain. | |
| virtual integrationDomain | giveBoundarySurfaceIntegrationDomain (int boundary, const Element_Geometry_Type) const =0 |
| Returns boundary integration domain. | |
| virtual std::unique_ptr< IntegrationRule > | giveBoundarySurfaceIntegrationRule (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 const Element_Geometry_Type | giveBoundaryGeometryType (int boundary) const =0 |
| virtual int | giveKnotSpanBasisFuncMask (const IntArray &knotSpan, IntArray &mask) const |
| virtual int | giveNumberOfKnotSpanBasisFunctions (const IntArray &knotSpan) const |
| virtual bool | hasSubPatchFormulation () const |
| virtual const FloatArray * | giveKnotVector () const |
| virtual int | giveNumberOfKnotSpans (int dim) const |
| virtual const FloatArray * | giveKnotValues (int dim) const |
| virtual const IntArray * | giveKnotMultiplicity (int dim) const |
| 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 |
Additional Inherited Members | |
| Protected Attributes inherited from oofem::FEInterpolation | |
| int | order = 0 |
Class representing a general abstraction for surface finite element interpolation class.
Definition at line 44 of file feinterpol3d.h.
|
inline |
Definition at line 47 of file feinterpol3d.h.
References oofem::FEInterpolation::FEInterpolation().
Referenced by oofem::FEI3dHexaConst::FEI3dHexaConst(), oofem::FEI3dHexaLin::FEI3dHexaLin(), oofem::FEI3dHexaQuad::FEI3dHexaQuad(), oofem::FEI3dLineLin::FEI3dLineLin(), oofem::FEI3dQuadLin::FEI3dQuadLin(), oofem::FEI3dTetLin::FEI3dTetLin(), oofem::FEI3dTetQuad::FEI3dTetQuad(), oofem::FEI3dTrLin::FEI3dTrLin(), oofem::FEI3dTrQuad::FEI3dTrQuad(), oofem::FEI3dWedgeLin::FEI3dWedgeLin(), and oofem::FEI3dWedgeQuad::FEI3dWedgeQuad().
|
overridevirtual |
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.
| answer | Basis functions Array to be filled with the boundary nodes. |
| boundary | Boundary number. |
| lcoords | The local coordinates (on the boundary local coordinate system). |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 52 of file feinterpol3d.C.
References edgeEvalN().
|
inlineoverridevirtual |
Evaluates the normal out of the edge at given point.
| answer | Contains resulting normal vector. |
| isurf | Determines the surface number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 61 of file feinterpol3d.h.
References edgeEvalNormal().
|
overridevirtual |
Gives the boundary nodes for requested boundary number.
| answer | Array to be filled with the boundary nodes. |
| boundary | Boundary number. |
| includeHierarchical | If true, include hierarchical nodes, introduced by interpolations on universal cells (mpm) |
Implements oofem::FEInterpolation.
Definition at line 47 of file feinterpol3d.C.
References computeLocalEdgeMapping().
Referenced by oofem::TransportGradientDirichlet::computeXi().
|
overridevirtual |
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.
| boundary | Boundary number. |
| lcoords | The local coordinates (on the boundary local coordinate system). |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 57 of file feinterpol3d.C.
References edgeGiveTransformationJacobian().
Referenced by oofem::TransportGradientDirichlet::computeXi().
|
overridevirtual |
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.
| answer | Global coordinates. |
| boundary | Boundary number. |
| lcoords | The local coordinates (on the boundary local coordinate system). |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 62 of file feinterpol3d.C.
References edgeLocal2global().
|
overridevirtual |
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.
| answer | Basis functions Array to be filled with the boundary nodes. |
| boundary | Boundary number. |
| lcoords | The local coordinates (on the boundary local coordinate system). |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 72 of file feinterpol3d.C.
References surfaceEvalN().
Referenced by oofem::TransportGradientDirichlet::computeXi().
|
overridevirtual |
Evaluates the normal on the requested boundary.
| answer | The evaluated normal. |
| boundary | Boundary number. |
| lcoords | The local coordinates (on the boundary local coordinate system). |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 77 of file feinterpol3d.C.
References surfaceEvalNormal().
Referenced by oofem::TransportGradientDirichlet::computeXi().
|
overridevirtual |
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.
| answer | Array to be filled with the boundary nodes. |
| boundary | Boundary number. |
Implements oofem::FEInterpolation.
Definition at line 67 of file feinterpol3d.C.
References computeLocalSurfaceMapping().
Referenced by oofem::TransportGradientDirichlet::computeXi().
|
overridevirtual |
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.
| boundary | Boundary number. |
| lcoords | The local coordinates (on the boundary local coordinate system). |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 82 of file feinterpol3d.C.
References surfaceGiveTransformationJacobian().
|
overridevirtual |
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.
| answer | Global coordinates. |
| boundary | Boundary number. |
| lcoords | The local coordinates (on the boundary local coordinate system). |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 87 of file feinterpol3d.C.
References surfaceLocal2global().
|
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).
| answer | Contains resulting matrix of derivatives, the member at i,j position contains value of dNj/dxi. |
| isurf | Determines the surface number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 67 of file feinterpol3d.h.
References surfaceEvaldNdx().
|
inlineoverridevirtual |
Evaluates the array of edge interpolation functions (shape functions) at given point.
| answer | Contains resulting array of evaluated interpolation functions. |
| isurf | Surface number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 65 of file feinterpol3d.h.
References surfaceEvalN().
|
overridevirtual |
Evaluates the normal out of the surface at given point.
| answer | Contains resulting normal vector. |
| isurf | Determines the surface number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 218 of file feinterpol3d.C.
References N, and surfaceEvalUnitNormal().
|
overridevirtual |
Gives the boundary nodes for requested boundary number.
| answer | Array to be filled with the boundary nodes. |
| boundary | Boundary number. |
| includeHierarchical | If true, include hierarchical nodes, introduced by interpolations on universal cells (mpm) |
Implements oofem::FEInterpolation.
Definition at line 137 of file feinterpol3d.C.
References computeLocalSurfaceMapping().
|
inlineoverridevirtual |
Evaluates the edge jacobian of transformation between local and global coordinates.
| isurf | Determines the surface number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 72 of file feinterpol3d.h.
References surfaceGiveTransformationJacobian().
|
inlineoverridevirtual |
Evaluates edge global coordinates from given local ones. These derivatives are in global coordinate system (where the nodal coordinates are defined).
| answer | Contains resulting global coordinates. |
| isurf | Determines the surface number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 70 of file feinterpol3d.h.
References surfaceLocal2global().
| IntArray oofem::FEInterpolation3d::computeEdgeMapping | ( | const IntArray & | elemNodes, |
| int | iedge ) const |
Definition at line 92 of file feinterpol3d.C.
References oofem::IntArray::at(), and computeLocalEdgeMapping().
Referenced by computeLocalEdgeMapping().
|
pure virtual |
Implemented in oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, and oofem::FEI3dWedgeQuad.
References computeEdgeMapping().
Referenced by boundaryEdgeGiveNodes(), and computeEdgeMapping().
|
pure virtual |
Implemented in oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dHexaTriQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, and oofem::FEI3dWedgeQuad.
References computeSurfaceMapping(), giveBoundaryEdgeIntegrationRule(), and oofem::FEInterpolation::order.
Referenced by boundaryGiveNodes(), boundarySurfaceGiveNodes(), computeSurfaceMapping(), and surfaceEvalBaseVectorsAt().
| IntArray oofem::FEInterpolation3d::computeSurfaceMapping | ( | const IntArray & | elemNodes, |
| int | isurf ) const |
Definition at line 103 of file feinterpol3d.C.
References oofem::IntArray::at(), and computeLocalSurfaceMapping().
Referenced by computeLocalSurfaceMapping().
|
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)
| answer | Contains resulting matrix of derivatives, the member at i,j position contains value of dNj/dxi. |
| iedge | Determines the edge number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Implemented in oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, and oofem::FEI3dWedgeQuad.
References edgeEvaldNdxi().
|
virtual |
Evaluates the matrix of derivatives of edge interpolation functions (shape functions) at given point. These derivatives are in local (parent) coordinate system
| answer | Contains resulting matrix of derivatives, the member at i,j position contains value of dN_j/dxi_i. |
| iedge | Determines the edge number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Reimplemented in oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dQuadLin, oofem::FEI3dTrLin, and oofem::FEI3dTrQuad.
Definition at line 122 of file feinterpol3d.C.
References OOFEM_ERROR.
Referenced by oofem::TransportGradientDirichlet::computeXi(), and edgeEvaldNdx().
|
pure virtual |
Evaluates the array of edge interpolation functions (shape functions) at given point.
| answer | Contains resulting array of evaluated interpolation functions. |
| iedge | Edge number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Implemented in oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, and oofem::FEI3dWedgeQuad.
References edgeEvalNormal().
Referenced by boundaryEdgeEvalN().
|
virtual |
Evaluates the normal out of the edge at given point.
| answer | Contains resulting normal vector. |
| isurf | Determines the edge number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Definition at line 132 of file feinterpol3d.C.
References OOFEM_ERROR.
Referenced by boundaryEdgeEvalNormal(), and edgeEvalN().
|
pure virtual |
Evaluates the edge jacobian of transformation between local and global coordinates.
| iedge | Determines edge number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Implemented in oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, and oofem::FEI3dWedgeQuad.
Referenced by boundaryEdgeGiveTransformationJacobian().
|
pure virtual |
Evaluates edge global coordinates from given local ones. These derivatives are in global coordinate system (where the nodal coordinates are defined).
| answer | Contains resulting global coordinates. |
| iedge | Determines edge number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Implemented in oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, and oofem::FEI3dWedgeQuad.
Referenced by boundaryEdgeLocal2Global().
|
overridevirtual |
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.
| order | Polynomial order of the integrand (should NOT including determinant of jacobian). |
| boundary | Boundary number. |
Reimplemented from oofem::FEInterpolation.
Definition at line 114 of file feinterpol3d.C.
References oofem::_Line, and oofem::FEInterpolation::order.
Referenced by computeLocalSurfaceMapping(), and oofem::TransportGradientDirichlet::computeXi().
|
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.
| order | Polynomial order of the integrand (should NOT including determinant of jacobian). |
| boundary | Boundary number. |
Reimplemented from oofem::FEInterpolation.
Definition at line 234 of file feinterpol3d.h.
References OOFEM_ERROR.
Referenced by oofem::TransportGradientDirichlet::computeXi().
|
inlineoverridevirtual |
Returns number of spatial dimensions.
Implements oofem::FEInterpolation.
Definition at line 48 of file feinterpol3d.h.
|
virtual |
Computes the exact volume.
| cellgeo | Cell geometry for the element. |
Reimplemented in oofem::FEI3dLineLin, and oofem::FEI3dTetQuad.
Definition at line 42 of file feinterpol3d.C.
References OOFEM_ERROR.
Referenced by oofem::Element::computeVolume().
|
virtual |
Evaluates the tangent vectors of the surface at given point.
| isurf | Determines the surface number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Definition at line 174 of file feinterpol3d.C.
References computeLocalSurfaceMapping(), oofem::FEICellGeometry::giveVertexCoordinates(), and surfaceEvaldNdxi().
Referenced by oofem::FEContactSurface::computeContactPointLocalCoordinates_3d(), surfaceEvalN(), surfaceEvalNormal(), surfaceEvalUnitNormal(), and surfaceGiveJacobianMatrixAt().
|
overridevirtual |
Evaluates the matrix of second derivatives of surface interpolation functions (shape functions) wrt parametric coordinates at given point.
| answer | Contains resulting matrix of derivatives, the member at i,j position contains value of dNj/dxi. |
| lcoords | Array containing (local) coordinates. |
Reimplemented from oofem::FEInterpolation.
Definition at line 167 of file feinterpol3d.C.
References OOFEM_ERROR.
Referenced by oofem::FEContactSurface::computeContactPointLocalCoordinates_3d(), and surfaceEvalN().
|
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).
| answer | Contains resulting matrix of derivatives, the member at i,j position contains value of dNj/dxi. |
| isurf | Determines the surface number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Reimplemented in oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, and oofem::FEI3dTrQuad.
Definition at line 127 of file feinterpol3d.C.
References OOFEM_ERROR.
Referenced by boundarySurfaceEvaldNdx(), oofem::SurfaceTensionBoundaryCondition::computeLoadVectorFromElement(), oofem::TransportGradientDirichlet::computeXi(), and surfaceEvalN().
|
overridevirtual |
Evaluates the matrix of derivatives of surface interpolation functions (shape functions) wrt parametric coordinates at given point.
| answer | Contains resulting matrix of derivatives, the member at i,j position contains value of dNj/dxi. |
| lcoords | Array containing (local) coordinates. |
Reimplemented from oofem::FEInterpolation.
Definition at line 162 of file feinterpol3d.C.
References OOFEM_ERROR.
Referenced by surfaceEvalBaseVectorsAt(), and surfaceEvalN().
|
pure virtual |
Evaluates the array of edge interpolation functions (shape functions) at given point.
| answer | Contains resulting array of evaluated interpolation functions. |
| isurf | Surface number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Implemented in oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dHexaTriQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, and oofem::FEI3dWedgeQuad.
References surfaceEvalBaseVectorsAt(), surfaceEvald2Ndxi2(), surfaceEvaldNdx(), surfaceEvaldNdxi(), surfaceEvalNormal(), and surfaceEvalUnitNormal().
Referenced by boundaryEvalN(), and boundarySurfaceEvalN().
|
virtual |
Evaluates the normal out of the surface at given point.
| answer | Contains resulting normal vector. |
| isurf | Determines the surface number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Reimplemented in oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dHexaTriQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, and oofem::FEI3dWedgeQuad.
Definition at line 143 of file feinterpol3d.C.
References oofem::cross(), oofem::norm(), and surfaceEvalBaseVectorsAt().
Referenced by boundaryEvalNormal(), and surfaceEvalN().
|
virtual |
Evaluates the unit normal out of the surface at given point.
| isurf | Determines the surface number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Definition at line 153 of file feinterpol3d.C.
References oofem::cross(), oofem::norm(), and surfaceEvalBaseVectorsAt().
Referenced by boundarySurfaceEvalNormal(), surfaceEvalN(), and surfaceGiveTransformationJacobian().
| FloatMatrixF< 3, 3 > oofem::FEInterpolation3d::surfaceGiveJacobianMatrixAt | ( | int | isurf, |
| const FloatArray & | lcoords, | ||
| const FEICellGeometry & | cellgeo ) const |
Definition at line 191 of file feinterpol3d.C.
References oofem::cross(), oofem::FloatMatrixF< N, M >::setColumn(), and surfaceEvalBaseVectorsAt().
|
pure virtual |
Evaluates the edge jacobian of transformation between local and global coordinates.
| isurf | Determines the surface number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Implemented in oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, and oofem::FEI3dWedgeQuad.
Definition at line 207 of file feinterpol3d.C.
References N, and surfaceEvalUnitNormal().
Referenced by boundaryGiveTransformationJacobian(), boundarySurfaceGiveTransformationJacobian(), and surfaceLocal2global().
|
pure virtual |
Evaluates edge global coordinates from given local ones. These derivatives are in global coordinate system (where the nodal coordinates are defined).
| answer | Contains resulting global coordinates. |
| isurf | Determines the surface number. |
| lcoords | Array containing (local) coordinates. |
| cellgeo | Underlying cell geometry. |
Implemented in oofem::FEI3dHexaConst, oofem::FEI3dHexaLin, oofem::FEI3dHexaQuad, oofem::FEI3dLineLin, oofem::FEI3dQuadLin, oofem::FEI3dTetLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dTrQuad, oofem::FEI3dWedgeLin, and oofem::FEI3dWedgeQuad.
References surfaceGiveTransformationJacobian().
Referenced by boundaryLocal2Global(), and boundarySurfaceLocal2global().