FEMTIC
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
MeshDataTetraElement Class Reference

#include <MeshDataTetraElement.h>

Inheritance diagram for MeshDataTetraElement:
Inheritance graph
[legend]
Collaboration diagram for MeshDataTetraElement:
Collaboration graph
[legend]

Public Member Functions

 MeshDataTetraElement ()
 
virtual ~MeshDataTetraElement ()
 
virtual void inputMeshData ()
 
int findElementIncludingPoint (const double locX, const double locY, const double locZ, CommonParameters::VolumeCoords &localCoord) const
 
int findElementIncludingPointOnSurface (const double locX, const double locY, int &faceID, CommonParameters::AreaCoords &localCoord, const bool useUpperElem, const bool modLoc, double &locXMod, double &locYMod) const
 
int findElementIncludingPointOnYZPlaneAndReturnElemID2D (const int iPlane, const double locY, const double locZ, CommonParameters::AreaCoords &localCoord) const
 
int findElementIncludingPointOnZXPlaneAndReturnElemID2D (const int iPlane, const double locZ, const double locX, CommonParameters::AreaCoords &localCoord) const
 
void findElementsIncludingDipoleOnSurface (const double locXStart, const double locYStart, const double locXEnd, const double locYEnd, std::vector< int > &elements, std::vector< int > &faces, std::vector< CommonParameters::AreaCoords > &areaCoordsdStartPoint, std::vector< CommonParameters::AreaCoords > &areaCoordsdEndPoint) const
 
virtual bool shareSameEdges (const int elemID1, const int elemID2) const
 
virtual double calcVolume (const int elemID) const
 
virtual void outputMeshDataToVTK () const
 
virtual void outputMeshDataToBinary () const
 
virtual int getNodesOfElementsBoundaryPlanes (const int iPlane, const int iElem, const int iNode) const
 
int getMeshType () const
 
int getFaceIDLocalFromElementBoundaryPlanes (const int iPlane, const int iElem) const
 
int getNodeIDLocalFromFaceIDLocal (const int iFace, const int num) const
 
int getNodeIDLocalFromEdgeIDLocal (const int iEdge, const int num) const
 
int getNodeIDGlobalFromElementAndEdge (const int iElem, const int iEdge, const int num) const
 
int getNodeIDGlobalFromElementAndFace (const int iElem, const int iFace, const int num) const
 
int getNodeIDGlobalFromElementBoundaryPlanes (const int iPlane, const int iElem, const int num) const
 
double getCoordXFromElementBoundaryPlanes (const int iPlane, const int iElem, const int num) const
 
double getCoordYFromElementBoundaryPlanes (const int iPlane, const int iElem, const int num) const
 
double getCoordZFromElementBoundaryPlanes (const int iPlane, const int iElem, const int num) const
 
int getNodeIDGlobalFromElementAndEdgeBoundaryPlanes (const int iPlane, const int iElem, const int iEdge, const int num) const
 
int getEdgeIDLocalFromFaceIDLocal (const int iFace, const int num) const
 
double calcEdgeLengthFromElementAndEdge (const int iElem, const int iEdge) const
 
double calcEdgeLengthProjectedOnHorizontalPlaneFromElementAndEdge (const int iElem, const int iEdge) const
 
double calcEdgeLengthFromElementAndEdgeBoundaryPlanes (const int iPlane, const int iElem, const int iEdge) const
 
double calcHorizontalCoordDifferenceBoundaryPlanes (const int iPlane, const int iElem, const int iEdge) const
 
double calcXCoordOfPointOnFace (const int iElem, const int iFace, const CommonParameters::AreaCoords &areaCoord) const
 
double calcYCoordOfPointOnFace (const int iElem, const int iFace, const CommonParameters::AreaCoords &areaCoord) const
 
double calcZCoordOfPointOnFace (const int iElem, const int iFace, const CommonParameters::AreaCoords &areaCoord) const
 
void calcVolumeCoordFromAreaCoord (const int iFace, const CommonParameters::AreaCoords &areaCoord, CommonParameters::VolumeCoords &volumeCoord) const
 
