35 #ifndef feinterpol3d_h 36 #define feinterpol3d_h 57 virtual void boundaryEdgeGiveNodes(
IntArray &answer,
int boundary);
59 virtual double boundaryEdgeGiveTransformationJacobian(
int boundary,
const FloatArray &lcoords,
const FEICellGeometry &cellgeo);
66 {this->surfaceEvaldNdx(answer, isurf, lcoords, cellgeo);}
69 {
return surfaceEvalNormal(answer, isurf, lcoords, cellgeo);}
72 {this->surfaceLocal2global(answer, isurf, lcoords, cellgeo);}
75 {
return this->surfaceGiveTransformationJacobian(isurf, lcoords, cellgeo);}
78 virtual void boundaryGiveNodes(
IntArray &answer,
int boundary);
81 virtual double boundaryGiveTransformationJacobian(
int boundary,
const FloatArray &lcoords,
const FEICellGeometry &cellgeo);
102 virtual void edgeEvaldNdx(
FloatMatrix &answer,
int iedge,
112 virtual void edgeEvaldNdxi(
FloatArray &answer,
int iedge,
122 virtual void edgeLocal2global(
FloatArray &answer,
int iedge,
131 virtual double edgeGiveTransformationJacobian(
int iedge,
135 virtual void computeLocalEdgeMapping(
IntArray &edgeNodes,
int iedge) = 0;
136 void computeEdgeMapping(
IntArray &edgeNodes,
IntArray &elemNodes,
int iedge);
157 virtual void surfaceEvaldNdx(
FloatMatrix &answer,
int isurf,
178 virtual void surfaceLocal2global(
FloatArray &answer,
int isurf,
187 virtual double surfaceGiveTransformationJacobian(
int isurf,
const FloatArray &lcoords,
190 virtual void computeLocalSurfaceMapping(
IntArray &surfNodes,
int isurf) = 0;
191 void computeSurfaceMapping(
IntArray &surfNodes,
IntArray &elemNodes,
int isurf);
194 virtual IntegrationRule *giveBoundaryEdgeIntegrationRule(
int order,
int boundary);
200 virtual void boundarySurfaceGiveNodes(
IntArray &answer,
int boundary);
203 #endif // feinterpol3d_h
Class representing a general abstraction for cell geometry.
virtual void boundarySurfaceLocal2global(FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates edge global coordinates from given local ones.
Class implementing an array of integers.
Abstract base class representing integration rule.
virtual IntegrationRule * giveBoundaryIntegrationRule(int order, int boundary)
Sets up a suitable integration rule for integrating over the requested boundary.
Class representing a general abstraction for finite element interpolation class.
virtual double boundarySurfaceEvalNormal(FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the normal out of the surface at given point.
virtual void boundarySurfaceEvalN(FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the array of edge interpolation functions (shape functions) at given point.
virtual int giveNsd()
Returns number of spatial dimensions.
virtual void boundarySurfaceEvaldNdx(FloatMatrix &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the matrix of derivatives of edge interpolation functions (shape functions) at given point...
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
virtual double boundarySurfaceGiveTransformationJacobian(int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the edge jacobian of transformation between local and global coordinates.
Class representing a general abstraction for surface finite element interpolation class...
the oofem namespace is to define a context or scope in which all oofem names are defined.