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)
 
MeshDataTetraElementoperator= (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)
 
MeshDataoperator= (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: