CATFmtModelInterfaces CATFmtGeometricalEngine

Usage: you can derive this class.


public class CATFmtGeometricalEngine

Object that handles necessary informations about a finite element in order to compute a quality criterion.
See .


Constructor and Destructor Index


o CATFmtGeometricalEngine(CATIFmtConnectivity*)
Constructs a geometrical engine corresponding to a given connectivity.
o ~CATFmtGeometricalEngine()
Destructor.

Method Index


o ComputeArea(int,int,double&)
Compute the element's face area (with intermediate nodes).
o ComputeAxis(double[3],double[3][3])
Compute element's axis
o ComputeEdgeAxis(CATMathAxis*&,int,int,double*)
Compute element's edge axis
o ComputeEdgeAxis(CATMathAxis*&,int,double*,double*)
Compute element's edge axis
o ComputeEdgeInteriorAngle(int,double&)
Compute element's edge angle Angle is computed between element faces belonging to edge
o ComputeEdgeIsopar(double*,int,double*)
Compute element's edge axis
o ComputeEdgePosition(double*,int,double*)
Compute position on element's edge
o ComputeFaceAxis(CATMathAxis*&,int,double*)
Compute element's face axis
o ComputeFaceAxis(double[],double[][3],int,double*)
Compute element's face axis
o ComputeFaceAxis(double*,double*,double*,int,double*)
Compute element's face axis
o ComputeFaceCoordinates(int,double[][3],double[],int&,double[][3])
Compute element's face local coordinates
o ComputeFaceIsopar(double*,double*,double*,int,double*)
Compute element's face axis
o ComputeFaceJacobian(int,double[][3],double[][2],double[][2],double&)
Compute the element's face jacobian
o ComputeFaceNormal(int,int,double[3])
Compute element's face normal
o ComputeFaceParameters(int,double[],double[])
Compute parameters on elemeent's face
o ComputeFacePosition(double*,int,double*)
Compute position on element's face
o ComputeFacePosition(int,double[],double[])
Compute position on element's face
o ComputeFaceProjection(int,double[3],double[3],double[3],int&)
Compute projection of point on element's face
o ComputeIsopar(double[][3],double*)
Compute element's axis
o ComputeJacobian(double*,double[][3],double*,double&)
Compute the element's jacobian
o ComputeLength(int,int,double&)
Compute the element's edge length (with intermediate nodes).
o ComputeMinBoxDistance(double[])
Get the minimum distance between a point and the element's bounding box
o ComputePosition(double*,double*)
Compute position on element
o ComputeShrink(float[][3],float)
Compute nodes coordinates with shrink
o GetBox()
Get the bounding box of element
o GetCenter()
Get element's center
o GetCenter(double*&)
Get the element's center.
o GetConnectivity()
Get the connectivity associated with.
o GetCoordinates()
Get nodes coordinates
o GetCoordinates(int)
Get node coordinates
o GetDimension()
Get the dimension of the connectivity.
o GetEdgeSizes()
Get the element's edges size (ignore intermediate nodes).
o GetEdges()
Get element's edges (ignore intermediate nodes).
o GetMainAreas(double*&)
Get the element's faces area (ignore intermediate nodes).
o GetMainEdge(int,CATMathVector&)
Get the element's edge (ignore intermediate nodes).
o GetMainLengths(double*&)
Get element's edges length (ignore intermediate nodes).
o GetMainNormal(int,CATMathVector&)
Get the element's face normal (ignore intermediate nodes).
o GetMaxEdge()
Get the element's maximum edge length.
o GetMinEdge()
Get the element's minimum edge length.
o GetMinHeight(double&)
Get the element's minimum height.
o GetNodesInteriorAngles(int,int&,double*&)
Compute element's nodes angle Angle is computed between two consecutive edges of element's face
o GetNormals(int)
Get the element's faces normal (ignore intermediate nodes).
o GetVolume(double&,int)
Get the element's volume.
o Init(double* const[])
Initialize the geometrical engine with the geometry of a finite element.
o Init(CATFmtElement const* const)
Initialize the geometrical engine with the geometry of a finite element.
o SetCoordinates(int,double[])
Set coordinates of specified node.

Data Member Index


o _FHeight
o _MinHeight

Constructor and Destructor


