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

#include <Forward3DNonConformingHexaElement0thOrder.h>

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

Public Member Functions

 Forward3DNonConformingHexaElement0thOrder ()
 
virtual ~Forward3DNonConformingHexaElement0thOrder ()
 
virtual void forwardCalculation (const double freq, const int iPol)
 
virtual std::complex< double > calcValueElectricFieldXDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal) const
 
virtual std::complex< double > calcValueElectricFieldYDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal) const
 
virtual std::complex< double > calcValueElectricFieldZDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal) const
 
virtual std::complex< double > calcValueRotatedElectricFieldZDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal) const
 
std::complex< double > calcValueRotatedElectricFieldNormal (const int iElem, const double xLocal, const double yLocal) const
 
virtual std::complex< double > calcValueElectricFieldXDirectionFromEdgesOnEarthSurface (const int iElem, const int iFace, const double uCoord, const double vCoord) const
 
virtual std::complex< double > calcValueElectricFieldYDirectionFromEdgesOnEarthSurface (const int iElem, const int iFace, const double uCoord, const double vCoord) const
 
virtual std::complex< double > calcValueElectricFieldTangentialXFromAllEdges (const int iElem, const int iFace, const double xLocal, const double yLocal, const double zLocal) const
 
virtual std::complex< double > calcValueElectricFieldTangentialYFromAllEdges (const int iElem, const int iFace, const double xLocal, const double yLocal, const double zLocal) const
 
virtual std::complex< double > calcValueElectricFieldTangentialX (const int iElem, const int iFace, const double uCoord, const double vCoord) const
 
virtual std::complex< double > calcValueElectricFieldTangentialY (const int iElem, const int iFace, const double uCoord, const double vCoord) const
 
virtual std::complex< double > calcValueMagneticFieldXDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal) const
 
virtual std::complex< double > calcValueMagneticFieldYDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal) const
 
virtual std::complex< double > calcValueMagneticFieldZDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal) const
 
