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

#include <MeshDataNonConformingHexaElement.h>

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

Public Member Functions

 MeshDataNonConformingHexaElement ()
 
virtual ~MeshDataNonConformingHexaElement ()
 
virtual void inputMeshData ()
 
int findElementIncludingPoint (const double locX, const double locY, const double locZ, double &xi, double &eta, double &zeta) const
 
int findElementIncludingPointOnSurface (const double locX, const double locY, int &faceID, double &xi, double &eta, double &zeta, const bool useUpperElem, const bool modLoc, double &locXMod, double &locYMod) const
 
void findElementsIncludingDipoleOnSurface (const double locXStart, const double locYStart, const double locXEnd, const double locYEnd, std::vector< int > &elements, std::vector< double > &localCoordXStartPoint, std::vector< double > &localCoordYStartPoint, std::vector< double > &localCoordXEndPoint, std::vector< double > &localCoordYEndPoint) const
 
int findElementIncludingPointOnYZPlaneAndReturnElemID2D (const int iPlane, const double locY, const double locZ, double &xi, double &eta) const
 
int findElementIncludingPointOnZXPlaneAndReturnElemID2D (const int iPlane, const double locX, const double locZ, double &xi, double &eta) const
 
int getMeshType () const
 
int getIDOfNeighborElement (const int iElem, const int iFace, const int num) const
 
int getNumNeighborElement (const int iElem, const int iFace) const
 
bool faceSlaveElements (const int iElem, const int iFace) const
 
bool isOuterBoundary (const int iElem, const int iFace) const
 
int getFaceIDLocalFromElementBoundaryPlanes (const int iPlane, const int iElem) 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
 
