OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::FEI3dTrQuad Class Reference

Second order triangular interpolation in 3D space (6 nodes). More...

#include <fei3dtrquad.h>

+ Inheritance diagram for oofem::FEI3dTrQuad:
+ Collaboration diagram for oofem::FEI3dTrQuad:

Public Member Functions

 FEI3dTrQuad ()
 
virtual integrationDomain giveIntegrationDomain () const
 Returns the integration domain of the interpolator. More...
 
virtual Element_Geometry_Type giveGeometryType () const
 Returns the geometry type fo the interpolator. More...
 
virtual integrationDomain giveBoundaryIntegrationDomain (int ib) const
 Returns boundary integration domain. More...
 
virtual integrationDomain giveBoundarySurfaceIntegrationDomain (int isurf) const
 Returns boundary integration domain. More...
 
virtual integrationDomain giveBoundaryEdgeIntegrationDomain (int iedge) const
 Returns boundary integration domain. More...
 
virtual void evalN (FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the array of interpolation functions (shape functions) at given point. More...
 
virtual double evaldNdx (FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point. More...
 
virtual void local2global (FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates global coordinates from given local ones. More...
 
virtual int global2local (FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates local coordinates from given global ones. More...
 
void giveDerivativeXi (FloatArray &n, const FloatArray &lcoords)
 
void giveDerivativeEta (FloatArray &n, const FloatArray &lcoords)
 
virtual void giveLocalNodeCoords (FloatMatrix &answer)
 Returns a matrix containing the local coordinates for each node corresponding to the interpolation. 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...
 
void surfaceEvaldNdxi (FloatMatrix &answer, const FloatArray &lcoords)
 
virtual void edgeEvalN (FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the array of edge interpolation functions (shape functions) at given point. More...
 
void edgeEvaldNdxi (FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the matrix of derivatives of edge interpolation functions (shape functions) at given point. More...
 
virtual void edgeEvaldNdx (FloatMatrix &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the matrix of derivatives of edge interpolation functions (shape functions) at given point. More...
 
virtual void edgeLocal2global (FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates edge global coordinates from given local ones. More...
 
virtual double edgeGiveTransformationJacobian (int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the edge jacobian of transformation between local and global coordinates. More...
 
virtual void computeLocalEdgeMapping (IntArray &edgeNodes, int iedge)
 
virtual int giveNumberOfEdges () const
 Returns number of edges. More...
 
virtual void surfaceEvalN (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the array of edge interpolation functions (shape functions) at given point. More...
 
virtual void surfaceEvaldNdx (FloatMatrix &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the matrix of derivatives of edge interpolation functions (shape functions) at given point. More...
 
virtual double surfaceEvalNormal (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the normal out of the surface at given point. More...
 
virtual void surfaceLocal2global (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates edge global coordinates from given local ones. More...
 
virtual double surfaceGiveTransformationJacobian (int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the edge jacobian of transformation between local and global coordinates. More...
 
virtual void computeLocalSurfaceMapping (IntArray &edgeNodes, int iedge)
 
void surfaceEvalBaseVectorsAt (FloatArray &G1, FloatArray &G2, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 
virtual void surfaceGiveJacobianMatrixAt (FloatMatrix &jacobianMatrix, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 
virtual IntegrationRulegiveIntegrationRule (int order)
 Sets up a suitable integration rule for numerical integrating over volume. More...
 
virtual IntegrationRulegiveBoundaryIntegrationRule (int order, int boundary)
 Sets up a suitable integration rule for integrating over the requested boundary. More...
 
double giveArea (const FEICellGeometry &cellgeo) const
 
virtual int giveNumberOfNodes () const
 Returns the number of geometric nodes of the receiver. More...
 
- Public Member Functions inherited from oofem::FEInterpolation3d
 FEInterpolation3d (int o)
 
virtual int giveNsd ()
 Returns number of spatial dimensions. More...
 
virtual double giveVolume (const FEICellGeometry &cellgeo) const
 Computes the exact volume. More...
 
virtual void boundaryEdgeGiveNodes (IntArray &answer, int boundary)
 Gives the boundary nodes for requested boundary number. More...
 
virtual void boundaryEdgeEvalN (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the basis functions on the requested boundary. More...
 
virtual double boundaryEdgeGiveTransformationJacobian (int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 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)
 Maps the local boundary coordinates to global. More...
 
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. More...
 
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. More...
 
virtual double boundarySurfaceEvalNormal (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the normal out of the surface at given point. More...
 
virtual void boundarySurfaceLocal2global (FloatArray &answer, int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates edge global coordinates from given local ones. More...
 
virtual double boundarySurfaceGiveTransformationJacobian (int isurf, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the edge jacobian of transformation between local and global coordinates. More...
 
virtual void boundaryGiveNodes (IntArray &answer, int boundary)
 Gives the boundary nodes for requested boundary number. More...
 
virtual void boundaryEvalN (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the basis functions on the requested boundary. More...
 
virtual double boundaryEvalNormal (FloatArray &answer, int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the normal on the requested boundary. More...
 
virtual double boundaryGiveTransformationJacobian (int boundary, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 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)
 Maps the local boundary coordinates to global. More...
 
virtual IntegrationRulegiveBoundaryEdgeIntegrationRule (int order, int boundary)
 Sets up a suitable integration rule for integrating over the requested boundary. More...
 
virtual void boundarySurfaceGiveNodes (IntArray &answer, int boundary)
 Gives the boundary nodes for requested boundary number. More...
 
void computeEdgeMapping (IntArray &edgeNodes, IntArray &elemNodes, int iedge)
 
void computeSurfaceMapping (IntArray &surfNodes, IntArray &elemNodes, int isurf)
 
- Public Member Functions inherited from oofem::FEInterpolation
 FEInterpolation (int o)
 
virtual ~FEInterpolation ()
 
virtual IRResultType initializeFrom (InputRecord *ir)
 Initializes receiver according to object description stored in input record. More...
 
std::string errorInfo (const char *func) const
 
int giveInterpolationOrder ()
 Returns the interpolation order. 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 double giveTransformationJacobian (const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Evaluates the determinant of the transformation. More...
 
virtual IntegrationRulegiveBoundarySurfaceIntegrationRule (int order, int boundary)
 Sets up a suitable integration rule for integrating over the requested boundary. More...
 
virtual double evalNXIntegral (int boundary, const FEICellGeometry &cellgeo)
 Computes the integral $ \int_S n \cdot x \mathrm{d}s $. More...
 
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 FloatArraygiveKnotValues (int dim)
 Returns the knot values of the receiver. More...
 
virtual const IntArraygiveKnotMultiplicity (int dim)
 Returns the knot multiplicity of the receiver. More...
 

Protected Member Functions

double edgeComputeLength (IntArray &edgeNodes, const FEICellGeometry &cellgeo)
 
double computeVolume (const FEICellGeometry &cellgeo)
 
virtual void giveJacobianMatrixAt (FloatMatrix &jacobianMatrix, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
 Gives the jacobian matrix at the local coordinates. More...
 

Additional Inherited Members

- Protected Attributes inherited from oofem::FEInterpolation
int order
 

Detailed Description

Second order triangular interpolation in 3D space (6 nodes).

Todo:
This class is entirely unchecked.
Author
Jim Brouzoulis
Mikael Öhman

Definition at line 47 of file fei3dtrquad.h.

Constructor & Destructor Documentation

oofem::FEI3dTrQuad::FEI3dTrQuad ( )
inline

Definition at line 50 of file fei3dtrquad.h.

Member Function Documentation

void oofem::FEI3dTrQuad::computeLocalEdgeMapping ( IntArray edgeNodes,
int  iedge 
)
virtual
void oofem::FEI3dTrQuad::computeLocalSurfaceMapping ( IntArray edgeNodes,
int  iedge 
)
virtual
Todo:
  • fix wrt xfem

Implements oofem::FEInterpolation3d.

Definition at line 393 of file fei3dtrquad.C.

References computeLocalEdgeMapping().

double oofem::FEI3dTrQuad::computeVolume ( const FEICellGeometry cellgeo)
protected
double oofem::FEI3dTrQuad::edgeComputeLength ( IntArray edgeNodes,
const FEICellGeometry cellgeo 
)
protected
Todo:
Implement this

Definition at line 276 of file fei3dtrquad.C.

References OOFEM_ERROR.

void oofem::FEI3dTrQuad::edgeEvaldNdx ( FloatMatrix answer,
int  iedge,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
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)

Parameters
answerContains resulting matrix of derivatives, the member at i,j position contains value of dNj/dxi.
iedgeDetermines the edge number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation3d.

Definition at line 202 of file fei3dtrquad.C.

References OOFEM_ERROR.

void oofem::FEI3dTrQuad::edgeEvaldNdxi ( FloatArray answer,
int  iedge,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
virtual

Evaluates the matrix of derivatives of edge interpolation functions (shape functions) at given point.

These derivatives are in local (parent) coordinate system

Parameters
answerContains resulting matrix of derivatives, the member at i,j position contains value of dN_j/dxi_i.
iedgeDetermines the edge number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Reimplemented from oofem::FEInterpolation3d.

Definition at line 209 of file fei3dtrquad.C.

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

void oofem::FEI3dTrQuad::edgeEvalN ( FloatArray answer,
int  iedge,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
virtual

Evaluates the array of edge interpolation functions (shape functions) at given point.

Parameters
answerContains resulting array of evaluated interpolation functions.
iedgeEdge number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation3d.

Definition at line 190 of file fei3dtrquad.C.

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

Referenced by edgeLocal2global().

double oofem::FEI3dTrQuad::edgeGiveTransformationJacobian ( int  iedge,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
virtual

Evaluates the edge jacobian of transformation between local and global coordinates.

Parameters
iedgeDetermines edge number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.
Returns
Determinant of the transformation.

Implements oofem::FEInterpolation3d.

Definition at line 235 of file fei3dtrquad.C.

References oofem::FloatArray::add(), oofem::IntArray::at(), oofem::FloatArray::at(), computeLocalEdgeMapping(), oofem::FloatArray::computeNorm(), and oofem::FEICellGeometry::giveVertexCoordinates().

void oofem::FEI3dTrQuad::edgeLocal2global ( FloatArray answer,
int  iedge,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
virtual

Evaluates edge global coordinates from given local ones.

These derivatives are in global coordinate system (where the nodal coordinates are defined).

Parameters
answerContains resulting global coordinates.
iedgeDetermines edge number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation3d.

Definition at line 219 of file fei3dtrquad.C.

References oofem::FloatArray::add(), oofem::FloatArray::clear(), computeLocalEdgeMapping(), edgeEvalN(), oofem::FloatArray::giveSize(), oofem::FEICellGeometry::giveVertexCoordinates(), and N.

double oofem::FEI3dTrQuad::evaldNdx ( FloatMatrix answer,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
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)

Parameters
answerContains resulting matrix of derivatives, the member at i,j position contains value of dNi/dxj.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.
Returns
Determinant of the Jacobian.

Implements oofem::FEInterpolation.

Definition at line 49 of file fei3dtrquad.C.

References OOFEM_ERROR.

void oofem::FEI3dTrQuad::evaldNdxi ( FloatMatrix answer,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
virtual

Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point.

These derivatives are wrt local (parent) coordinate system

Parameters
answerContains resulting matrix of derivatives, the member at i,j position contains value of dNi/dxij.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Reimplemented from oofem::FEInterpolation.

Definition at line 57 of file fei3dtrquad.C.

References surfaceEvaldNdxi().

void oofem::FEI3dTrQuad::evalN ( FloatArray answer,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
virtual

Evaluates the array of interpolation functions (shape functions) at given point.

Parameters
answerContains resulting array of evaluated interpolation functions.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation.

Definition at line 43 of file fei3dtrquad.C.

References surfaceEvalN().

Referenced by local2global().

double oofem::FEI3dTrQuad::giveArea ( const FEICellGeometry cellgeo) const
Todo:
this only correct for a planar triangle in the xy-plane

Definition at line 421 of file fei3dtrquad.C.

References oofem::FloatArray::at(), and oofem::FEICellGeometry::giveVertexCoordinates().

Referenced by oofem::Tr2Shell7XFEM::computeArea().

virtual integrationDomain oofem::FEI3dTrQuad::giveBoundaryEdgeIntegrationDomain ( int  boundary) const
inlinevirtual

Returns boundary integration domain.

Implements oofem::FEInterpolation.

Definition at line 57 of file fei3dtrquad.h.

References oofem::_Line.

virtual integrationDomain oofem::FEI3dTrQuad::giveBoundaryIntegrationDomain ( int  boundary) const
inlinevirtual

Returns boundary integration domain.

Implements oofem::FEInterpolation.

Definition at line 55 of file fei3dtrquad.h.

References oofem::_Triangle.

IntegrationRule * oofem::FEI3dTrQuad::giveBoundaryIntegrationRule ( int  order,
int  boundary 
)
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.

Parameters
orderPolynomial order of the integrand (should NOT including determinant of jacobian).
boundaryBoundary number.
Todo:
Not sure about what defines boundaries on these elements. 2 surfaces + 3 edges? Ask Jim about this.

Reimplemented from oofem::FEInterpolation3d.

Definition at line 412 of file fei3dtrquad.C.

References OOFEM_ERROR.

virtual integrationDomain oofem::FEI3dTrQuad::giveBoundarySurfaceIntegrationDomain ( int  boundary) const
inlinevirtual

Returns boundary integration domain.

Implements oofem::FEInterpolation.

Definition at line 56 of file fei3dtrquad.h.

References oofem::_Triangle.

void oofem::FEI3dTrQuad::giveDerivativeEta ( FloatArray n,
const FloatArray lcoords 
)

Definition at line 83 of file fei3dtrquad.C.

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

Referenced by surfaceEvaldNdxi().

void oofem::FEI3dTrQuad::giveDerivativeXi ( FloatArray n,
const FloatArray lcoords 
)

Definition at line 64 of file fei3dtrquad.C.

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

Referenced by surfaceEvaldNdxi().

virtual Element_Geometry_Type oofem::FEI3dTrQuad::giveGeometryType ( ) const
inlinevirtual

Returns the geometry type fo the interpolator.

Implements oofem::FEInterpolation.

Definition at line 53 of file fei3dtrquad.h.

virtual integrationDomain oofem::FEI3dTrQuad::giveIntegrationDomain ( ) const
inlinevirtual

Returns the integration domain of the interpolator.

Implements oofem::FEInterpolation.

Definition at line 52 of file fei3dtrquad.h.

References oofem::_Triangle.

IntegrationRule * oofem::FEI3dTrQuad::giveIntegrationRule ( int  order)
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.

Parameters
orderPolynomial order of integrand (should NOT including determinant of jacobian).

Reimplemented from oofem::FEInterpolation.

Definition at line 403 of file fei3dtrquad.C.

References oofem::_Triangle, oofem::IntegrationRule::getRequiredNumberOfIntegrationPoints(), and oofem::IntegrationRule::SetUpPointsOnTriangle().

void oofem::FEI3dTrQuad::giveJacobianMatrixAt ( FloatMatrix jacobianMatrix,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
protectedvirtual

Gives the jacobian matrix at the local coordinates.

Parameters
jacobianMatrixThe requested matrix.
lcoordsLocal coordinates.
cellgeoElement geometry.

Reimplemented from oofem::FEInterpolation.

Definition at line 183 of file fei3dtrquad.C.

References OOFEM_ERROR.

void oofem::FEI3dTrQuad::giveLocalNodeCoords ( FloatMatrix answer)
virtual

Returns a matrix containing the local coordinates for each node corresponding to the interpolation.

Reimplemented from oofem::FEInterpolation.

Definition at line 103 of file fei3dtrquad.C.

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

Referenced by oofem::Shell7Base::giveFictiousCZNodeCoordsForExport(), oofem::Shell7BaseXFEM::giveFictiousUpdatedCZNodeCoordsForExport(), and oofem::Shell7BaseXFEM::recoverValuesFromCZIP().

virtual int oofem::FEI3dTrQuad::giveNumberOfEdges ( ) const
inlinevirtual

Returns number of edges.

Reimplemented from oofem::FEInterpolation.

Definition at line 84 of file fei3dtrquad.h.

virtual int oofem::FEI3dTrQuad::giveNumberOfNodes ( ) const
inlinevirtual

Returns the number of geometric nodes of the receiver.

Reimplemented from oofem::FEInterpolation.

Definition at line 103 of file fei3dtrquad.h.

int oofem::FEI3dTrQuad::global2local ( FloatArray answer,
const FloatArray gcoords,
const FEICellGeometry cellgeo 
)
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.

Parameters
answerContains evaluated local coordinates.
gcoordsArray containing global coordinates.
cellgeoUnderlying cell geometry.
Returns
Nonzero is returned if point is within the element geometry, zero otherwise.
Todo:
this is for linear triangle

Implements oofem::FEInterpolation.

Definition at line 138 of file fei3dtrquad.C.

References oofem::FloatArray::at(), oofem::FEICellGeometry::giveVertexCoordinates(), POINT_TOL, and oofem::FloatArray::resize().

void oofem::FEI3dTrQuad::local2global ( FloatArray answer,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
virtual

Evaluates global coordinates from given local ones.

Parameters
answerContains resulting global coordinates.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation.

Definition at line 126 of file fei3dtrquad.C.

References oofem::FloatArray::add(), oofem::FloatArray::at(), oofem::FloatArray::clear(), evalN(), and oofem::FEICellGeometry::giveVertexCoordinates().

void oofem::FEI3dTrQuad::surfaceEvalBaseVectorsAt ( FloatArray G1,
FloatArray G2,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
void oofem::FEI3dTrQuad::surfaceEvaldNdx ( FloatMatrix answer,
int  isurf,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
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).

Parameters
answerContains resulting matrix of derivatives, the member at i,j position contains value of dNj/dxi.
isurfDetermines the surface number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.
Todo:
Implement this

Reimplemented from oofem::FEInterpolation3d.

Definition at line 332 of file fei3dtrquad.C.

References OOFEM_ERROR.

void oofem::FEI3dTrQuad::surfaceEvaldNdxi ( FloatMatrix answer,
const FloatArray lcoords 
)
void oofem::FEI3dTrQuad::surfaceEvalN ( FloatArray answer,
int  isurf,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
virtual

Evaluates the array of edge interpolation functions (shape functions) at given point.

Parameters
answerContains resulting array of evaluated interpolation functions.
isurfSurface number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation3d.

Definition at line 284 of file fei3dtrquad.C.

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

Referenced by evalN(), and surfaceLocal2global().

double oofem::FEI3dTrQuad::surfaceEvalNormal ( FloatArray answer,
int  isurf,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
virtual

Evaluates the normal out of the surface at given point.

Parameters
answerContains resulting normal vector.
isurfDetermines the surface number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.
Returns
Surface mapping jacobian.

Reimplemented from oofem::FEInterpolation3d.

Definition at line 354 of file fei3dtrquad.C.

References oofem::FloatArray::beVectorProductOf(), oofem::FloatArray::computeNorm(), surfaceEvalBaseVectorsAt(), and oofem::FloatArray::times().

void oofem::FEI3dTrQuad::surfaceGiveJacobianMatrixAt ( FloatMatrix jacobianMatrix,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
virtual
double oofem::FEI3dTrQuad::surfaceGiveTransformationJacobian ( int  isurf,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
virtual

Evaluates the edge jacobian of transformation between local and global coordinates.

Parameters
isurfDetermines the surface number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.
Returns
Determinant of the transformation.

Implements oofem::FEInterpolation3d.

Definition at line 386 of file fei3dtrquad.C.

References OOFEM_ERROR.

void oofem::FEI3dTrQuad::surfaceLocal2global ( FloatArray answer,
int  isurf,
const FloatArray lcoords,
const FEICellGeometry cellgeo 
)
virtual

Evaluates edge global coordinates from given local ones.

These derivatives are in global coordinate system (where the nodal coordinates are defined).

Parameters
answerContains resulting global coordinates.
isurfDetermines the surface number.
lcoordsArray containing (local) coordinates.
cellgeoUnderlying cell geometry.

Implements oofem::FEInterpolation3d.

Definition at line 318 of file fei3dtrquad.C.

References oofem::FloatArray::add(), oofem::FloatArray::clear(), oofem::FloatArray::giveSize(), oofem::FEICellGeometry::giveVertexCoordinates(), N, and surfaceEvalN().


The documentation for this class was generated from the following files:

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:35 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011