OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Class representing a general abstraction for finite element interpolation class. More...
#include <feinterpol.h>
Public Member Functions | |
FEInterpolation (int o) | |
virtual | ~FEInterpolation () |
virtual IRResultType | initializeFrom (InputRecord *ir) |
Initializes receiver according to object description stored in input record. More... | |
virtual int | giveNumberOfNodes () const |
Returns the number of geometric nodes of the receiver. More... | |
std::string | errorInfo (const char *func) const |
virtual integrationDomain | giveIntegrationDomain () const =0 |
Returns the integration domain of the interpolator. More... | |
virtual Element_Geometry_Type | giveGeometryType () const =0 |
Returns the geometry type fo the interpolator. More... | |
int | giveInterpolationOrder () |
Returns the interpolation order. More... | |
virtual void | evalN (FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0 |
Evaluates the array of interpolation functions (shape functions) at given point. More... | |
virtual double | evaldNdx (FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0 |
Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point. More... | |
virtual void | evald2Ndx2 (FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) |
Evaluates the matrix of second derivatives of interpolation functions (shape functions) at given point. More... | |
virtual void | evaldNdxi (FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) |
Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point. More... | |
virtual void | giveLocalNodeCoords (FloatMatrix &answer) |
Returns a matrix containing the local coordinates for each node corresponding to the interpolation. More... | |
virtual void | local2global (FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0 |
Evaluates global coordinates from given local ones. More... | |
virtual int | global2local (FloatArray &answer, const FloatArray &gcoords, const FEICellGeometry &cellgeo)=0 |
Evaluates local coordinates from given global ones. More... | |
virtual double | giveTransformationJacobian (const FloatArray &lcoords, const FEICellGeometry &cellgeo) |
Evaluates the determinant of the transformation. More... | |
virtual void | giveJacobianMatrixAt (FloatMatrix &jacobianMatrix, const FloatArray &lcoords, const FEICellGeometry &cellgeo) |
Gives the jacobian matrix at the local coordinates. More... | |
virtual IntegrationRule * | giveIntegrationRule (int order) |
Sets up a suitable integration rule for numerical integrating over volume. More... | |
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)=0 |
Evaluates the basis functions on the requested boundary. More... | |
virtual double | boundaryEdgeGiveTransformationJacobian (int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0 |
Evaluates the determinant of the transformation Jacobian on the requested boundary. More... | |
virtual void | boundaryEdgeLocal2Global (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0 |
Maps the local boundary coordinates to global. More... | |
virtual integrationDomain | giveBoundaryEdgeIntegrationDomain (int boundary) const =0 |
Returns boundary integration domain. More... | |
virtual IntegrationRule * | giveBoundaryEdgeIntegrationRule (int order, int boundary) |
Sets up a suitable integration rule for integrating over the requested boundary. More... | |
virtual void | boundaryEdgeGiveNodes (IntArray &answer, int boundary)=0 |
Gives the boundary nodes for requested boundary number. More... | |
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)=0 |
Evaluates the array of edge interpolation functions (shape functions) at given point. More... | |
virtual void | boundarySurfaceEvaldNdx (FloatMatrix &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0 |
Evaluates the matrix of derivatives of edge interpolation functions (shape functions) at given point. More... | |
virtual double | boundarySurfaceEvalNormal (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0 |
Evaluates the normal out of the surface at given point. More... | |
virtual void | boundarySurfaceLocal2global (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0 |
Evaluates edge global coordinates from given local ones. More... | |
virtual double | boundarySurfaceGiveTransformationJacobian (int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0 |
Evaluates the edge jacobian of transformation between local and global coordinates. More... | |
virtual integrationDomain | giveBoundarySurfaceIntegrationDomain (int boundary) const =0 |
Returns boundary integration domain. More... | |
virtual IntegrationRule * | giveBoundarySurfaceIntegrationRule (int order, int boundary) |
Sets up a suitable integration rule for integrating over the requested boundary. More... | |
virtual void | boundarySurfaceGiveNodes (IntArray &answer, int boundary)=0 |
Gives the boundary nodes for requested boundary number. More... | |
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 void | boundaryGiveNodes (IntArray &answer, int boundary)=0 |
Gives the boundary nodes for requested boundary number. More... | |
virtual void | boundaryEvalN (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0 |
Evaluates the basis functions on the requested boundary. More... | |
virtual double | boundaryEvalNormal (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0 |
Evaluates the normal on the requested boundary. More... | |
virtual double | boundaryGiveTransformationJacobian (int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0 |
Evaluates the determinant of the transformation Jacobian on the requested boundary. More... | |
virtual void | boundaryLocal2Global (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0 |
Maps the local boundary coordinates to global. More... | |
virtual double | evalNXIntegral (int boundary, const FEICellGeometry &cellgeo) |
Computes the integral . More... | |
virtual integrationDomain | giveBoundaryIntegrationDomain (int boundary) const =0 |
Returns boundary integration domain. More... | |
virtual IntegrationRule * | giveBoundaryIntegrationRule (int order, int boundary) |
Sets up a suitable integration rule for integrating over the requested boundary. More... | |
Methods to support interpolation defined on patch by patch basis. | |
virtual int | giveKnotSpanBasisFuncMask (const IntArray &knotSpan, IntArray &mask) |
Returns indices (zero based) of nonzero basis functions for given knot span. More... | |
virtual int | giveNumberOfKnotSpanBasisFunctions (const IntArray &knotSpan) |
Returns the number of nonzero basis functions at individual knot span,. More... | |
virtual bool | hasSubPatchFormulation () |
Returns true, if receiver is formulated on sub-patch basis. More... | |
virtual const double *const * | giveKnotVector () |
Returns the subdivision of patch parametric space. More... | |
virtual int | giveNumberOfKnotSpans (int dim) |
Returns the number of knot spans of the receiver. More... | |
virtual const FloatArray * | giveKnotValues (int dim) |
Returns the knot values of the receiver. More... | |
virtual const IntArray * | giveKnotMultiplicity (int dim) |
Returns the knot multiplicity of the receiver. More... | |
virtual int | giveNsd ()=0 |
Returns number of spatial dimensions. More... | |
virtual int | giveNumberOfEdges () const |
Returns number of edges. More... | |
Protected Attributes | |
int | order |
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 132 of file feinterpol.h.
|
inline |
Definition at line 138 of file feinterpol.h.
|
inlinevirtual |
Definition at line 141 of file feinterpol.h.
|
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.
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. |
Implemented in oofem::BSplineInterpolation, oofem::FEInterpolation2d, oofem::FEI1dLin, oofem::FEI1dQuad, and oofem::FEInterpolation3d.
Referenced by oofem::TransportElement::computeBoundaryEdgeLoadVector(), oofem::MITC4Shell::computeEdgeNMatrix(), and oofem::StructuralElement::computeEdgeNMatrix().
|
pure virtual |
Gives the boundary nodes for requested boundary number.
answer | Array to be filled with the boundary nodes. |
boundary | Boundary number. |
Implemented in oofem::BSplineInterpolation, oofem::FEInterpolation2d, oofem::FEI2dLineLin, oofem::FEI1dLin, oofem::FEI1dQuad, and oofem::FEInterpolation3d.
Referenced by oofem::TransportElement::computeBoundaryEdgeLoadVector(), oofem::TransportElement::computeTangentFromEdgeLoad(), oofem::Element::giveBoundaryEdgeNodes(), and oofem::Set::giveNodeList().
|
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.
boundary | Boundary number. |
lcoords | The local coordinates (on the boundary local coordinate system). |
cellgeo | Underlying cell geometry. |
Implemented in oofem::BSplineInterpolation, oofem::FEI2dQuadQuadAxi, oofem::FEI2dQuadLinAxi, oofem::FEI2dTrLinAxi, oofem::FEInterpolation2d, oofem::FEI1dLin, oofem::FEI1dQuad, and oofem::FEInterpolation3d.
Referenced by oofem::StructuralElement::computeEdgeVolumeAround().
|
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.
answer | Global coordinates. |
boundary | Boundary number. |
lcoords | The local coordinates (on the boundary local coordinate system). |
cellgeo | Underlying cell geometry. |
Implemented in oofem::BSplineInterpolation, oofem::FEInterpolation2d, oofem::FEI1dLin, oofem::FEI1dQuad, and oofem::FEInterpolation3d.
Referenced by oofem::TrPlanestressRotAllman::computeBoundaryEdgeLoadVector(), oofem::StructuralElement::computeBoundaryEdgeLoadVector(), and oofem::TransportElement::computeEdgeBCSubVectorAt().
|
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.
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. |
Implemented in oofem::BSplineInterpolation, oofem::FEInterpolation2d, oofem::FEInterpolation3d, and oofem::FEInterpolation1d.
Referenced by oofem::PrescribedMean::assemble(), oofem::WeakPeriodicBoundaryCondition::assemble(), oofem::TransportElement::computeBoundarySurfaceLoadVector(), oofem::tet21ghostsolid::computeBoundarySurfaceLoadVector(), oofem::SolutionbasedShapeFunction::computeCorrectionFactors(), oofem::PFEMElement2d::computeEdgeNMatrixAt(), oofem::PFEMElement2d::computeEgdeNVectorAt(), 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::PrescribedGradientBCNeumann::integrateTangent(), oofem::TransportGradientNeumann::integrateTangent(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionVelocityTangent(), and oofem::MixedGradientPressureNeumann::integrateVolTangent().
|
pure virtual |
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. |
Implemented in oofem::BSplineInterpolation, oofem::FEInterpolation2d, oofem::FEInterpolation3d, and oofem::FEInterpolation1d.
Referenced by oofem::SolutionbasedShapeFunction::computeCorrectionFactors(), oofem::TransportGradientNeumann::computeEta(), oofem::SurfaceTensionBoundaryCondition::computeLoadVectorFromElement(), oofem::NeumannMomentLoad::computeNormal(), oofem::PFEMElement2d::computePrescribedRhsVector(), oofem::MixedGradientPressureWeakPeriodic::computeStress(), oofem::SurfaceTensionBoundaryCondition::computeTangentFromElement(), oofem::NeumannMomentLoad::computeValueAtBoundary(), oofem::WeakPeriodicBoundaryCondition::giveEdgeNormal(), oofem::SolutionbasedShapeFunction::initializeSurfaceData(), oofem::MixedGradientPressureNeumann::integrateDevTangent(), oofem::PrescribedGradientBCNeumann::integrateTangent(), oofem::TransportGradientNeumann::integrateTangent(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionDev(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionVelocityTangent(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionXTangent(), and oofem::MixedGradientPressureNeumann::integrateVolTangent().
|
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.
answer | Array to be filled with the boundary nodes. |
boundary | Boundary number. |
Implemented in oofem::BSplineInterpolation, oofem::FEInterpolation2d, oofem::FEInterpolation3d, and oofem::FEInterpolation1d.
Referenced by oofem::SurfaceTensionBoundaryCondition::assemble(), oofem::PrescribedMean::assemble(), oofem::TransportGradientNeumann::assemble(), oofem::MixedGradientPressureWeakPeriodic::assemble(), oofem::MixedGradientPressureNeumann::assemble(), oofem::WeakPeriodicBoundaryCondition::assemble(), oofem::SurfaceTensionBoundaryCondition::assembleVector(), oofem::TransportGradientNeumann::assembleVector(), oofem::MixedGradientPressureWeakPeriodic::assembleVector(), oofem::MixedGradientPressureNeumann::assembleVector(), 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::PrescribedMean::giveInternalForcesVector(), oofem::WeakPeriodicBoundaryCondition::giveInternalForcesVector(), oofem::SurfaceTensionBoundaryCondition::giveLocationArrays(), oofem::TransportGradientNeumann::giveLocationArrays(), oofem::MixedGradientPressureWeakPeriodic::giveLocationArrays(), oofem::MixedGradientPressureNeumann::giveLocationArrays(), oofem::Set::giveNodeList(), oofem::SolutionbasedShapeFunction::initializeSurfaceData(), oofem::GnuplotExportModule::outputBoundaryCondition(), oofem::GeometryBasedEI::updateNodeEnrMarker(), and oofem::XfemElementInterface::XfemElementInterface_prepareNodesForDelaunay().
|
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.
boundary | Boundary number. |
lcoords | The local coordinates (on the boundary local coordinate system). |
cellgeo | Underlying cell geometry. |
Implemented in oofem::BSplineInterpolation, oofem::FEI2dQuadQuadAxi, oofem::FEI2dQuadLinAxi, oofem::FEI2dTrLinAxi, oofem::FEInterpolation2d, oofem::FEInterpolation3d, and oofem::FEInterpolation1d.
Referenced by oofem::PrescribedMean::assemble(), oofem::WeakPeriodicBoundaryCondition::assemble(), oofem::TransportElement::computeBoundarySurfaceLoadVector(), oofem::tet21ghostsolid::computeBoundarySurfaceLoadVector(), oofem::SolutionbasedShapeFunction::computeCorrectionFactors(), oofem::PrescribedMean::computeDomainSize(), oofem::PFEMElement2d::computeEdgeVolumeAround(), 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().
|
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.
answer | Global coordinates. |
boundary | Boundary number. |
lcoords | The local coordinates (on the boundary local coordinate system). |
cellgeo | Underlying cell geometry. |
Implemented in oofem::BSplineInterpolation, oofem::FEInterpolation2d, oofem::FEInterpolation3d, and oofem::FEInterpolation1d.
Referenced by oofem::WeakPeriodicBoundaryCondition::assemble(), oofem::TransportElement::computeBoundaryEdgeLoadVector(), oofem::TransportElement::computeBoundarySurfaceLoadVector(), oofem::StructuralElement::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::MixedGradientPressureWeakPeriodic::integrateTractionDev(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionVelocityTangent(), and oofem::MixedGradientPressureWeakPeriodic::integrateTractionXTangent().
|
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. |
isurf | Determines the surface number. |
lcoords | Array containing (local) coordinates. |
cellgeo | Underlying cell geometry. |
Implemented in oofem::BSplineInterpolation, oofem::FEInterpolation2d, oofem::FEInterpolation3d, and oofem::FEInterpolation1d.
|
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::BSplineInterpolation, oofem::FEInterpolation2d, oofem::FEInterpolation3d, and oofem::FEInterpolation1d.
Referenced by oofem::QDKTPlate::computeSurfaceNMatrix(), oofem::MITC4Shell::computeSurfaceNMatrix(), and oofem::StructuralElement::computeSurfaceNMatrix().
|
pure 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. |
Implemented in oofem::BSplineInterpolation, oofem::FEInterpolation2d, oofem::FEInterpolation3d, and oofem::FEInterpolation1d.
|
pure virtual |
Gives the boundary nodes for requested boundary number.
answer | Array to be filled with the boundary nodes. |
boundary | Boundary number. |
Implemented in oofem::FEInterpolation3d, oofem::BSplineInterpolation, oofem::FEInterpolation2d, and oofem::FEInterpolation1d.
Referenced by oofem::Element::giveBoundarySurfaceNodes(), and oofem::Set::giveNodeList().
|
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::BSplineInterpolation, oofem::FEInterpolation2d, oofem::FEInterpolation3d, and oofem::FEInterpolation1d.
Referenced by oofem::StructuralElement::computeSurfaceVolumeAround().
|
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::BSplineInterpolation, oofem::FEInterpolation2d, oofem::FEInterpolation3d, and oofem::FEInterpolation1d.
Referenced by oofem::TransportElement::computeSurfaceBCSubVectorAt().
|
inline |
Definition at line 490 of file feinterpol.h.
|
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)
answer | Contains resulting matrix of derivatives, the member at i,j position contains value of dNi/dxj. |
lcoords | Array containing (local) coordinates. |
cellgeo | Underlying cell geometry. |
Reimplemented in oofem::FEI1dHermite, oofem::FEI3dLineLin, and oofem::FEI2dTrQuad.
Definition at line 183 of file feinterpol.h.
References OOFEM_ERROR.
|
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)
answer | Contains resulting matrix of derivatives, the member at i,j position contains value of dNi/dxj. |
lcoords | Array containing (local) coordinates. |
cellgeo | Underlying cell geometry. |
Implemented in oofem::BSplineInterpolation, oofem::FEI3dHexaQuad, oofem::TSplineInterpolation, oofem::FEI2dLineQuad, oofem::FEI2dLineHermite, oofem::FEI2dLineLin, oofem::FEI2dQuadQuad, oofem::FEI3dWedgeLin, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI3dWedgeQuad, oofem::FEI3dTrQuad, oofem::FEI1dHermite, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI2dQuadLin, oofem::FEI3dLineLin, oofem::FEI2dTrLin, oofem::FEI2dTrQuad, oofem::FEI2dQuadConst, oofem::FEI2dTrConst, oofem::FEI3dHexaLin, oofem::FEI3dTetLin, and oofem::NURBSInterpolation.
Referenced by oofem::FEInterpolation2d::boundarySurfaceEvaldNdx(), oofem::PhaseFieldElement::computeBd_matrixAt(), oofem::SolidShell::computeBEmatrixAt(), oofem::SolidShell::computeBHmatrixAt(), oofem::Structural3DElement::computeBHmatrixAt(), oofem::PlaneStressElement::computeBHmatrixAt(), oofem::PlaneStrainElement::computeBHmatrixAt(), oofem::AxisymElement::computeBHmatrixAt(), oofem::PFEMElement2d::computeBMatrix(), oofem::PlaneStressStructuralElementEvaluator::computeBMatrixAt(), oofem::Space3dStructuralElementEvaluator::computeBMatrixAt(), oofem::SolidShell::computeBmatrixAt(), oofem::Q4Axisymm::computeBmatrixAt(), oofem::Structural3DElement::computeBmatrixAt(), oofem::L4Axisymm::computeBmatrixAt(), oofem::PlaneStressElement::computeBmatrixAt(), oofem::PlaneStrainElement::computeBmatrixAt(), oofem::AxisymElement::computeBmatrixAt(), oofem::TransportElement::computeBmatrixAt(), oofem::XfemElementInterface::ComputeBOrBHMatrix(), oofem::WeakPeriodicBoundaryCondition::computeDeformationGradient(), oofem::tet21ghostsolid::computeDeformationGradientVectorAt(), oofem::PFEMElement2d::computeDivergenceMatrix(), oofem::PFEMElement2d::computeGradientMatrix(), oofem::TransportElement::computeGradientMatrixAt(), oofem::MaterialForceEvaluator::computeMaterialForce(), oofem::PFEMElement2d::computePressureLaplacianMatrix(), oofem::GeometryBasedEI::evaluateEnrFuncDerivAt(), and oofem::Shell7Base::giveZ2integratedPolynomial2GradientForStressRecAt().
|
inlinevirtual |
Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point.
These derivatives are wrt local (parent) coordinate system
answer | Contains resulting matrix of derivatives, the member at i,j position contains value of dNi/dxij. |
lcoords | Array containing (local) coordinates. |
cellgeo | Underlying cell geometry. |
Reimplemented in oofem::FEI2dQuadQuad, oofem::FEI2dQuadLin, oofem::FEI2dTrQuad, oofem::FEI2dLineQuad, oofem::FEI3dTrQuad, oofem::FEI2dLineLin, oofem::FEI3dTrLin, and oofem::FEI3dTetQuad.
Definition at line 193 of file feinterpol.h.
References OOFEM_ERROR.
Referenced by oofem::StructuralInterfaceElementPhF::computeBd_matrixAt(), oofem::IntElLine1PF::computeBd_vectorAt(), oofem::Shell7Base::computeBmatrixAt(), oofem::IntElLine1IntPen::computeCovarBaseVectorAt(), oofem::IntElLine2IntPen::computeCovarBaseVectorAt(), oofem::IntElLine1PF::computeCovarBaseVectorAt(), oofem::IntElLine1PhF::computeCovarBaseVectorAt(), oofem::IntElLine1::computeCovarBaseVectorAt(), oofem::Shell7BaseXFEM::computeEnrichedBmatrixAt(), oofem::Shell7Base::computeThicknessMappingCoeff(), oofem::Shell7Base::evalInitialCovarBaseVectorsAt(), oofem::FEInterpolation2d::giveJacobianMatrixAt(), and oofem::Shell7Base::setupInitialNodeDirectors().
|
pure virtual |
Evaluates the array of interpolation functions (shape functions) at given point.
answer | Contains resulting array of evaluated interpolation functions. |
lcoords | Array containing (local) coordinates. |
cellgeo | Underlying cell geometry. |
Implemented in oofem::BSplineInterpolation, oofem::FEI3dHexaQuad, oofem::TSplineInterpolation, oofem::FEI2dLineQuad, oofem::FEI2dLineHermite, oofem::FEI2dLineLin, oofem::FEI2dQuadQuad, oofem::FEI3dWedgeLin, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI3dWedgeQuad, oofem::FEI2dQuadBiQuad, oofem::FEI3dTrQuad, oofem::FEI1dHermite, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI2dQuadLin, oofem::FEI3dLineLin, oofem::FEI2dTrLin, oofem::FEI2dTrQuad, oofem::FEI3dHexaTriQuad, oofem::FEI2dQuadConst, oofem::FEI2dTrConst, oofem::FEI3dHexaLin, oofem::FEI3dTetLin, and oofem::NURBSInterpolation.
Referenced by oofem::PrescribedMean::assemble(), oofem::PrescribedGradientBCWeak::assembleTangentGPContributionNew(), oofem::FEInterpolation2d::boundarySurfaceEvalN(), oofem::AxisymElement::computeBHmatrixAt(), oofem::Q4Axisymm::computeBmatrixAt(), oofem::L4Axisymm::computeBmatrixAt(), oofem::AxisymElement::computeBmatrixAt(), oofem::Shell7Base::computeBmatrixAt(), oofem::XfemElementInterface::ComputeBOrBHMatrix(), oofem::PhaseFieldElement::computeDamageAt(), oofem::IntElLine1PF::computeDamageAt(), oofem::StructuralInterfaceElementPhF::computeDamageAt(), oofem::PFEMElement2d::computeDivergenceMatrix(), oofem::Shell7BaseXFEM::computeEnrichedBmatrixAt(), oofem::Shell7BaseXFEM::computeEnrichedNmatrixAt(), oofem::IntElLine1IntPen::computeGlobalCoordinates(), oofem::Shell7Base::computeGlobalCoordinates(), oofem::StructuralInterfaceElement::computeGlobalCoordinates(), oofem::PFEMElement2d::computeGradientMatrix(), oofem::GeometryBasedEI::computeIntersectionPoints(), oofem::TransportElement::computeLoadVector(), oofem::TransportElement::computeNAt(), oofem::XfemElementInterface::computeNCohesive(), oofem::PhaseFieldElement::computeNd_matrixAt(), oofem::StructuralInterfaceElementPhF::computeNd_matrixAt(), oofem::IntElLine1PF::computeNd_vectorAt(), oofem::PlaneStressStructuralElementEvaluator::computeNMatrixAt(), oofem::Space3dStructuralElementEvaluator::computeNMatrixAt(), oofem::Tr_Warp::computeNmatrixAt(), oofem::QDKTPlate::computeNmatrixAt(), oofem::IntElLine1PhF::computeNmatrixAt(), oofem::DKTPlate::computeNmatrixAt(), oofem::IntElLine1IntPen::computeNmatrixAt(), oofem::IntElLine1::computeNmatrixAt(), oofem::IntElLine1PF::computeNmatrixAt(), oofem::Shell7Base::computeNmatrixAt(), oofem::StructuralElement::computeNmatrixAt(), oofem::Shell7Base::evalInitialDirectorAt(), oofem::SmoothedNodalInternalVariableField::evaluateAt(), oofem::DofManValueField::evaluateAt(), oofem::GeometryBasedEI::evaluateEnrFuncAt(), oofem::GeometryBasedEI::evaluateEnrFuncDerivAt(), oofem::GeometryBasedEI::evaluateEnrFuncJumps(), oofem::Shell7BaseXFEM::evaluateLevelSet(), oofem::QTrPlaneStress2dXFEM::giveCompositeExportData(), oofem::PlaneStress2dXfem::giveCompositeExportData(), oofem::TrPlaneStress2dXFEM::giveCompositeExportData(), oofem::PrescribedMean::giveInternalForcesVector(), oofem::StructuralInterfaceElementPhF::giveInternalForcesVector_d(), oofem::Shell7Base::giveL2contribution(), oofem::XfemStructuralElementInterface::giveSubtriangulationCompositeExportData(), oofem::StokesFlowVelocityHomogenization::integrateNMatrix(), oofem::UnstructuredGridField::Cell::interpolate(), oofem::MMAShapeFunctProjection::interpolateIntVarAt(), oofem::Inclusion::isMaterialModified(), oofem::Shell7Base::nodalLeastSquareFitFromIP(), oofem::XfemElementInterface::partitionEdgeSegment(), oofem::HangingNode::postInitialize(), oofem::qcNode::postInitializeAsHangingNode(), oofem::PLPrincipalStrain::propagateInterface(), oofem::PLHoopStressCirc::propagateInterface(), oofem::EnrichmentItem::tipIsTouchingEI(), oofem::Shell7Base::vtkEvalInitialGlobalCoordinateAt(), oofem::Shell7Base::vtkEvalInitialGlobalCZCoordinateAt(), 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().
|
inlinevirtual |
Computes the integral .
boundary | Boundary number. |
cellgeo | Underlying cell geometry. |
Reimplemented in oofem::FEI3dHexaQuad, oofem::FEI3dTetQuad, oofem::FEI2dQuadQuad, oofem::FEI3dTetLin, oofem::FEI2dLineLin, oofem::FEI3dHexaLin, oofem::FEI2dLineQuad, oofem::FEI2dTrLin, oofem::FEI2dQuadLin, oofem::FEI2dTrQuad, and oofem::FEI3dHexaTriQuad.
Definition at line 420 of file feinterpol.h.
References OOFEM_ERROR.
Referenced by oofem::PrescribedGradientHomogenization::domainSize(), oofem::TransportGradientNeumann::domainSize(), oofem::TransportGradientPeriodic::domainSize(), oofem::MixedGradientPressureBC::domainSize(), oofem::TransportGradientDirichlet::domainSize(), oofem::PrescribedGenStrainShell7::domainSize(), and oofem::PrescribedGenStrainShell7::updateCoefficientMatrix().
|
pure virtual |
Returns boundary integration domain.
Implemented in oofem::BSplineInterpolation, oofem::FEI3dHexaQuad, oofem::FEI2dQuadQuad, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, oofem::FEI1dQuad, oofem::FEI1dLin, oofem::FEI2dLineHermite, oofem::FEI3dTrQuad, oofem::FEI3dTrLin, oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI3dTetQuad, oofem::FEI2dQuadLin, oofem::FEI3dHexaTriQuad, oofem::FEI2dQuadConst, oofem::FEI2dTrQuad, oofem::FEI3dHexaLin, oofem::FEI3dLineLin, oofem::FEI3dTetLin, and oofem::FEI2dTrLin.
|
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.
order | Polynomial order of the integrand (should NOT including determinant of jacobian). |
boundary | Boundary number. |
Reimplemented in oofem::BSplineInterpolation, oofem::FEInterpolation3d, and oofem::FEInterpolation1d.
Definition at line 74 of file feinterpol.C.
References oofem::IntegrationRule::getRequiredNumberOfIntegrationPoints(), and oofem::IntegrationRule::setUpIntegrationPoints().
Referenced by oofem::QuadAxisym1_ht::giveBoundaryEdgeIntegrationRule(), and oofem::Element::giveBoundaryEdgeIntegrationRule().
|
pure virtual |
Returns boundary integration domain.
Implemented in oofem::BSplineInterpolation, oofem::FEI3dHexaQuad, oofem::FEI2dQuadQuad, oofem::FEI1dQuad, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, oofem::FEI1dLin, oofem::FEI2dLineHermite, oofem::FEI3dTrQuad, oofem::FEI3dTrLin, oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI3dTetQuad, oofem::FEI2dQuadLin, oofem::FEI3dHexaTriQuad, oofem::FEI2dQuadConst, oofem::FEI2dTrQuad, oofem::FEI3dHexaLin, oofem::FEI3dLineLin, oofem::FEI3dTetLin, and oofem::FEI2dTrLin.
|
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.
order | Polynomial order of the integrand (should NOT including determinant of jacobian). |
boundary | Boundary number. |
Reimplemented in oofem::BSplineInterpolation, oofem::FEInterpolation3d, oofem::FEI3dHexaQuad, oofem::FEI3dTrQuad, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, oofem::FEInterpolation1d, oofem::FEI3dTetLin, oofem::FEI3dHexaLin, oofem::FEI3dLineLin, and oofem::FEI3dHexaTriQuad.
Definition at line 63 of file feinterpol.C.
References oofem::IntegrationRule::getRequiredNumberOfIntegrationPoints(), and oofem::IntegrationRule::setUpIntegrationPoints().
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(), oofem::WeakPeriodicBoundaryCondition::giveExternalForcesVector(), oofem::PrescribedMean::giveInternalForcesVector(), oofem::WeakPeriodicBoundaryCondition::giveInternalForcesVector(), oofem::MixedGradientPressureNeumann::integrateDevTangent(), oofem::PrescribedGradientBCNeumann::integrateTangent(), oofem::TransportGradientNeumann::integrateTangent(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionDev(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionVelocityTangent(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionXTangent(), and oofem::MixedGradientPressureNeumann::integrateVolTangent().
|
pure virtual |
Returns boundary integration domain.
Implemented in oofem::BSplineInterpolation, oofem::FEI3dHexaQuad, oofem::FEI2dQuadQuad, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, oofem::FEI1dQuad, oofem::FEI1dLin, oofem::FEI2dLineHermite, oofem::FEI3dTrQuad, oofem::FEI3dTrLin, oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI3dTetQuad, oofem::FEI2dQuadLin, oofem::FEI3dHexaTriQuad, oofem::FEI2dQuadConst, oofem::FEI2dTrQuad, oofem::FEI3dHexaLin, oofem::FEI3dLineLin, oofem::FEI3dTetLin, and oofem::FEI2dTrLin.
|
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.
order | Polynomial order of the integrand (should NOT including determinant of jacobian). |
boundary | Boundary number. |
Definition at line 85 of file feinterpol.C.
References oofem::IntegrationRule::getRequiredNumberOfIntegrationPoints(), and oofem::IntegrationRule::setUpIntegrationPoints().
Referenced by oofem::QuadAxisym1_ht::giveBoundarySurfaceIntegrationRule(), and oofem::Element::giveBoundarySurfaceIntegrationRule().
|
pure virtual |
Returns the geometry type fo the interpolator.
Implemented in oofem::BSplineInterpolation, oofem::FEI3dHexaQuad, oofem::FEI2dQuadQuad, oofem::FEI1dHermite, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI2dTrLin, oofem::FEI2dLineHermite, oofem::FEI2dTrConst, oofem::FEI3dTrQuad, oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI2dQuadLin, oofem::FEI3dHexaTriQuad, oofem::FEI2dQuadConst, oofem::FEI2dTrQuad, oofem::FEI3dHexaLin, oofem::FEI3dLineLin, and oofem::FEI3dTetLin.
Referenced by oofem::Element::giveGeometryType().
|
pure virtual |
Returns the integration domain of the interpolator.
Implemented in oofem::BSplineInterpolation, oofem::FEI3dHexaQuad, oofem::FEI2dQuadQuad, oofem::FEI1dHermite, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI2dLineHermite, oofem::FEI2dTrConst, oofem::FEI3dTrQuad, oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI2dQuadLin, oofem::FEI3dHexaTriQuad, oofem::FEI2dQuadConst, oofem::FEI2dTrLin, oofem::FEI2dTrQuad, oofem::FEI3dHexaLin, oofem::FEI3dLineLin, and oofem::FEI3dTetLin.
Referenced by oofem::Element::giveIntegrationDomain().
|
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.
order | Polynomial order of integrand (should NOT including determinant of jacobian). |
Reimplemented in oofem::BSplineInterpolation, oofem::FEI3dHexaQuad, oofem::FEI3dTrQuad, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, oofem::FEInterpolation1d, oofem::FEI2dQuadQuad, oofem::FEI2dLineHermite, oofem::FEI2dLineLin, oofem::FEI3dTetLin, oofem::FEI2dLineQuad, oofem::FEI3dHexaLin, oofem::FEI3dLineLin, oofem::FEI2dTrLin, oofem::FEI2dQuadLin, oofem::FEI2dTrQuad, oofem::FEI2dQuadConst, oofem::FEI2dTrConst, oofem::FEI3dHexaTriQuad, and oofem::FEI2dQuadBiQuad.
Definition at line 52 of file feinterpol.C.
References oofem::IntegrationRule::getRequiredNumberOfIntegrationPoints(), and oofem::IntegrationRule::SetUpPointsOnLine().
Referenced by oofem::PrescribedMean::assemble(), oofem::PrescribedMean::computeDomainSize(), oofem::TransportElement::computeLoadVector(), oofem::NeumannMomentLoad::computeXbar(), and oofem::PrescribedMean::giveInternalForcesVector().
|
inline |
Returns the interpolation order.
Definition at line 159 of file feinterpol.h.
Referenced by oofem::TransportElement::computeBoundaryEdgeLoadVector(), oofem::TrPlanestressRotAllman::computeBoundaryEdgeLoadVector(), oofem::TransportElement::computeBoundarySurfaceLoadVector(), oofem::Shell7BaseXFEM::computeEnrTractionForce(), oofem::TransportGradientNeumann::computeEta(), oofem::TransportElement::computeLoadVector(), oofem::SurfaceTensionBoundaryCondition::computeLoadVectorFromElement(), oofem::MixedGradientPressureWeakPeriodic::computeStress(), oofem::TransportElement::computeTangentFromEdgeLoad(), oofem::SurfaceTensionBoundaryCondition::computeTangentFromElement(), oofem::TransportElement::computeTangentFromSurfaceLoad(), oofem::Shell7Base::computeTractionForce(), oofem::TransportGradientDirichlet::computeXi(), oofem::HuertaRemeshingCriteria::estimateMeshDensities(), oofem::TransportElement::giveApproxOrder(), oofem::StructuralElement::giveNumberOfIPForMassMtrxIntegration(), oofem::MixedGradientPressureNeumann::integrateDevTangent(), oofem::PrescribedGradientBCNeumann::integrateTangent(), oofem::TransportGradientNeumann::integrateTangent(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionDev(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionVelocityTangent(), oofem::MixedGradientPressureWeakPeriodic::integrateTractionXTangent(), and oofem::MixedGradientPressureNeumann::integrateVolTangent().
|
inlinevirtual |
Gives the jacobian matrix at the local coordinates.
jacobianMatrix | The requested matrix. |
lcoords | Local coordinates. |
cellgeo | Element geometry. |
Reimplemented in oofem::BSplineInterpolation, oofem::FEI3dHexaQuad, oofem::FEI3dTrQuad, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI2dLineQuad, oofem::FEI3dWedgeQuad, oofem::TSplineInterpolation, oofem::FEI3dHexaLin, oofem::FEI3dLineLin, oofem::FEInterpolation2d, oofem::FEI3dWedgeLin, and oofem::NURBSInterpolation.
Definition at line 232 of file feinterpol.h.
References OOFEM_ERROR.
Referenced by oofem::SolidShell::computeEASBmatrixAt(), oofem::MeshQualityErrorEstimator::computeJacobianError(), oofem::Structural3DElement::giveMaterialOrientationAt(), and oofem::Structural2DElement::giveMaterialOrientationAt().
|
inlinevirtual |
Returns the knot multiplicity of the receiver.
Reimplemented in oofem::BSplineInterpolation.
Definition at line 471 of file feinterpol.h.
Referenced by oofem::IGAElement::initializeFrom(), and oofem::IGATSplineElement::initializeFrom().
|
inlinevirtual |
Returns indices (zero based) of nonzero basis functions for given knot span.
The knot span identifies the sub-region of the finite element.
Reimplemented in oofem::BSplineInterpolation, and oofem::TSplineInterpolation.
Definition at line 444 of file feinterpol.h.
Referenced by oofem::StructuralElementEvaluator::giveIntegrationElementLocalCodeNumbers().
|
inlinevirtual |
Returns the knot values of the receiver.
Reimplemented in oofem::BSplineInterpolation.
Definition at line 467 of file feinterpol.h.
Referenced by oofem::IGAElement::initializeFrom(), and oofem::IGATSplineElement::initializeFrom().
|
inlinevirtual |
Returns the subdivision of patch parametric space.
Reimplemented in oofem::BSplineInterpolation.
Definition at line 457 of file feinterpol.h.
Referenced by oofem::drawIGAPatchDeformedGeometry(), oofem::IGAElement::drawRawGeometry(), oofem::BsplinePlaneStressElement::drawScalar(), oofem::NURBSPlaneStressElement::drawScalar(), oofem::TSplinePlaneStressElement::drawScalar(), and oofem::NURBSSpace3dElement::drawScalar().
|
inlinevirtual |
Returns a matrix containing the local coordinates for each node corresponding to the interpolation.
Reimplemented in oofem::FEI3dWedgeQuad, and oofem::FEI3dTrQuad.
Definition at line 199 of file feinterpol.h.
References OOFEM_ERROR.
Referenced by oofem::Shell7Base::setupInitialNodeDirectors().
|
pure virtual |
Returns number of spatial dimensions.
Implemented in oofem::BSplineInterpolation, oofem::FEInterpolation2d, oofem::FEInterpolation1d, and oofem::FEInterpolation3d.
Referenced by oofem::tet21ghostsolid::computeBoundarySurfaceLoadVector(), oofem::drawIGAPatchDeformedGeometry(), and oofem::StructuralElementEvaluator::giveIntegrationElementLocalCodeNumbers().
|
inlinevirtual |
Returns number of edges.
Reimplemented in oofem::FEI3dTrQuad, oofem::FEI3dTrLin, oofem::FEI2dTrLin, oofem::FEI2dQuadLin, oofem::FEI2dTrQuad, oofem::FEI2dLineQuad, and oofem::FEI2dLineLin.
Definition at line 479 of file feinterpol.h.
References OOFEM_ERROR.
Referenced by oofem::GeometryBasedEI::computeIntersectionPoints(), oofem::Line::computeNumberOfIntersectionPoints(), oofem::GeometryBasedEI::updateNodeEnrMarker(), and oofem::XfemElementInterface::XfemElementInterface_prepareNodesForDelaunay().
|
inlinevirtual |
Returns the number of nonzero basis functions at individual knot span,.
Reimplemented in oofem::BSplineInterpolation, and oofem::TSplineInterpolation.
Definition at line 449 of file feinterpol.h.
|
inlinevirtual |
Returns the number of knot spans of the receiver.
Reimplemented in oofem::BSplineInterpolation.
Definition at line 463 of file feinterpol.h.
Referenced by oofem::IGAElement::initializeFrom(), and oofem::IGATSplineElement::initializeFrom().
|
inlinevirtual |
Returns the number of geometric nodes of the receiver.
Reimplemented in oofem::FEI3dTrQuad, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI3dWedgeLin, oofem::FEI3dWedgeQuad, oofem::FEI3dHexaQuad, oofem::FEI2dLineHermite, oofem::FEI2dLineLin, oofem::FEI2dLineQuad, oofem::FEI3dLineLin, oofem::FEI2dQuadConst, oofem::FEI2dTrConst, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI2dQuadQuad, oofem::FEI1dHermite, oofem::FEI2dQuadBiQuad, oofem::FEI2dTrLin, oofem::FEI2dQuadLin, oofem::FEI2dTrQuad, oofem::FEI3dTetLin, oofem::FEI3dHexaLin, and oofem::FEI3dHexaTriQuad.
Definition at line 486 of file feinterpol.h.
References OOFEM_ERROR.
Referenced by oofem::FEInterpolation2d::boundarySurfaceGiveNodes(), oofem::Structural3DElement::computeNumberOfDofs(), oofem::Structural2DElement::computeNumberOfDofs(), and oofem::Structural2DElement::giveNumberOfNodes().
|
virtual |
Evaluates the determinant of the transformation.
lcoords | Array containing (local) coordinates. |
cellgeo | Underlying cell geometry. |
Reimplemented in oofem::FEI2dQuadQuadAxi, oofem::FEI2dQuadLinAxi, oofem::FEI2dTrLinAxi, oofem::FEI2dLineQuad, oofem::FEI2dLineLin, oofem::FEI3dWedgeLin, oofem::FEI2dLineHermite, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI3dWedgeQuad, oofem::FEI1dHermite, oofem::FEI3dLineLin, oofem::FEI2dTrLin, oofem::FEI2dTrConst, and oofem::FEI3dTetLin.
Definition at line 43 of file feinterpol.C.
References oofem::FloatMatrix::giveDeterminant().
Referenced by oofem::PrescribedMean::assemble(), oofem::FEInterpolation2d::boundarySurfaceEvalNormal(), oofem::FEInterpolation2d::boundarySurfaceGiveTransformationJacobian(), oofem::NLStructuralElement::computeCurrentVolume(), oofem::PrescribedMean::computeDomainSize(), oofem::SolidShell::computeEASBmatrixAt(), oofem::tet21ghostsolid::computeLoadVector(), oofem::Hexa21Stokes::computeLoadVector(), oofem::Tet21Stokes::computeLoadVector(), oofem::Tr21Stokes::computeLoadVector(), oofem::tet21ghostsolid::computeStiffnessMatrix(), oofem::QuadAxisym1_ht::computeVolumeAround(), oofem::Quad1_ht::computeVolumeAround(), oofem::Brick1_ht::computeVolumeAround(), oofem::QBrick1_ht::computeVolumeAround(), oofem::Tr21Stokes::computeVolumeAround(), oofem::Quad1PlateSubSoil::computeVolumeAround(), oofem::tet21ghostsolid::computeVolumeAround(), oofem::Quad1Mindlin::computeVolumeAround(), oofem::Quad1MindlinShell3D::computeVolumeAround(), oofem::QDKTPlate::computeVolumeAround(), oofem::TR21_2D_SUPG::computeVolumeAround(), oofem::Quad10_2D_SUPG::computeVolumeAround(), oofem::TR1_2D_SUPG2_AXI::computeVolumeAroundID(), oofem::TR1_2D_SUPG2::computeVolumeAroundID(), oofem::NeumannMomentLoad::computeXbar(), oofem::MatlabExportModule::doOutputHomogenizeDofIDs(), oofem::PrescribedMean::giveInternalForcesVector(), oofem::tet21ghostsolid::giveInternalForcesVectorGivenSolution(), oofem::tet21ghostsolid::giveInternalForcesVectorGivenSolutionDebug(), oofem::FEI2dQuadLinAxi::giveTransformationJacobian(), oofem::FEI2dQuadQuadAxi::giveTransformationJacobian(), oofem::StokesFlowVelocityHomogenization::integrateNMatrix(), and oofem::TR21_2D_SUPG::LS_PCS_computeVolume().
|
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.
answer | Contains evaluated local coordinates. |
gcoords | Array containing global coordinates. |
cellgeo | Underlying cell geometry. |
Implemented in oofem::BSplineInterpolation, oofem::FEI3dHexaQuad, oofem::TSplineInterpolation, oofem::FEInterpolation2d, oofem::FEI3dWedgeLin, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI3dWedgeQuad, oofem::FEI1dHermite, oofem::FEI2dLineHermite, oofem::FEI3dTrQuad, oofem::FEI2dLineQuad, oofem::FEI3dLineLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI2dLineLin, oofem::FEI2dQuadLin, oofem::FEI2dTrLin, oofem::FEI2dTrConst, oofem::FEI3dHexaLin, oofem::FEI3dTetLin, and oofem::NURBSInterpolation.
Referenced by oofem::WeakPeriodicBoundaryCondition::assemble(), oofem::WeakPeriodicBoundaryCondition::computeElementTangent(), oofem::Shell7BaseXFEM::computeEnrTractionForce(), oofem::Element::computeLocalCoordinates(), oofem::NeumannMomentLoad::computeValueAtBoundary(), oofem::SmoothedNodalInternalVariableField::evaluateAt(), oofem::DofManValueField::evaluateAt(), oofem::UnstructuredGridField::Cell::giveClosestPoint(), oofem::WeakPeriodicBoundaryCondition::giveInternalForcesVector(), oofem::UnstructuredGridField::Cell::interpolate(), oofem::HangingNode::postInitialize(), oofem::qcNode::postInitializeAsHangingNode(), and oofem::SpatialLocalizerInterface::SpatialLocalizerI_giveClosestPoint().
|
inlinevirtual |
Returns true, if receiver is formulated on sub-patch basis.
Reimplemented in oofem::BSplineInterpolation.
Definition at line 453 of file feinterpol.h.
Referenced by oofem::StructuralElementEvaluator::computeStiffnessMatrix(), oofem::StructuralElementEvaluator::giveIntegrationElementLocalCodeNumbers(), and oofem::StructuralElementEvaluator::giveInternalForcesVector().
|
inlinevirtual |
Initializes receiver according to object description stored in input record.
Reimplemented in oofem::BSplineInterpolation, and oofem::TSplineInterpolation.
Definition at line 143 of file feinterpol.h.
References oofem::IRRT_OK.
Referenced by oofem::IGAElement::initializeFrom(), and oofem::IGATSplineElement::initializeFrom().
|
pure virtual |
Evaluates global coordinates from given local ones.
answer | Contains resulting global coordinates. |
lcoords | Array containing (local) coordinates. |
cellgeo | Underlying cell geometry. |
Implemented in oofem::BSplineInterpolation, oofem::FEI3dHexaQuad, oofem::TSplineInterpolation, oofem::FEI2dQuadQuad, oofem::FEI3dWedgeLin, oofem::FEI1dLin, oofem::FEI1dQuad, oofem::FEI3dWedgeQuad, oofem::FEI1dHermite, oofem::FEI2dLineHermite, oofem::FEI3dTrQuad, oofem::FEI2dLineQuad, oofem::FEI3dLineLin, oofem::FEI3dTetQuad, oofem::FEI3dTrLin, oofem::FEI2dLineLin, oofem::FEI2dQuadLin, oofem::FEI2dTrQuad, oofem::FEI2dTrLin, oofem::FEI2dQuadConst, oofem::FEI2dTrConst, oofem::FEI3dHexaLin, oofem::FEI3dTetLin, and oofem::NURBSInterpolation.
Referenced by oofem::FEInterpolation2d::boundarySurfaceLocal2global(), oofem::Shell7BaseXFEM::computeEnrichedBmatrixAt(), oofem::Element::computeGlobalCoordinates(), oofem::TransportElement::computeLoadVector(), oofem::NeumannMomentLoad::computeXbar(), oofem::drawIGAPatchDeformedGeometry(), oofem::IGAElement::drawRawGeometry(), oofem::BsplinePlaneStressElement::drawScalar(), oofem::NURBSPlaneStressElement::drawScalar(), oofem::TSplinePlaneStressElement::drawScalar(), oofem::NURBSSpace3dElement::drawScalar(), oofem::UnstructuredGridField::Cell::giveClosestPoint(), oofem::FEInterpolation2d::global2local(), oofem::SpatialLocalizerInterface::SpatialLocalizerI_giveClosestPoint(), oofem::TR1_2D_SUPG2_AXI::updateIntegrationRules(), and oofem::TR1_2D_SUPG2::updateIntegrationRules().
|
protected |
Definition at line 135 of file feinterpol.h.