double calcAreaOnXYPlaneWithSignFromAreaCoords (const int elemID, const int faceID, const CommonParameters::AreaCoords &coord0, const CommonParameters::AreaCoords &coord1, const CommonParameters::AreaCoords &coord2) const
 
double calcAreaWithSignFromAreaCoords (const int elemID, const int faceID, const CommonParameters::AreaCoords &coord0, const CommonParameters::AreaCoords &coord1, const CommonParameters::AreaCoords &coord2) const
 
double calcAreaOfFace (const int iElem, const int iFace) const
 
double calcAreaOfFaceAtBottomOfMesh (const int iElem) const
 
- Public Member Functions inherited from MeshData
 MeshData ()
 
virtual ~MeshData ()
 
int getNumElemTotal () const
 
int getNumNodeTotal () const
 
int getNumElemOnBoundaryPlanes (const int iPlane) const
 
double getXCoordinatesOfNodes (const int iNode) const
 
double getYCoordinatesOfNodes (const int iNode) const
 
double getZCoordinatesOfNodes (const int iNode) const
 
int getNodesOfElements (const int iElem, const int iNode) const
 
int getElemBoundaryPlanes (const int iPlane, const int iElem) const
 
int getIDOfNeighborElement (const int iElem, const int num) const
 
int getNumNeighborElement () const
 
double calcDistanceOfTwoNodes (const int nodeID0, const int nodeID1) const
 
double calcHorizontalDistanceOfTwoNodes (const int nodeID0, const int nodeID1) const
 
double caldDiffXOfTwoNodes (const int nodeID0, const int nodeID1) const
 
double caldDiffYOfTwoNodes (const int nodeID0, const int nodeID1) const
 
double caldDiffZOfTwoNodes (const int nodeID0, const int nodeID1) const
 
virtual bool shareSameNodes (const int elemID1, const int elemID2) const
 
virtual CommonParameters::locationXYZ getCenterCoord (const int iElem) const
 
CommonParameters::locationXYZ calDiffOfCenters (const int iElem1, const int iElem2) const
 

Private Member Functions

 MeshDataTetraElement (const MeshDataTetraElement &rhs)
 
MeshDataTetraElement & operator= (const MeshDataTetraElement &rhs)
 
bool locateLeftOfSegmentOnLandSurface (const CommonParameters::locationXY &point, const CommonParameters::locationXY &startPointOfSegment, const CommonParameters::locationXY &endPointOfSegment) const
 
bool locateLeftOfSegmentOnSeaSurface (const CommonParameters::locationXY &point, const CommonParameters::locationXY &startPointOfSegment, const CommonParameters::locationXY &endPointOfSegment) const
 
bool locateLeftOfSegmentOnYZPlaneOfBoundary (const int iPlane, const int iElem, const int iEdge, const CommonParameters::locationYZ &point) const
 
bool locateLeftOfSegmentOnZXPlaneOfBoundary (const int iPlane, const int iElem, const int iEdge, const CommonParameters::locationZX &point) const
 
double calcVolume (const CommonParameters::locationXYZ &point1, const CommonParameters::locationXYZ &point2, const CommonParameters::locationXYZ &point3, const CommonParameters::locationXYZ &point4) const
 
void calcVolumeCoordsOfPointOnLandSurface (const int elemID, const int faceID, const CommonParameters::locationXY &pointCoord, CommonParameters::VolumeCoords &coords) const
 
void calcVolumeCoordsOfPoint (const int elemID, const CommonParameters::locationXYZ &pointCoord, CommonParameters::VolumeCoords &coords) const
 ! : More...
 
void calcAreaCoordsOfPointOnLandSurface (const int elemID, const int faceID, const CommonParameters::locationXY &pointCoord, CommonParameters::AreaCoords &coords) const
 
double calcArea (const CommonParameters::CoordPair &point1, const CommonParameters::CoordPair &point2, const CommonParameters::CoordPair &point3) const
 
void calcAreaCoordsOfPointOnYZPlaneOfBoundary (const int iPlane, const int iElem, const CommonParameters::CoordPair &point, CommonParameters::AreaCoords &coords) const
 
void calcAreaCoordsOfPointOnZXPlaneOfBoundary (const int iPlane, const int iElem, const CommonParameters::CoordPair &point, CommonParameters::AreaCoords &coords) const
 
