|
OOFEM 3.0
|
#include <feinterpol1d.h>
Public Member Functions | |
| 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 |
Surface interpolation services | |
| 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 |
Edge interpolation services | |
| 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 |
| virtual double | giveLength (const FEICellGeometry &cellgeo) const |
| std::unique_ptr< IntegrationRule > | giveIntegrationRule (int order, const Element_Geometry_Type) const override |
| std::unique_ptr< IntegrationRule > | giveBoundaryIntegrationRule (int order, int boundary, const Element_Geometry_Type) const override |
| std::unique_ptr< IntegrationRule > | giveBoundaryEdgeIntegrationRule (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) |
| 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 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< 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 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 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 finite element interpolation class.
Definition at line 45 of file feinterpol1d.h.
|
inline |
Definition at line 48 of file feinterpol1d.h.
References oofem::FEInterpolation::FEInterpolation().
Referenced by oofem::FEI1dHermite::FEI1dHermite(), oofem::FEI1dLin::FEI1dLin(), and oofem::FEI1dQuad::FEI1dQuad().
|
inlineoverridevirtual |
Evaluates the basis functions on the requested boundary. Only basis functions that are nonzero anywhere on the boundary are given. Ordering can be obtained from giveBoundaryNodes. Boundaries are defined as the corner nodes for 1D geometries, edges for 2D geometries and surfaces for 3D geometries.
| 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 77 of file feinterpol1d.h.
References OOFEM_ERROR.
|
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 79 of file feinterpol1d.h.
References OOFEM_ERROR.
|
inlineoverridevirtual |
Evaluates the determinant of the transformation Jacobian on the requested boundary. Boundaries are defined as the corner nodes for 1D geometries, edges for 2D geometries and surfaces for 3D geometries.
| boundary | Boundary number. |
| lcoords | The local coordinates (on the boundary local coordinate system). |
| cellgeo | Underlying cell geometry. |
Implements oofem::FEInterpolation.
Definition at line 81 of file feinterpol1d.h.
References OOFEM_ERROR.
|
inlineoverridevirtual |
Maps the local boundary coordinates to global. Boundaries are defined as the corner nodes for 1D geometries, edges for 2D geometries and surfaces for 3D geometries.
| 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 83 of file feinterpol1d.h.
References OOFEM_ERROR.
|
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 43 of file feinterpol1d.C.
References oofem::FloatArray::at(), and oofem::FloatArray::resize().
|
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 54 of file feinterpol1d.C.
References OOFEM_ERROR.
|
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 49 of file feinterpol1d.C.
|
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 59 of file feinterpol1d.C.
|
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 64 of file feinterpol1d.C.
References oofem::FEICellGeometry::giveVertexCoordinates().
|
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 64 of file feinterpol1d.h.
References OOFEM_ERROR.
|
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 62 of file feinterpol1d.h.
References OOFEM_ERROR.
|
inlineoverridevirtual |
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 66 of file feinterpol1d.h.
References OOFEM_ERROR.
|
inlineoverridevirtual |
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 72 of file feinterpol1d.h.
|
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 70 of file feinterpol1d.h.
References OOFEM_ERROR.
|
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 68 of file feinterpol1d.h.
References OOFEM_ERROR.
|
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 84 of file feinterpol1d.C.
References giveIntegrationRule(), and oofem::FEInterpolation::order.
|
inlineoverridevirtual |
Returns boundary geometry type
Implements oofem::FEInterpolation.
Definition at line 58 of file feinterpol1d.h.
|
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 77 of file feinterpol1d.C.
References oofem::FEInterpolation::order.
|
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.
| order | Polynomial order of integrand (should NOT including determinant of jacobian). |
Reimplemented from oofem::FEInterpolation.
Definition at line 69 of file feinterpol1d.C.
References oofem::_Line, and oofem::FEInterpolation::order.
Referenced by giveBoundaryEdgeIntegrationRule().
|
inlinevirtual |
Computes the exact length.
| cellgeo | Cell geometry for the element. |
Reimplemented in oofem::FEI1dHermite, oofem::FEI1dLin, and oofem::FEI1dQuad.
Definition at line 92 of file feinterpol1d.h.
References OOFEM_ERROR.
Referenced by oofem::Element::computeLength().
|
inlineoverridevirtual |
Returns number of spatial dimensions.
Implements oofem::FEInterpolation.
Definition at line 49 of file feinterpol1d.h.