int getNodeIDGlobalFromElementAndEdgeBoundaryPlanes (const int iPlane, const int iElem, const int iEdge, 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 getEdgeIDLocalFromFaceIDLocal (const int iFace, const int num) 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
 
double calcHorizontalCoordDifferenceBoundaryPlanes (const int iPlane, const int iElem, const int iEdge) const
 
double calcXCoordOfPointOnFace (const int iElem, const int iFace, const double xi, const double eta) const
 
double calcYCoordOfPointOnFace (const int iElem, const int iFace, const double xi, const double eta) const
 
double calcZCoordOfPointOnFace (const int iElem, const int iFace, const double xi, const double eta) const
 
double calcEdgeLengthFromElementAndEdge (const int iElem, const int iEdge) const
 
double calcEdgeLengthFromElementAndEdgeBoundaryPlanes (const int iPlane, const int iElem, const int iEdge) const
 
double getEdgeLengthX (const int iElem) const
 
double getEdgeLengthY (const int iElem) const
 
int getFaceIndexOfNeighborElement (const int iFace) 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

 MeshDataNonConformingHexaElement (const MeshDataNonConformingHexaElement &rhs)
 
MeshDataNonConformingHexaElementoperator= (const MeshDataNonConformingHexaElement &rhs)
 
void checkWhetherSideFaceIsParallelToZXOrYZPlane () const
 
bool isLocatedInTheElement (const double x, const double y, const double z, const int iElem) const
 
void calcLocalCoordinates (const int iElem, const double x, const double y, const double z, double &xi, double &eta, double &zeta) const
 
void calcHorizontalLocalCoordinates (const int iElem, const double x, const double y, double &xi, double &eta) const
 
double calcDeterminantOfJacobianMatrix (const int iElem, const double xi, const double eta, const double zeta) const
 

Private Attributes

std::vector< int > * m_neighborElementsForNonConformingHexa
 
int * m_facesOfElementsBoundaryPlanes [6]
 
int m_numElemOnLandSurface
 
int * m_elemOnLandSurface
 
int * m_faceLandSurface
 
int m_faceID2NodeID [6][4]
 
int m_faceID2EdgeID [6][4]
 
int m_edgeID2NodeID [12][2]
 
double m_integralPointXi [m_numIntegralPoints]
 
double m_integralPointEta [m_numIntegralPoints]
 
double m_integralPointZeta [m_numIntegralPoints]
 
double m_weights [m_numIntegralPoints]
 
double m_xiAtNode [8]
 
double m_etaAtNode [8]
 
double m_zetaAtNode [8]
 

Static Private Attributes

static const int m_numGauss = 2
 
static const int m_numIntegralPoints = m_numGauss * m_numGauss * m_numGauss
 

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

◆ MeshDataNonConformingHexaElement() [1/2]

MeshDataNonConformingHexaElement::MeshDataNonConformingHexaElement ( )

◆ ~MeshDataNonConformingHexaElement()

MeshDataNonConformingHexaElement::~MeshDataNonConformingHexaElement ( )
virtual

◆ MeshDataNonConformingHexaElement() [2/2]

MeshDataNonConformingHexaElement::MeshDataNonConformingHexaElement ( const MeshDataNonConformingHexaElement rhs)
private

Member Function Documentation

◆ calcAreaOfFace()

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

Implements MeshData.

◆ calcAreaOfFaceAtBottomOfMesh()

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

Implements MeshData.

◆ calcDeterminantOfJacobianMatrix()

double MeshDataNonConformingHexaElement::calcDeterminantOfJacobianMatrix ( const int  iElem,
const double  xi,
const double  eta,
const double  zeta 
) const
private

◆ calcEdgeLengthFromElementAndEdge()

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

◆ calcEdgeLengthFromElementAndEdgeBoundaryPlanes()

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

◆ calcHorizontalCoordDifferenceBoundaryPlanes()

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

◆ calcHorizontalLocalCoordinates()

void MeshDataNonConformingHexaElement::calcHorizontalLocalCoordinates ( const int  iElem,
const double  x,
const double  y,
double &  xi,
double &  eta 
) const
private

◆ calcLocalCoordinates()

void MeshDataNonConformingHexaElement::calcLocalCoordinates ( const int  iElem,
const double  x,
const double  y,
const double  z,
double &  xi,
double &  eta,
double &  zeta 
) const
private

◆ calcVolume()

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

Implements MeshData.

◆ calcXCoordOfPointOnFace()

double MeshDataNonConformingHexaElement::calcXCoordOfPointOnFace ( const int  iElem,
const int  iFace,
const double  xi,
const double  eta 
) const

◆ calcYCoordOfPointOnFace()

double MeshDataNonConformingHexaElement::calcYCoordOfPointOnFace ( const int  iElem,
const int  iFace,
const double  xi,
const double  eta 
) const

◆ calcZCoordOfPointOnFace()

double MeshDataNonConformingHexaElement::calcZCoordOfPointOnFace ( const int  iElem,
const int  iFace,
const double  xi,
const double  eta 
) const

◆ checkWhetherSideFaceIsParallelToZXOrYZPlane()

void MeshDataNonConformingHexaElement::checkWhetherSideFaceIsParallelToZXOrYZPlane ( ) const
private

◆ faceSlaveElements()

bool MeshDataNonConformingHexaElement::faceSlaveElements ( const int  iElem,
const int  iFace 
) const

◆ findElementIncludingPoint()

int MeshDataNonConformingHexaElement::findElementIncludingPoint ( const double  locX,
const double  locY,
const double  locZ,
double &  xi,
double &  eta,
double &  zeta 
) const

◆ findElementIncludingPointOnSurface()

int MeshDataNonConformingHexaElement::findElementIncludingPointOnSurface ( const double  locX,
const double  locY,
int &  faceID,
double &  xi,
double &  eta,
double &  zeta,
const bool  useUpperElem,
const bool  modLoc,
double &  locXMod,
double &  locYMod 
) const

◆ findElementIncludingPointOnYZPlaneAndReturnElemID2D()

int MeshDataNonConformingHexaElement::findElementIncludingPointOnYZPlaneAndReturnElemID2D ( const int  iPlane,
const double  locY,
const double  locZ,
double &  xi,
double &  eta 
) const

◆ findElementIncludingPointOnZXPlaneAndReturnElemID2D()

int MeshDataNonConformingHexaElement::findElementIncludingPointOnZXPlaneAndReturnElemID2D ( const int  iPlane,
const double  locX,
const double  locZ,
double &  xi,
double &  eta 
) const

◆ findElementsIncludingDipoleOnSurface()

void MeshDataNonConformingHexaElement::findElementsIncludingDipoleOnSurface ( const double  locXStart,
const double  locYStart,
const double  locXEnd,
const double  locYEnd,
std::vector< int > &  elements,
std::vector< double > &  localCoordXStartPoint,
std::vector< double > &  localCoordYStartPoint,
std::vector< double > &  localCoordXEndPoint,
std::vector< double > &  localCoordYEndPoint 
) const

◆ getCoordXFromElementBoundaryPlanes()

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

◆ getCoordYFromElementBoundaryPlanes()

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

◆ getCoordZFromElementBoundaryPlanes()

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

◆ getEdgeIDLocalFromFaceIDLocal()

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

◆ getEdgeLengthX()

double MeshDataNonConformingHexaElement::getEdgeLengthX ( const int  iElem) const

◆ getEdgeLengthY()

double MeshDataNonConformingHexaElement::getEdgeLengthY ( const int  iElem) const

◆ getFaceIDLocalFromElementBoundaryPlanes()

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

◆ getFaceIndexOfNeighborElement()

int MeshDataNonConformingHexaElement::getFaceIndexOfNeighborElement ( const int  iFace) const

◆ getIDOfNeighborElement()

int MeshDataNonConformingHexaElement::getIDOfNeighborElement ( const int  iElem,
const int  iFace,
const int  num 
) const

◆ getMeshType()

int MeshDataNonConformingHexaElement::getMeshType ( ) const
virtual

Implements MeshData.

◆ getNodeIDGlobalFromElementAndEdge()

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

◆ getNodeIDGlobalFromElementAndEdgeBoundaryPlanes()

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

◆ getNodeIDGlobalFromElementAndFace()

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

◆ getNodeIDGlobalFromElementBoundaryPlanes()

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

◆ getNodesOfElementsBoundaryPlanes()

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

Implements MeshData.

◆ getNumNeighborElement()

int MeshDataNonConformingHexaElement::getNumNeighborElement ( const int  iElem,
const int  iFace 
) const

◆ inputMeshData()

void MeshDataNonConformingHexaElement::inputMeshData ( )
virtual

Implements MeshData.

◆ isLocatedInTheElement()

bool MeshDataNonConformingHexaElement::isLocatedInTheElement ( const double  x,
const double  y,
const double  z,
const int  iElem 
) const
private

◆ isOuterBoundary()

bool MeshDataNonConformingHexaElement::isOuterBoundary ( const int  iElem,
const int  iFace 
) const

◆ operator=()

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

◆ outputMeshDataToBinary()

void MeshDataNonConformingHexaElement::outputMeshDataToBinary ( ) const
virtual

Implements MeshData.

◆ outputMeshDataToVTK()

void MeshDataNonConformingHexaElement::outputMeshDataToVTK ( ) const
virtual

Implements MeshData.

◆ shareSameEdges()

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

Implements MeshData.

Member Data Documentation

◆ m_edgeID2NodeID

int MeshDataNonConformingHexaElement::m_edgeID2NodeID[12][2]
private

◆ m_elemOnLandSurface

int* MeshDataNonConformingHexaElement::m_elemOnLandSurface
private

◆ m_etaAtNode

double MeshDataNonConformingHexaElement::m_etaAtNode[8]
private

◆ m_faceID2EdgeID

int MeshDataNonConformingHexaElement::m_faceID2EdgeID[6][4]
private

◆ m_faceID2NodeID

int MeshDataNonConformingHexaElement::m_faceID2NodeID[6][4]
private

◆ m_faceLandSurface

int* MeshDataNonConformingHexaElement::m_faceLandSurface
private

◆ m_facesOfElementsBoundaryPlanes

int* MeshDataNonConformingHexaElement::m_facesOfElementsBoundaryPlanes[6]
private

◆ m_integralPointEta

double MeshDataNonConformingHexaElement::m_integralPointEta[m_numIntegralPoints]
private

◆ m_integralPointXi

double MeshDataNonConformingHexaElement::m_integralPointXi[m_numIntegralPoints]
private

◆ m_integralPointZeta

double MeshDataNonConformingHexaElement::m_integralPointZeta[m_numIntegralPoints]
private

◆ m_neighborElementsForNonConformingHexa

std::vector<int>* MeshDataNonConformingHexaElement::m_neighborElementsForNonConformingHexa
private

◆ m_numElemOnLandSurface

int MeshDataNonConformingHexaElement::m_numElemOnLandSurface
private

◆ m_numGauss

const int MeshDataNonConformingHexaElement::m_numGauss = 2
staticprivate

◆ m_numIntegralPoints

const int MeshDataNonConformingHexaElement::m_numIntegralPoints = m_numGauss * m_numGauss * m_numGauss
staticprivate

◆ m_weights

double MeshDataNonConformingHexaElement::m_weights[m_numIntegralPoints]
private

◆ m_xiAtNode

double MeshDataNonConformingHexaElement::m_xiAtNode[8]
private

◆ m_zetaAtNode

double MeshDataNonConformingHexaElement::m_zetaAtNode[8]
private

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