virtual void calcInterpolatorVectorOfElectricFieldXDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
virtual void calcInterpolatorVectorOfElectricFieldYDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
virtual void calcInterpolatorVectorOfElectricFieldZDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
virtual void calcInterpolatorVectorOfRotatedElectricFieldZDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
void calcInterpolatorVectorOfRotatedElectricFieldNormal (const int iElem, const double xLocal, const double yLocal, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
virtual void calcInterpolatorVectorOfElectricFieldXDirectionFromEdgesOnEarthSurface (const int iElem, const int iFace, const double uCoord, const double vCoord, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
virtual void calcInterpolatorVectorOfElectricFieldYDirectionFromEdgesOnEarthSurface (const int iElem, const int iFace, const double uCoord, const double vCoord, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
virtual void calcInterpolatorVectorOfElectricFieldTangentialXFromAllEdges (const int iElem, const int iFace, const double xLocal, const double yLocal, const double zLocal, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
virtual void calcInterpolatorVectorOfElectricFieldTangentialYFromAllEdges (const int iElem, const int iFace, const double xLocal, const double yLocal, const double zLocal, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
virtual void calcInterpolatorVectorOfElectricFieldTangentialX (const int iElem, const int iFace, const double uCoord, const double vCoord, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
virtual void calcInterpolatorVectorOfElectricFieldTangentialY (const int iElem, const int iFace, const double uCoord, const double vCoord, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
virtual void calcInterpolatorVectorOfMagneticFieldXDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
virtual void calcInterpolatorVectorOfMagneticFieldYDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
virtual void calcInterpolatorVectorOfMagneticFieldZDirection (const int iElem, const double xLocal, const double yLocal, const double zLocal, const int irhs, const std::complex< double > &factor=std::complex< double >(1.0, 0.0))
 
virtual void calcInterpolatorVectorOfVoltageDifference (const int nElem, const int *elememtsIncludingDipole, const CommonParameters::locationXY *localCoordinateValuesStartPoint, const CommonParameters::locationXY *localCoordinateValuesEndPoint, const int irhs)
 
virtual void calcInterpolatorVectorOfVoltageDifference (const int nElem, const int *elememtsIncludingDipole, const int *const facesIncludingDipole, const CommonParameters::AreaCoords *const areaCoordValStartPoint, const CommonParameters::AreaCoords *const areaCoordValEndPoint, const int irhs)
 
virtual void setNonZeroStrucuture (ComplexSparseSquareSymmetricMatrix &matrix)
 
virtual void setNonZeroValues (ComplexSparseSquareSymmetricMatrix &matrix)
 
virtual void calVectorXOfReciprocityAlgorithm (const std::complex< double > *const vecIn, const int blkID, std::complex< double > *const vecOut, std::vector< int > &nonZeroRows)
 
virtual void copySolutionVectorDegenerated (const int iPol, std::complex< double > *solutionVector) const
 
virtual void callInputMeshData ()
 
virtual const MeshDatagetPointerToMeshData () const
 
const MeshDataNonConformingHexaElementgetPointerToMeshDataNonConformingHexaElement () const
 
virtual std::complex< double > calcVoltageDifference (const int nElem, const int *elememtsIncludingDipole, const CommonParameters::locationXY *localCoordinateValuesStartPoint, const CommonParameters::locationXY *localCoordinateValuesEndPoint) const
 
virtual std::complex< double > calcVoltageDifference (const int nElem, const int *const elememtsIncludingDipole, const int *const facesIncludingDipole, const CommonParameters::AreaCoords *const areaCoordValStartPoint, const CommonParameters::AreaCoords *const areaCoordValEndPoint) const
 
virtual int getNumOfEquationFinallySolved () const
 
- Public Member Functions inherited from Forward3D
 Forward3D ()
 
virtual ~Forward3D ()
 
int getPolarizationCurrent () const
 
double getFrequencyCurrent () const
 
int getOrderOfFiniteElement () const
 
int getNumOfEquationDegenerated () const
 
void releaseMemoryOfMatrixAndSolver ()
 
void initializeRhsVectors (const int nrhs)
 
void solvePhaseForRhsConsistingInterpolatorVectors (const int numInterpolatorVectors, std::complex< double > *solutionForInterpolatorVectors)
 
void calculateDerivativesOfEMField (const int numInterpolatorVectors, const std::complex< double > *const solutionForInterpolatorVectors, std::complex< double > *const derivatives)
 
void allcateMemoryForDerivativeOfInterpolatorVectors (const int numInterpolatorVectors)
 

Private Member Functions

 Forward3DNonConformingHexaElement0thOrder (const Forward3DNonConformingHexaElement0thOrder &rhs)
 
Forward3DNonConformingHexaElement0thOrderoperator= (const Forward3DNonConformingHexaElement0thOrder &rhs)
 
void calcArrayConvertLocalID2Global ()
 
void calcArrayConvertIDsGlobal2AfterDegenerated ()
 
void calcArrayConvertIDGlobal2NonZeroValues ()
 
double calc2DJacobianMatrixForEarthSurface (const int elemID, const double xi, const double eta, Forward3D::Matrix2x2 &JacobMat) const
 
void makeMapSlaveDofToMasterDofAndFactors ()
 
void calcMPCConstants ()
 
bool doesIntegralXCompFirst (const CommonParameters::locationXY &startPoint, const CommonParameters::locationXY &endPoint, bool &rotationDirectionPlus, CommonParameters::locationXY &sharedPoint) const
 
void addMasterDofAndFactorPair (const int slaveDof, const int masterDof, const double factor)
 
double getShapeFuncX (const double xi, const double eta, const double zeta, const int num, const Forward3D::Matrix3x3 &invJacobMat) const
 
double getShapeFuncY (const double xi, const double eta, const double zeta, const int num, const Forward3D::Matrix3x3 &invJacobMat) const
 
double getShapeFuncZ (const double xi, const double eta, const double zeta, const int num, const Forward3D::Matrix3x3 &invJacobMat) const
 
double getShapeFuncRotatedX (const double xi, const double eta, const double zeta, const int num, const Forward3D::Matrix3x3 &invJacobMat) const
 
double getShapeFuncRotatedY (const double xi, const double eta, const double zeta, const int num, const Forward3D::Matrix3x3 &invJacobMat) const
 
double getShapeFuncRotatedZ (const double xi, const double eta, const double zeta, const int num, const Forward3D::Matrix3x3 &invJacobMat) const
 
double get2DShapeFuncRotatedForEarthSurface (const double xi, const double eta, const int num, const Forward3D::Matrix2x2 &invJacobMat) const
 
double calcJacobianMatrix (const int elemID, const double xi, const double eta, const double zeta, Forward3D::Matrix3x3 &JacobMat) const
 
void calcInverseOfJacobianMatrix (const Forward3D::Matrix3x3 &jacobMat, const double determinant, Forward3D::Matrix3x3 &invJacobMat) const
 
virtual void outputResultToVTK () const
 
virtual void outputResultToBinary (const int iFreq, const int iPol) const
 
void addValuesToRhsVectorsByConsideringMPC (const int irow, const int irhs, const std::complex< double > &val)
 

Private Attributes

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]
 
double m_xiAtEdge [12]
 
double m_etaAtEdge [12]
 
double m_zetaAtEdge [12]
 
bool m_hasMadeMapSlaveDofToMasterDofAndFactors
 
int * m_IDsAfterDegenerated2AfterConstrained
 
int m_numOfEquationDegeneratedAndConstrained
 
std::complex< double > * m_solutionVectorDegeneratedAndConstrained
 
std::vector< std::pair< int, double > > * m_slaveDofToMasterDofAndFactors
 
std::complex< double > * m_vectorMPCConstants
 
Forward2DNonConformingQuadrilateralElement0thOrderEdgeBasedm_Fwd2DQuadrilateralElement [4]
 
MeshDataNonConformingHexaElement m_MeshDataNonConformingHexaElement
 

Static Private Attributes

static const int DIRICHLET_BOUNDARY_NONZERO_VALUE = -1
 
static const int DIRICHLET_BOUNDARY_ZERO_VALUE = -2
 
static const int SLAVE_ON_OUTER_EDGES = -3
 
static const int SLAVE_ON_INTERIOR_EDGES = -4
 
static const int m_numGauss = 2
 
static const int m_numIntegralPoints = m_numGauss * m_numGauss * m_numGauss
 
static const double m_eps = 1.0e-12
 

Additional Inherited Members

- Protected Member Functions inherited from Forward3D
void setPolarizationCurrent (const int iPol)
 
void setFrequencyCurrent (const double freq)
 
void setOrderOfFiniteElement (const int order)
 
void addValuesToRhsVectors (const int irow, const int irhs, const std::complex< double > &val)
 
void initializeSparseSolver ()
 
- Protected Attributes inherited from Forward3D
int m_numOfEquation
 
int m_numOfEquationDegenerated
 
int ** m_IDsLocal2Global
 
bool m_hasSetIDsLocal2Global
 
int * m_IDsGlobal2AfterDegenerated [2]
 
std::map< int, std::complex< double > > m_globalID2NonZeroValues
 
bool m_hasIDsGlobal2AfterDegenerated [2]
 
std::map< int, int > m_globalIDSlave2Master [2]
 
ComplexSparseSquareSymmetricMatrix m_matrix3DAnalysis
 
bool m_hasMatrixStructureSetAndAnalyzed
 
std::complex< double > * m_solution
 

Constructor & Destructor Documentation

◆ Forward3DNonConformingHexaElement0thOrder() [1/2]

Forward3DNonConformingHexaElement0thOrder::Forward3DNonConformingHexaElement0thOrder ( )

◆ ~Forward3DNonConformingHexaElement0thOrder()

Forward3DNonConformingHexaElement0thOrder::~Forward3DNonConformingHexaElement0thOrder ( )
virtual

◆ Forward3DNonConformingHexaElement0thOrder() [2/2]

Forward3DNonConformingHexaElement0thOrder::Forward3DNonConformingHexaElement0thOrder ( const Forward3DNonConformingHexaElement0thOrder rhs)
private

Member Function Documentation

◆ addMasterDofAndFactorPair()

void Forward3DNonConformingHexaElement0thOrder::addMasterDofAndFactorPair ( const int  slaveDof,
const int  masterDof,
const double  factor 
)
private

◆ addValuesToRhsVectorsByConsideringMPC()

void Forward3DNonConformingHexaElement0thOrder::addValuesToRhsVectorsByConsideringMPC ( const int  irow,
const int  irhs,
const std::complex< double > &  val 
)
private

◆ calc2DJacobianMatrixForEarthSurface()

double Forward3DNonConformingHexaElement0thOrder::calc2DJacobianMatrixForEarthSurface ( const int  elemID,
const double  xi,
const double  eta,
Forward3D::Matrix2x2 JacobMat 
) const
private

◆ calcArrayConvertIDGlobal2NonZeroValues()

void Forward3DNonConformingHexaElement0thOrder::calcArrayConvertIDGlobal2NonZeroValues ( )
private

◆ calcArrayConvertIDsGlobal2AfterDegenerated()

void Forward3DNonConformingHexaElement0thOrder::calcArrayConvertIDsGlobal2AfterDegenerated ( )
private

◆ calcArrayConvertLocalID2Global()

void Forward3DNonConformingHexaElement0thOrder::calcArrayConvertLocalID2Global ( )
private

◆ calcInterpolatorVectorOfElectricFieldTangentialX()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfElectricFieldTangentialX ( const int  iElem,
const int  iFace,
const double  uCoord,
const double  vCoord,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfElectricFieldTangentialXFromAllEdges()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfElectricFieldTangentialXFromAllEdges ( const int  iElem,
const int  iFace,
const double  xLocal,
const double  yLocal,
const double  zLocal,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfElectricFieldTangentialY()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfElectricFieldTangentialY ( const int  iElem,
const int  iFace,
const double  uCoord,
const double  vCoord,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfElectricFieldTangentialYFromAllEdges()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfElectricFieldTangentialYFromAllEdges ( const int  iElem,
const int  iFace,
const double  xLocal,
const double  yLocal,
const double  zLocal,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfElectricFieldXDirection()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfElectricFieldXDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfElectricFieldXDirectionFromEdgesOnEarthSurface()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfElectricFieldXDirectionFromEdgesOnEarthSurface ( const int  iElem,
const int  iFace,
const double  uCoord,
const double  vCoord,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfElectricFieldYDirection()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfElectricFieldYDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfElectricFieldYDirectionFromEdgesOnEarthSurface()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfElectricFieldYDirectionFromEdgesOnEarthSurface ( const int  iElem,
const int  iFace,
const double  uCoord,
const double  vCoord,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfElectricFieldZDirection()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfElectricFieldZDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfMagneticFieldXDirection()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfMagneticFieldXDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfMagneticFieldYDirection()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfMagneticFieldYDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfMagneticFieldZDirection()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfMagneticFieldZDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfRotatedElectricFieldNormal()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfRotatedElectricFieldNormal ( const int  iElem,
const double  xLocal,
const double  yLocal,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)

◆ calcInterpolatorVectorOfRotatedElectricFieldZDirection()

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfRotatedElectricFieldZDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal,
const int  irhs,
const std::complex< double > &  factor = std::complex<double>(1.0,0.0) 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfVoltageDifference() [1/2]

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfVoltageDifference ( const int  nElem,
const int *  elememtsIncludingDipole,
const CommonParameters::locationXY localCoordinateValuesStartPoint,
const CommonParameters::locationXY localCoordinateValuesEndPoint,
const int  irhs 
)
virtual

Implements Forward3D.

◆ calcInterpolatorVectorOfVoltageDifference() [2/2]

void Forward3DNonConformingHexaElement0thOrder::calcInterpolatorVectorOfVoltageDifference ( const int  nElem,
const int *  elememtsIncludingDipole,
const int *const  facesIncludingDipole,
const CommonParameters::AreaCoords *const  areaCoordValStartPoint,
const CommonParameters::AreaCoords *const  areaCoordValEndPoint,
const int  irhs 
)
virtual

Implements Forward3D.

◆ calcInverseOfJacobianMatrix()

void Forward3DNonConformingHexaElement0thOrder::calcInverseOfJacobianMatrix ( const Forward3D::Matrix3x3 jacobMat,
const double  determinant,
Forward3D::Matrix3x3 invJacobMat 
) const
private

◆ calcJacobianMatrix()

double Forward3DNonConformingHexaElement0thOrder::calcJacobianMatrix ( const int  elemID,
const double  xi,
const double  eta,
const double  zeta,
Forward3D::Matrix3x3 JacobMat 
) const
private

◆ calcMPCConstants()

void Forward3DNonConformingHexaElement0thOrder::calcMPCConstants ( )
private

◆ calcValueElectricFieldTangentialX()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueElectricFieldTangentialX ( const int  iElem,
const int  iFace,
const double  uCoord,
const double  vCoord 
) const
virtual

Implements Forward3D.

◆ calcValueElectricFieldTangentialXFromAllEdges()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueElectricFieldTangentialXFromAllEdges ( const int  iElem,
const int  iFace,
const double  xLocal,
const double  yLocal,
const double  zLocal 
) const
virtual

Implements Forward3D.

◆ calcValueElectricFieldTangentialY()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueElectricFieldTangentialY ( const int  iElem,
const int  iFace,
const double  uCoord,
const double  vCoord 
) const
virtual

Implements Forward3D.

◆ calcValueElectricFieldTangentialYFromAllEdges()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueElectricFieldTangentialYFromAllEdges ( const int  iElem,
const int  iFace,
const double  xLocal,
const double  yLocal,
const double  zLocal 
) const
virtual

Implements Forward3D.

◆ calcValueElectricFieldXDirection()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueElectricFieldXDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal 
) const
virtual

Implements Forward3D.

◆ calcValueElectricFieldXDirectionFromEdgesOnEarthSurface()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueElectricFieldXDirectionFromEdgesOnEarthSurface ( const int  iElem,
const int  iFace,
const double  uCoord,
const double  vCoord 
) const
virtual

Implements Forward3D.

◆ calcValueElectricFieldYDirection()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueElectricFieldYDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal 
) const
virtual

Implements Forward3D.

◆ calcValueElectricFieldYDirectionFromEdgesOnEarthSurface()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueElectricFieldYDirectionFromEdgesOnEarthSurface ( const int  iElem,
const int  iFace,
const double  uCoord,
const double  vCoord 
) const
virtual

Implements Forward3D.

◆ calcValueElectricFieldZDirection()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueElectricFieldZDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal 
) const
virtual

Implements Forward3D.

◆ calcValueMagneticFieldXDirection()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueMagneticFieldXDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal 
) const
virtual

Implements Forward3D.

◆ calcValueMagneticFieldYDirection()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueMagneticFieldYDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal 
) const
virtual

Implements Forward3D.

◆ calcValueMagneticFieldZDirection()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueMagneticFieldZDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal 
) const
virtual

Implements Forward3D.

◆ calcValueRotatedElectricFieldNormal()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueRotatedElectricFieldNormal ( const int  iElem,
const double  xLocal,
const double  yLocal 
) const

◆ calcValueRotatedElectricFieldZDirection()

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcValueRotatedElectricFieldZDirection ( const int  iElem,
const double  xLocal,
const double  yLocal,
const double  zLocal 
) const
virtual

Implements Forward3D.

◆ calcVoltageDifference() [1/2]

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcVoltageDifference ( const int  nElem,
const int *const  elememtsIncludingDipole,
const int *const  facesIncludingDipole,
const CommonParameters::AreaCoords *const  areaCoordValStartPoint,
const CommonParameters::AreaCoords *const  areaCoordValEndPoint 
) const
virtual

Implements Forward3D.

◆ calcVoltageDifference() [2/2]

std::complex< double > Forward3DNonConformingHexaElement0thOrder::calcVoltageDifference ( const int  nElem,
const int *  elememtsIncludingDipole,
const CommonParameters::locationXY localCoordinateValuesStartPoint,
const CommonParameters::locationXY localCoordinateValuesEndPoint 
) const
virtual

Implements Forward3D.

◆ callInputMeshData()

void Forward3DNonConformingHexaElement0thOrder::callInputMeshData ( )
virtual

Implements Forward3D.

◆ calVectorXOfReciprocityAlgorithm()

void Forward3DNonConformingHexaElement0thOrder::calVectorXOfReciprocityAlgorithm ( const std::complex< double > *const  vecIn,
const int  blkID,
std::complex< double > *const  vecOut,
std::vector< int > &  nonZeroRows 
)
virtual

Implements Forward3D.

◆ copySolutionVectorDegenerated()

void Forward3DNonConformingHexaElement0thOrder::copySolutionVectorDegenerated ( const int  iPol,
std::complex< double > *  solutionVector 
) const
virtual

Reimplemented from Forward3D.

◆ doesIntegralXCompFirst()

bool Forward3DNonConformingHexaElement0thOrder::doesIntegralXCompFirst ( const CommonParameters::locationXY startPoint,
const CommonParameters::locationXY endPoint,
bool &  rotationDirectionPlus,
CommonParameters::locationXY sharedPoint 
) const
private

◆ forwardCalculation()

void Forward3DNonConformingHexaElement0thOrder::forwardCalculation ( const double  freq,
const int  iPol 
)
virtual

Implements Forward3D.

◆ get2DShapeFuncRotatedForEarthSurface()

double Forward3DNonConformingHexaElement0thOrder::get2DShapeFuncRotatedForEarthSurface ( const double  xi,
const double  eta,
const int  num,
const Forward3D::Matrix2x2 invJacobMat 
) const
private

◆ getNumOfEquationFinallySolved()

int Forward3DNonConformingHexaElement0thOrder::getNumOfEquationFinallySolved ( ) const
virtual

Reimplemented from Forward3D.

◆ getPointerToMeshData()

const MeshData * Forward3DNonConformingHexaElement0thOrder::getPointerToMeshData ( ) const
virtual

Implements Forward3D.

◆ getPointerToMeshDataNonConformingHexaElement()

const MeshDataNonConformingHexaElement * Forward3DNonConformingHexaElement0thOrder::getPointerToMeshDataNonConformingHexaElement ( ) const

◆ getShapeFuncRotatedX()

double Forward3DNonConformingHexaElement0thOrder::getShapeFuncRotatedX ( const double  xi,
const double  eta,
const double  zeta,
const int  num,
const Forward3D::Matrix3x3 invJacobMat 
) const
private

◆ getShapeFuncRotatedY()

double Forward3DNonConformingHexaElement0thOrder::getShapeFuncRotatedY ( const double  xi,
const double  eta,
const double  zeta,
const int  num,
const Forward3D::Matrix3x3 invJacobMat 
) const
private

◆ getShapeFuncRotatedZ()

double Forward3DNonConformingHexaElement0thOrder::getShapeFuncRotatedZ ( const double  xi,
const double  eta,
const double  zeta,
const int  num,
const Forward3D::Matrix3x3 invJacobMat 
) const
private

◆ getShapeFuncX()

double Forward3DNonConformingHexaElement0thOrder::getShapeFuncX ( const double  xi,
const double  eta,
const double  zeta,
const int  num,
const Forward3D::Matrix3x3 invJacobMat 
) const
private

◆ getShapeFuncY()

double Forward3DNonConformingHexaElement0thOrder::getShapeFuncY ( const double  xi,
const double  eta,
const double  zeta,
const int  num,
const Forward3D::Matrix3x3 invJacobMat 
) const
private

◆ getShapeFuncZ()

double Forward3DNonConformingHexaElement0thOrder::getShapeFuncZ ( const double  xi,
const double  eta,
const double  zeta,
const int  num,
const Forward3D::Matrix3x3 invJacobMat 
) const
private

◆ makeMapSlaveDofToMasterDofAndFactors()

void Forward3DNonConformingHexaElement0thOrder::makeMapSlaveDofToMasterDofAndFactors ( )
private

◆ operator=()

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

◆ outputResultToBinary()

void Forward3DNonConformingHexaElement0thOrder::outputResultToBinary ( const int  iFreq,
const int  iPol 
) const
privatevirtual

◆ outputResultToVTK()

void Forward3DNonConformingHexaElement0thOrder::outputResultToVTK ( ) const
privatevirtual

Implements Forward3D.

◆ setNonZeroStrucuture()

void Forward3DNonConformingHexaElement0thOrder::setNonZeroStrucuture ( ComplexSparseSquareSymmetricMatrix matrix)
virtual

Implements Forward3D.

◆ setNonZeroValues()

void Forward3DNonConformingHexaElement0thOrder::setNonZeroValues ( ComplexSparseSquareSymmetricMatrix matrix)
virtual

Implements Forward3D.

Member Data Documentation

◆ DIRICHLET_BOUNDARY_NONZERO_VALUE

const int Forward3DNonConformingHexaElement0thOrder::DIRICHLET_BOUNDARY_NONZERO_VALUE = -1
staticprivate

◆ DIRICHLET_BOUNDARY_ZERO_VALUE

const int Forward3DNonConformingHexaElement0thOrder::DIRICHLET_BOUNDARY_ZERO_VALUE = -2
staticprivate

◆ m_eps

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

◆ m_etaAtEdge

double Forward3DNonConformingHexaElement0thOrder::m_etaAtEdge[12]
private

◆ m_etaAtNode

double Forward3DNonConformingHexaElement0thOrder::m_etaAtNode[8]
private

◆ m_Fwd2DQuadrilateralElement

Forward2DNonConformingQuadrilateralElement0thOrderEdgeBased* Forward3DNonConformingHexaElement0thOrder::m_Fwd2DQuadrilateralElement[4]
private

◆ m_hasMadeMapSlaveDofToMasterDofAndFactors

bool Forward3DNonConformingHexaElement0thOrder::m_hasMadeMapSlaveDofToMasterDofAndFactors
private

◆ m_IDsAfterDegenerated2AfterConstrained

int* Forward3DNonConformingHexaElement0thOrder::m_IDsAfterDegenerated2AfterConstrained
private

◆ m_integralPointEta

double Forward3DNonConformingHexaElement0thOrder::m_integralPointEta[m_numIntegralPoints]
private

◆ m_integralPointXi

double Forward3DNonConformingHexaElement0thOrder::m_integralPointXi[m_numIntegralPoints]
private

◆ m_integralPointZeta

double Forward3DNonConformingHexaElement0thOrder::m_integralPointZeta[m_numIntegralPoints]
private

◆ m_MeshDataNonConformingHexaElement

MeshDataNonConformingHexaElement Forward3DNonConformingHexaElement0thOrder::m_MeshDataNonConformingHexaElement
private

◆ m_numGauss

const int Forward3DNonConformingHexaElement0thOrder::m_numGauss = 2
staticprivate

◆ m_numIntegralPoints

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

◆ m_numOfEquationDegeneratedAndConstrained

int Forward3DNonConformingHexaElement0thOrder::m_numOfEquationDegeneratedAndConstrained
private

◆ m_slaveDofToMasterDofAndFactors

std::vector< std::pair<int,double> >* Forward3DNonConformingHexaElement0thOrder::m_slaveDofToMasterDofAndFactors
private

◆ m_solutionVectorDegeneratedAndConstrained

std::complex<double>* Forward3DNonConformingHexaElement0thOrder::m_solutionVectorDegeneratedAndConstrained
private

◆ m_vectorMPCConstants

std::complex<double>* Forward3DNonConformingHexaElement0thOrder::m_vectorMPCConstants
private

◆ m_weights

double Forward3DNonConformingHexaElement0thOrder::m_weights[m_numIntegralPoints]
private

◆ m_xiAtEdge

double Forward3DNonConformingHexaElement0thOrder::m_xiAtEdge[12]
private

◆ m_xiAtNode

double Forward3DNonConformingHexaElement0thOrder::m_xiAtNode[8]
private

◆ m_zetaAtEdge

double Forward3DNonConformingHexaElement0thOrder::m_zetaAtEdge[12]
private

◆ m_zetaAtNode

double Forward3DNonConformingHexaElement0thOrder::m_zetaAtNode[8]
private

◆ SLAVE_ON_INTERIOR_EDGES

const int Forward3DNonConformingHexaElement0thOrder::SLAVE_ON_INTERIOR_EDGES = -4
staticprivate

◆ SLAVE_ON_OUTER_EDGES

const int Forward3DNonConformingHexaElement0thOrder::SLAVE_ON_OUTER_EDGES = -3
staticprivate

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