o CATFmtGeometricalEngine
public CATFmtGeometricalEngine( const iConnectivity)
Constructs a geometrical engine corresponding to a given connectivity.
Parameters:
iConnectivity
Connectivity to be associated with. See
.
o ~CATFmtGeometricalEngine
public virtual ~CATFmtGeometricalEngine()
Destructor.

Methods


o ComputeArea
public virtual ComputeArea( const iNuFace,
const iIntegrationType,
oArea)
Compute the element's face area (with intermediate nodes).
Parameters:
iNuFace
Local number of face, between 0 to NbFaces-1.
iIntegrationType
Type of numeric integration ( gauss scheme point of integration ).
Legal values:
0
Center.
1
Low precision.
2
Medium precision.
3
High precision.
oArea
Area value.
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeAxis
public virtual ComputeAxis( oOrigin,
oDirections)
Compute element's axis
Parameters:
oOrigin
Origin coordinates (on element center)
oDirections
Axis three vectors
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeEdgeAxis
public virtual ComputeEdgeAxis( ioAxis,
iNuEdge=0 ,
iNuFace=-1 ,
const iParams=NULL )
Compute element's edge axis
Parameters:
ioAxis
Mathematical axis in dimension 3 See
.
iNuEdge
Local number of edge, between 0 to NbEdges-1.
iNuFace
Local number of face, between 0 to NbFaces-1.
iParams
Parameters on edge
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeEdgeAxis
public virtual ComputeEdgeAxis( ioAxis,
iNuEdge,
iNormal,
const iParams=NULL)
Compute element's edge axis
Parameters:
ioAxis
Mathematical axis in dimension 3 See
.
iNuEdge
Local number of edge, between 0 to NbEdges-1.
iNormal
Axis vector
iParams
Parameters on edge
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeEdgeInteriorAngle
public virtual ComputeEdgeInteriorAngle( iNuEdge,
Value)
Compute element's edge angle Angle is computed between element faces belonging to edge
Parameters:
iNuEdge
Local number of edge, between 0 to NbEdges-1.
Value
The angle value.
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeEdgeIsopar
public virtual ComputeEdgeIsopar( oDirU,
iNuEdge=0,
const iDerivates=NULL)
Compute element's edge axis
Parameters:
oDirU
Axis vector U
iNuEdge
Local number of edge, between 0 to NbEdges-1.
iDerivates
Shape functions derivates
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeEdgePosition
public virtual ComputeEdgePosition( oPosition,
iNuEdge=0,
const iFunctions=NULL )
Compute position on element's edge
Parameters:
oPosition
Coordinates of position
iNuEdge
Local number of edge, between 0 to NbEdges-1.
iFunctions
Shape functions
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeFaceAxis
public ComputeFaceAxis( ioAxis,
iNuFace=0 ,
const iParams=NULL )
Compute element's face axis
Parameters:
ioAxis
Mathematical axis in dimension 3 See
.
iNuFace
Local number of face, between 0 to NbFaces-1.
iParams
Parameters on face
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeFaceAxis
public virtual ComputeFaceAxis( oOrigin,
oDirections,
iNuFace=0 ,
const iParams=NULL )
Compute element's face axis
Parameters:
oOrigin
Origin coordinates
oDirections
Axis three vectors
iNuFace
Local number of face, between 0 to NbFaces-1.
iParams
Parameters on face
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeFaceAxis
public virtual ComputeFaceAxis( oDirU,
oDirV,
oDirW,
iNuFace=0,
const iDerivates=NULL)
Compute element's face axis
Parameters:
oDirU
Axis vector U
oDirV
Axis vector V
oDirW
Axis vector W
iNuFace
Local number of face, between 0 to NbFaces-1.
Derivates
Shape functions derivates
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeFaceCoordinates
public virtual ComputeFaceCoordinates( iNuFace,
const iDirections,
const iOrigin,
oNbNodesOfFace,
oFaceCoor)
Compute element's face local coordinates
Parameters:
iNuFace
Local number of face, between 0 to NbFaces-1.
iDirections
Axis three vectors
iOrigin
Coordinates of reference position
oNbNodesOfFace
Number of nodes of face
oFaceCoor
Array containing nodes local coordinates
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeFaceIsopar
public virtual ComputeFaceIsopar( oDirU,
oDirV,
oDirW,
iNuFace=0,
const iDerivates=NULL)
Compute element's face axis
Parameters:
oDirU
Axis vector U
oDirV
Axis vector V
oDirW
Axis vector W
iNuFace
Local number of face, between 0 to NbFaces-1.
iDerivates
Shape functions derivates
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeFaceJacobian
public virtual ComputeFaceJacobian( iNbNodes,
const iCoor,
const iDerivates,
oJacobian,
oDet)
Compute the element's face jacobian
Parameters:
iNbNodes
Number of nodes of face
iCoor
Nodes coordinates of face
iDerivates
Shape functions derivates
oJacobian
Jacobian matrix
oDet
Jacobian determinant
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeFaceNormal
public virtual ComputeFaceNormal( const iNuFace,
const iNuNode,
oNormal)
Compute element's face normal
Parameters:
iNuFace
Local number of face, between 0 to NbFaces-1.
iNuNode
Local number of node, between 0 to NbNodes-1.
oNormal
Normalized vector
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeFaceParameters
public virtual ComputeFaceParameters( iNuFace,
const iPosition,
oParams)
Compute parameters on elemeent's face
Parameters:
iNuFace
Local number of face, between 0 to NbFaces-1.
iPosition
Coordinates of position
oParams
Parameters value
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeFacePosition
public virtual ComputeFacePosition( oPosition,
iNuFace=0,
const iFunctions=NULL )
Compute position on element's face
Parameters:
oPosition
Coordinates of position
iNuFace
Local number of face, between 0 to NbFaces-1.
Functions
Shape functions
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeFacePosition
public virtual ComputeFacePosition( iNuFace,
iParams,
oPosition)
Compute position on element's face
Parameters:
iNuFace
Local number of face, between 0 to NbFaces-1.
iParams
Parameters value
oPosition
Coordinates of position
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeFaceProjection
public virtual ComputeFaceProjection( iNuFace,
const iPoint,
oProjection,
oDistance2,
oLocation)
Compute projection of point on element's face
Parameters:
iNuFace
Local number of face, between 0 to NbFaces-1.
iPoint
Coordinates of point to project.
oProjection
Coordinates of projected point.
oDistance2
oDistance2[0] square distance of projected point to face oDistance2[1] square distance of projected point to face: normal component oDistance2[2] square distance of projected point to face: lateral component
oLocation
Projection result status.
Legal values:
0
the projected point is inside the face.
!=0
the projected point is outside the face or on face boundary.
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeIsopar
public virtual ComputeIsopar( oDirections,
const iDerivates=NULL)
Compute element's axis
Parameters:
Directions
Axis three vectors
Derivates
Shape functions derivates
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeJacobian
public virtual ComputeJacobian( const iDerivates,
const iDirections,
oJacobian,
oDet)
Compute the element's jacobian
Parameters:
iDerivates
Shape functions derivates
iDirections
Axis three vectors
oJacobian
Jacobian matrix
oDet
Jacobian determinant
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeLength
public virtual ComputeLength( const iNuEdge,
const iIntegrationType,
oLength)
Compute the element's edge length (with intermediate nodes).
Parameters:
iNuEdge
Local number of edge, between 0 to NbEdges-1.
iIntegrationType
Type of numeric integration ( gauss scheme point of integration ).
Legal values:
0
Center.
1
Low precision.
2
Medium precision.
3
High precision.
oLength
Length value.
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeMinBoxDistance
public ComputeMinBoxDistance( const iXYZ)
Get the minimum distance between a point and the element's bounding box
Parameters:
iXYZ
Point coordinates.
Returns:
The distance between a point and the bounding box
o ComputePosition
public virtual ComputePosition( oPosition,
const iFunctions)
Compute position on element
Parameters:
oPosition
Coordinates of position
iFunctions
Shape functions
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o ComputeShrink
public virtual ComputeShrink( oCoordinates,
const iShrink=0.95 )
Compute nodes coordinates with shrink
Parameters:
oCoordinates
Array containing the nodes coordinates
iShrink
Value of shrink parameter.
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o GetBox
public GetBox()
Get the bounding box of element
Returns:
A pointer to the array containing box coordinates
o GetCenter
public GetCenter()
Get element's center
Returns:
A pointer to the array containing coordinates
o GetCenter
public GetCenter( const oCenter)
Get the element's center.
Parameters:
oCenter
A pointer to the array containing coordinates
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o GetConnectivity
public GetConnectivity()
Get the connectivity associated with.
Returns:
A finite element connectivity. See .
o GetCoordinates
public GetCoordinates()
Get nodes coordinates
Returns:
A pointer to an array containing coordinates in the following order: X0, Y0, Z0, X1, Y1, Z1, ...
o GetCoordinates
public GetCoordinates( const iNuNode)
Get node coordinates
Parameters:
iNuNode
Local number of node, between 0 to NbNodes-1
Returns:
A pointer to the array containing coordinates in the following order: X, Y, Z ...
o GetDimension
public GetDimension()
Get the dimension of the connectivity.
Returns:
Dimension value.
Legal values:
1
1D element.
2
2D element.
3
3D element.
o GetEdgeSizes
public GetEdgeSizes()
Get the element's edges size (ignore intermediate nodes).
Returns:
A pointer to an array of edges size table (0 to NbEdges-1).
o GetEdges
public GetEdges()
Get element's edges (ignore intermediate nodes).
Returns:
A pointer to an array of element's edges
o GetMainAreas
public GetMainAreas( const oAreas)
Get the element's faces area (ignore intermediate nodes).
Parameters:
oAreas
Pointer to array of face area table (0 to NbFaces-1).
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o GetMainEdge
public GetMainEdge( const iNuEdge,
oEdge)
Get the element's edge (ignore intermediate nodes).
Parameters:
iNuEdge
Local number of edge, between 0 to NbEdges-1.
oEdge
Vector between first and second node of the edge.
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o GetMainLengths
public GetMainLengths( const oLengths)
Get element's edges length (ignore intermediate nodes).
Parameters:
oLengths
Pointer to an array of edge length table (0 to NbEdges-1).
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o GetMainNormal
public GetMainNormal( const iNuFace,
oNormal)
Get the element's face normal (ignore intermediate nodes).
Parameters:
iNuFace
Local number of face, between 0 to NbFaces-1.
oNormal
Normal vector (0 for 1D element).
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o GetMaxEdge
public virtual GetMaxEdge()
Get the element's maximum edge length.
Returns:
Maximum value of edges length.
o GetMinEdge
public virtual GetMinEdge()
Get the element's minimum edge length.
Returns:
Minimum value of edges length.
o GetMinHeight
public virtual GetMinHeight( oHeight)
Get the element's minimum height.
Parameters:
oHeight
Minimum value of element's heights.
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o GetNodesInteriorAngles
public GetNodesInteriorAngles( iNuFace,
oNbNodesOfFace,
const oAngles)
Compute element's nodes angle Angle is computed between two consecutive edges of element's face
Parameters:
iNuFace
Local number of face, between 0 to NbEdges-1.
oNbNodesOfFace
Number of nodes of face
oAngles
The pointer to an array containing the angle values.
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o GetNormals
public GetNormals( iNormalize=0 )
Get the element's faces normal (ignore intermediate nodes).
Returns:
A pointer to an array of faces normal table (0 to _NbFaces-1)
o GetVolume
public virtual GetVolume( oValue,
const iIntegrationType=0 )
Get the element's volume.
Parameters:
oValue
Volume value
iIntegrationType
Type of numeric integration ( gauss scheme point of integration ).
Legal values:
0
Center.
1
Low precision.
2
Medium precision.
3
High precision.
Returns:
An HRESULT.
Legal values:
S_OK
The method is successfull.
E_FAIL
The method has failed.
o Init
public virtual Init( const iCoordinates)
Initialize the geometrical engine with the geometry of a finite element.
Parameters:
iCoordinates
iCoordinates array containning pointer coordinates in the following order : iCoordinates[0] pointer of the first coordinates of node 0. iCoordinates[1] pointer of the first coordinates of node 1. .. iCoordinates[NbNodes-1] pointer of the first coordinates of node the last node.
o Init
public virtual Init( iElement)
Initialize the geometrical engine with the geometry of a finite element.
Parameters:
iElement
Finite element to be used to initialize the geometrical engine.
o SetCoordinates
public virtual SetCoordinates( const iNuNode,
const iXYZ)
Set coordinates of specified node. This method invalidate all previous results like a call to Init.
Parameters:
iNuNode
Local number of node, between 0 to NbNodes-1.
iXYZ
New coordinates of node.

Data Members


o _FHeight
  protected int _FHeight
o _MinHeight
  protected double _MinHeight

This object is included in the file: CATFmtGeometricalEngine.h
If needed, your Imakefile.mk should include the module: CATFmtModelInterfaces

Copyright © 1999-2014, Dassault Systèmes. All rights reserved.