bool locateInsideOfFace (const int elemID, const int faceID, const CommonParameters::locationXYZ &loc) const
 ! : More...
 

Private Attributes

int * m_facesOfElementsBoundaryPlanes [6]
 
int m_numElemOnLandSurface
 
int * m_elemOnLandSurface
 
int * m_faceLandSurface
 
int m_faceID2NodeID [4][3]
 
int m_faceID2EdgeID [4][3]
 
int m_edgeID2NodeID [6][2]
 

Static Private Attributes

static const double m_eps = 1.0e-12
 

Additional Inherited Members

- Public Types inherited from MeshData
enum  BoundaryPlanes {
  YZMinus = 0 , YZPlus , ZXMinus , ZXPlus ,
  XYMinus , XYPlus
}
 
enum  MeshType { HEXA = 0 , TETRA , NONCONFORMING_HEXA }
 
- Protected Member Functions inherited from MeshData
 MeshData (const MeshData &rhs)
 
MeshData & operator= (const MeshData &rhs)
 
double calcDistance (const CommonParameters::locationXY &point0, const CommonParameters::locationXY &point1) const
 
bool does1stSegmentContain2ndSegment (const CommonParameters::locationXY &startPointOf1stSegment, const CommonParameters::locationXY &endPointOf1stSegment, const CommonParameters::locationXY &startPointOf2ndSegment, const CommonParameters::locationXY &endPointOf2ndSegment) const
 
bool intersectTwoSegments (const CommonParameters::locationXY &startPointOf1stSegment, const CommonParameters::locationXY &endPointOf1stSegment, const CommonParameters::locationXY &startPointOf2ndSegment, const CommonParameters::locationXY &endPointOf2ndSegment) const
 
bool overlapTwoLines (const CommonParameters::locationXY &coord1stLine1, const CommonParameters::locationXY &coord1stLine2, const CommonParameters::locationXY &coord2ndLine1, const CommonParameters::locationXY &coord2ndLine2) const
 
bool overlapTwoSegments (const CommonParameters::locationXY &startPointOf1stSegment, const CommonParameters::locationXY &endPointOf1stSegment, const CommonParameters::locationXY &startPointOf2ndSegment, const CommonParameters::locationXY &endPointOf2ndSegment) const
 
double calcInnerProduct2D (const CommonParameters::locationXY &startCoordOf1stVec, const CommonParameters::locationXY &endCoordOf1stVec, const CommonParameters::locationXY &startCoordOf2ndVec, const CommonParameters::locationXY &endCoordOf2ndVec) const
 
void calcCoordOfIntersectionPointOfTwoLines (const CommonParameters::locationXY &coord1stLine1, const CommonParameters::locationXY &coord1stLine2, const CommonParameters::locationXY &coord2ndLine1, const CommonParameters::locationXY &coord2ndLine2, CommonParameters::locationXY &coordIntersectionPoint) const
 
- Protected Attributes inherited from MeshData
int m_numElemTotal
 
int m_numNodeTotal
 
int m_numNodeOneElement
 
int m_numEdgeOneElement
 
int m_numNodeOnFaceOneElement
 
int m_numNeighborElement
 
int m_numElemOnBoundaryPlanes [6]
 
double * m_xCoordinatesOfNodes
 
double * m_yCoordinatesOfNodes
 
double * m_zCoordinatesOfNodes
 
int * m_neighborElements
 
int * m_nodesOfElements
 
int * m_elemBoundaryPlanes [6]
 

Constructor & Destructor Documentation

◆ MeshDataTetraElement() [1/2]

MeshDataTetraElement::MeshDataTetraElement ( )

◆ ~MeshDataTetraElement()

MeshDataTetraElement::~MeshDataTetraElement ( )
virtual

◆ MeshDataTetraElement() [2/2]

MeshDataTetraElement::MeshDataTetraElement ( const MeshDataTetraElement &  rhs)
private

Member Function Documentation

◆ calcArea()

double MeshDataTetraElement::calcArea ( const CommonParameters::CoordPair &  point1,
const CommonParameters::CoordPair &  point2,
const CommonParameters::CoordPair &  point3 
) const
private

◆ calcAreaCoordsOfPointOnLandSurface()

void MeshDataTetraElement::calcAreaCoordsOfPointOnLandSurface ( const int  elemID,
const int  faceID,
const CommonParameters::locationXY &  pointCoord,
CommonParameters::AreaCoords &  coords 
) const
private

◆ calcAreaCoordsOfPointOnYZPlaneOfBoundary()

void MeshDataTetraElement::calcAreaCoordsOfPointOnYZPlaneOfBoundary ( const int  iPlane,
const int  iElem,
const CommonParameters::CoordPair &  point,
CommonParameters::AreaCoords &  coords 
) const
private

◆ calcAreaCoordsOfPointOnZXPlaneOfBoundary()

void MeshDataTetraElement::calcAreaCoordsOfPointOnZXPlaneOfBoundary ( const int  iPlane,
const int  iElem,
const CommonParameters::CoordPair &  point,
CommonParameters::AreaCoords &  coords 
) const
private

◆ calcAreaOfFace()

double MeshDataTetraElement::calcAreaOfFace ( const int  iElem,
const int  iFace 
) const
virtual

Implements MeshData.

◆ calcAreaOfFaceAtBottomOfMesh()

double MeshDataTetraElement::calcAreaOfFaceAtBottomOfMesh ( const int  iElem) const
virtual

Implements MeshData.

◆ calcAreaOnXYPlaneWithSignFromAreaCoords()

double MeshDataTetraElement::calcAreaOnXYPlaneWithSignFromAreaCoords ( const int  elemID,
const int  faceID,
const CommonParameters::AreaCoords &  coord0,
const CommonParameters::AreaCoords &  coord1,
const CommonParameters::AreaCoords &  coord2 
) const

◆ calcAreaWithSignFromAreaCoords()

double MeshDataTetraElement::calcAreaWithSignFromAreaCoords ( const int  elemID,
const int  faceID,
const CommonParameters::AreaCoords &  coord0,
const CommonParameters::AreaCoords &  coord1,
const CommonParameters::AreaCoords &  coord2 
) const

◆ calcEdgeLengthFromElementAndEdge()

double MeshDataTetraElement::calcEdgeLengthFromElementAndEdge ( const int  iElem,
const int  iEdge 
) const

◆ calcEdgeLengthFromElementAndEdgeBoundaryPlanes()

double MeshDataTetraElement::calcEdgeLengthFromElementAndEdgeBoundaryPlanes ( const int  iPlane,
const int  iElem,
const int  iEdge 
) const

◆ calcEdgeLengthProjectedOnHorizontalPlaneFromElementAndEdge()

double MeshDataTetraElement::calcEdgeLengthProjectedOnHorizontalPlaneFromElementAndEdge ( const int  iElem,
const int  iEdge 
) const

◆ calcHorizontalCoordDifferenceBoundaryPlanes()

double MeshDataTetraElement::calcHorizontalCoordDifferenceBoundaryPlanes ( const int  iPlane,
const int  iElem,
const int  iEdge 
) const

◆ calcVolume() [1/2]

double MeshDataTetraElement::calcVolume ( const CommonParameters::locationXYZ &  point1,
const CommonParameters::locationXYZ &  point2,
const CommonParameters::locationXYZ &  point3,
const CommonParameters::locationXYZ &  point4 
) const
private

◆ calcVolume() [2/2]

double MeshDataTetraElement::calcVolume ( const int  elemID) const
virtual

Implements MeshData.

◆ calcVolumeCoordFromAreaCoord()

void MeshDataTetraElement::calcVolumeCoordFromAreaCoord ( const int  iFace,
const CommonParameters::AreaCoords &  areaCoord,
CommonParameters::VolumeCoords &  volumeCoord 
) const

◆ calcVolumeCoordsOfPoint()

void MeshDataTetraElement::calcVolumeCoordsOfPoint ( const int  elemID,
const CommonParameters::locationXYZ &  pointCoord,
CommonParameters::VolumeCoords &  coords 
) const
private

! :

! :

◆ calcVolumeCoordsOfPointOnLandSurface()

void MeshDataTetraElement::calcVolumeCoordsOfPointOnLandSurface ( const int  elemID,
const int  faceID,
const CommonParameters::locationXY &  pointCoord,
CommonParameters::VolumeCoords &  coords 
) const
private

◆ calcXCoordOfPointOnFace()

double MeshDataTetraElement::calcXCoordOfPointOnFace ( const int  iElem,
const int  iFace,
const CommonParameters::AreaCoords &  areaCoord 
) const

◆ calcYCoordOfPointOnFace()

double MeshDataTetraElement::calcYCoordOfPointOnFace ( const int  iElem,
const int  iFace,
const CommonParameters::AreaCoords &  areaCoord 
) const

◆ calcZCoordOfPointOnFace()

double MeshDataTetraElement::calcZCoordOfPointOnFace ( const int  iElem,
const int  iFace,
const CommonParameters::AreaCoords &  areaCoord 
) const

◆ findElementIncludingPoint()

int MeshDataTetraElement::findElementIncludingPoint ( const double  locX,
const double  locY,
const double  locZ,
CommonParameters::VolumeCoords &  localCoord 
) const

◆ findElementIncludingPointOnSurface()

int MeshDataTetraElement::findElementIncludingPointOnSurface ( const double  locX,
const double  locY,
int &  faceID,
CommonParameters::AreaCoords &  localCoord,
const bool  useUpperElem,
const bool  modLoc,
double &  locXMod,
double &  locYMod 
) const

◆ findElementIncludingPointOnYZPlaneAndReturnElemID2D()

int MeshDataTetraElement::findElementIncludingPointOnYZPlaneAndReturnElemID2D ( const int  iPlane,
const double  locY,
const double  locZ,
CommonParameters::AreaCoords &  localCoord 
) const

◆ findElementIncludingPointOnZXPlaneAndReturnElemID2D()

int MeshDataTetraElement::findElementIncludingPointOnZXPlaneAndReturnElemID2D ( const int  iPlane,
const double  locZ,
const double  locX,
CommonParameters::AreaCoords &  localCoord 
) const

◆ findElementsIncludingDipoleOnSurface()

void MeshDataTetraElement::findElementsIncludingDipoleOnSurface ( const double  locXStart,
const double  locYStart,
const double  locXEnd,
const double  locYEnd,
std::vector< int > &  elements,
std::vector< int > &  faces,
std::vector< CommonParameters::AreaCoords > &  areaCoordsdStartPoint,
std::vector< CommonParameters::AreaCoords > &  areaCoordsdEndPoint 
) const

◆ getCoordXFromElementBoundaryPlanes()

double MeshDataTetraElement::getCoordXFromElementBoundaryPlanes ( const int  iPlane,
const int  iElem,
const int  num 
) const

◆ getCoordYFromElementBoundaryPlanes()

double MeshDataTetraElement::getCoordYFromElementBoundaryPlanes ( const int  iPlane,
const int  iElem,
const int  num 
) const

◆ getCoordZFromElementBoundaryPlanes()

double MeshDataTetraElement::getCoordZFromElementBoundaryPlanes ( const int  iPlane,
const int  iElem,
const int  num 
) const

◆ getEdgeIDLocalFromFaceIDLocal()

int MeshDataTetraElement::getEdgeIDLocalFromFaceIDLocal ( const int  iFace,
const int  num 
) const

◆ getFaceIDLocalFromElementBoundaryPlanes()

int MeshDataTetraElement::getFaceIDLocalFromElementBoundaryPlanes ( const int  iPlane,
const int  iElem 
) const

◆ getMeshType()

int MeshDataTetraElement::getMeshType ( ) const
virtual

Implements MeshData.

◆ getNodeIDGlobalFromElementAndEdge()

int MeshDataTetraElement::getNodeIDGlobalFromElementAndEdge ( const int  iElem,
const int  iEdge,
const int  num 
) const

◆ getNodeIDGlobalFromElementAndEdgeBoundaryPlanes()

int MeshDataTetraElement::getNodeIDGlobalFromElementAndEdgeBoundaryPlanes ( const int  iPlane,
const int  iElem,
const int  iEdge,
const int  num 
) const

◆ getNodeIDGlobalFromElementAndFace()

int MeshDataTetraElement::getNodeIDGlobalFromElementAndFace ( const int  iElem,
const int  iFace,
const int  num 
) const

◆ getNodeIDGlobalFromElementBoundaryPlanes()

int MeshDataTetraElement::getNodeIDGlobalFromElementBoundaryPlanes ( const int  iPlane,
const int  iElem,
const int  num 
) const

◆ getNodeIDLocalFromEdgeIDLocal()

int MeshDataTetraElement::getNodeIDLocalFromEdgeIDLocal ( const int  iEdge,
const int  num 
) const

◆ getNodeIDLocalFromFaceIDLocal()

int MeshDataTetraElement::getNodeIDLocalFromFaceIDLocal ( const int  iFace,
const int  num 
) const

◆ getNodesOfElementsBoundaryPlanes()

int MeshDataTetraElement::getNodesOfElementsBoundaryPlanes ( const int  iPlane,
const int  iElem,
const int  iNode 
) const
virtual

Implements MeshData.

◆ inputMeshData()

void MeshDataTetraElement::inputMeshData ( )
virtual

Implements MeshData.

◆ locateInsideOfFace()

bool MeshDataTetraElement::locateInsideOfFace ( const int  elemID,
const int  faceID,
const CommonParameters::locationXYZ &  loc 
) const
private

! :

◆ locateLeftOfSegmentOnLandSurface()

bool MeshDataTetraElement::locateLeftOfSegmentOnLandSurface ( const CommonParameters::locationXY &  point,
const CommonParameters::locationXY &  startPointOfSegment,
const CommonParameters::locationXY &  endPointOfSegment 
) const
private

◆ locateLeftOfSegmentOnSeaSurface()

bool MeshDataTetraElement::locateLeftOfSegmentOnSeaSurface ( const CommonParameters::locationXY &  point,
const CommonParameters::locationXY &  startPointOfSegment,
const CommonParameters::locationXY &  endPointOfSegment 
) const
private

◆ locateLeftOfSegmentOnYZPlaneOfBoundary()

bool MeshDataTetraElement::locateLeftOfSegmentOnYZPlaneOfBoundary ( const int  iPlane,
const int  iElem,
const int  iEdge,
const CommonParameters::locationYZ &  point 
) const
private

◆ locateLeftOfSegmentOnZXPlaneOfBoundary()

bool MeshDataTetraElement::locateLeftOfSegmentOnZXPlaneOfBoundary ( const int  iPlane,
const int  iElem,
const int  iEdge,
const CommonParameters::locationZX &  point 
) const
private

◆ operator=()

MeshDataTetraElement & MeshDataTetraElement::operator= ( const MeshDataTetraElement &  rhs)
private

◆ outputMeshDataToBinary()

void MeshDataTetraElement::outputMeshDataToBinary ( ) const
virtual

Implements MeshData.

◆ outputMeshDataToVTK()

void MeshDataTetraElement::outputMeshDataToVTK ( ) const
virtual

Implements MeshData.

◆ shareSameEdges()

bool MeshDataTetraElement::shareSameEdges ( const int  elemID1,
const int  elemID2 
) const
virtual

Implements MeshData.

Member Data Documentation

◆ m_edgeID2NodeID

int MeshDataTetraElement::m_edgeID2NodeID[6][2]
private

◆ m_elemOnLandSurface

int* MeshDataTetraElement::m_elemOnLandSurface
private

◆ m_eps

const double MeshDataTetraElement::m_eps = 1.0e-12
staticprivate

◆ m_faceID2EdgeID

int MeshDataTetraElement::m_faceID2EdgeID[4][3]
private

◆ m_faceID2NodeID

int MeshDataTetraElement::m_faceID2NodeID[4][3]
private

◆ m_faceLandSurface

int* MeshDataTetraElement::m_faceLandSurface
private

◆ m_facesOfElementsBoundaryPlanes

int* MeshDataTetraElement::m_facesOfElementsBoundaryPlanes[6]
private

◆ m_numElemOnLandSurface

int MeshDataTetraElement::m_numElemOnLandSurface
private

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