FEMTIC
Forward3DBrickElement0thOrder.h
Go to the documentation of this file.
1 //-------------------------------------------------------------------------------------------------------
2 // The MIT License (MIT)
3 //
4 // Copyright (c) 2021 Yoshiya Usui
5 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
7 // of this software and associated documentation files (the "Software"), to deal
8 // in the Software without restriction, including without limitation the rights
9 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 // copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
12 //
13 // The above copyright notice and this permission notice shall be included in all
14 // copies or substantial portions of the Software.
15 //
16 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 // SOFTWARE.
23 //-------------------------------------------------------------------------------------------------------
24 #ifndef DBLDEF_FORWARD_3D_BRICK_ELEMENT_0TH_ORDER
25 #define DBLDEF_FORWARD_3D_BRICK_ELEMENT_0TH_ORDER
26 
27 #include "Forward2DSquareElement.h"
28 #include "Forward3D.h"
29 #include "MeshDataBrickElement.h"
30 #include <set>
31 
32 // Class of 3D forward calculation by using 0th order brick element
34 
35 public:
36  // Constructer
38 
39  // Destructer
41 
42  // Run 3D forward calculation by using brick element
43  virtual void forwardCalculation( const double freq, const int iPol );
44 
45  // Calculate X component electric field values for 0th order edge-based elements
46  virtual std::complex<double> calcValueElectricFieldXDirection( const int iElem, const double xLocal, const double yLocal, const double zLocal ) const;
47 
48  // Calculate Y component electric field values for 0th order edge-based elements
49  virtual std::complex<double> calcValueElectricFieldYDirection( const int iElem, const double xLocal, const double yLocal, const double zLocal ) const;
50 
51  // Calculate Z component electric field values for 0th order edge-based elements
52  virtual std::complex<double> calcValueElectricFieldZDirection( const int iElem, const double xLocal, const double yLocal, const double zLocal ) const;
53 
54  // Calculate Z component of rotated electric field
55  virtual std::complex<double> calcValueRotatedElectricFieldZDirection( const int iElem, const double xLocal, const double yLocal, const double zLocal ) const;
56 
57  // Calculate X component of electric field only from the edges on the Earth's surface
58  virtual std::complex<double> calcValueElectricFieldXDirectionFromEdgesOnEarthSurface( const int iElem, const int iFace, const double uCoord, const double vCoord ) const;
59 
60  // Calculate Y component of electric field only from the edges on the Earth's surface
61  virtual std::complex<double> calcValueElectricFieldYDirectionFromEdgesOnEarthSurface( const int iElem, const int iFace, const double uCoord, const double vCoord ) const;
62 
63  // Calculate tangential electric field directed to X from all edges of owner element
64  virtual std::complex<double> calcValueElectricFieldTangentialXFromAllEdges( const int iElem, const int iFace, const double xLocal, const double yLocal, const double zLocal ) const;
65 
66  // Calculate tangential electric field directed to Y from all edges of owner element
67  virtual std::complex<double> calcValueElectricFieldTangentialYFromAllEdges( const int iElem, const int iFace, const double xLocal, const double yLocal, const double zLocal ) const;
68 
69  // Calculate tangential electric field directed to X
70  virtual std::complex<double> calcValueElectricFieldTangentialX( const int iElem, const int iFace, const double uCoord, const double vCoord ) const;
71 
72  // Calculate tangential electric field directed to Y
73  virtual std::complex<double> calcValueElectricFieldTangentialY( const int iElem, const int iFace, const double uCoord, const double vCoord ) const;
74 
75  // Calculate X component magnetic field values for 0th order edge-based elements
76  virtual std::complex<double> calcValueMagneticFieldXDirection( const int iElem, const double xLocal, const double yLocal, const double zLocal ) const;
77 
78  // Calculate Y component magnetic field values for 0th order edge-based elements
79  virtual std::complex<double> calcValueMagneticFieldYDirection( const int iElem, const double xLocal, const double yLocal, const double zLocal ) const;
80 
81  // Calculate Z component magnetic field values for 0th order edge-based elements
82  virtual std::complex<double> calcValueMagneticFieldZDirection( const int iElem, const double xLocal, const double yLocal, const double zLocal ) const;
83 
84  // Calculate difference of voltage
85  virtual std::complex<double> calcVoltageDifference( const int nElem, const int* elememtsIncludingDipole,
86  const CommonParameters::locationXY* localCoordinateValuesStartPoint, const CommonParameters::locationXY* localCoordinateValuesEndPoint ) const;
87 
88  // Calculate difference of voltage for tetra element
89  virtual std::complex<double> calcVoltageDifference( const int nElem, const int* const elememtsIncludingDipole, const int* const facesIncludingDipole,
90  const CommonParameters::AreaCoords* const areaCoordValStartPoint, const CommonParameters::AreaCoords* const areaCoordValEndPoint ) const;
91 
92  // Calculate interpolator vector of X component of electric field
93  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) );
94 
95  // Calculate interpolator vector of Y component of electric field
96  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) );
97 
98  // Calculate interpolator vector of Z component of electric field
99  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) );
100 
101  // Calculate interpolator vector of Z component of rotated electric field
102  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) );
103 
104  // Calculate interpolator vector of X component of electric field only from the edges on the Earth's surface
105  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) );
106 
107  // Calculate interpolator vector of Y component of electric field only from the edges on the Earth's surface
108  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) );
109 
110  // Calculate interpolator vector of tangential electric field directed to X from all edges
111  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) );
112 
113  // Calculate interpolator vector of tangential electric field directed to Y from all edges
114  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) );
115 
116  // Calculate interpolator vector of tangential electric field directed to X
117  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) );
118 
119  // Calculate interpolator vector of tangential electric field directed to Y
120  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) );
121 
122  // Calculate interpolator vector of X component of magnetic field
123  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) );
124 
125  // Calculate interpolator vector of Y component of magnetic field
126  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) );
127 
128  // Calculate interpolator vector of Z component of magnetic field
129  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) );
130 
131  // Calculate interpolator vector of difference of voltage
132  virtual void calcInterpolatorVectorOfVoltageDifference( const int nElem, const int* elememtsIncludingDipole, const CommonParameters::locationXY* localCoordinateValuesStartPoint, const CommonParameters::locationXY* localCoordinateValuesEndPoint, const int irhs );
133 
134  // Calculate interpolator vector of difference of voltage
135  virtual void calcInterpolatorVectorOfVoltageDifference( const int nElem, const int* elememtsIncludingDipole, const int* const facesIncludingDipole,
136  const CommonParameters::AreaCoords* const areaCoordValStartPoint, const CommonParameters::AreaCoords* const areaCoordValEndPoint, const int irhs );
137 
138  // Set non-zero strucuture of matrix for forward calculation
140 
141  // Set non-zero values of matrix and right-hande side vector for forward calculation
143 
144  //----- DO NOT DELETE FOR FUTURE USE >>>>>
146  //virtual void setNonZeroStrucuture( ComplexSparseSquareSymmetricMatrix& matrix, const int blkID, std::set<int>& nonZeroRowsAndCols );
147 
149  //virtual void setNonZeroValues( ComplexSparseSquareSymmetricMatrix& matrix, const int blkID );
150  //----- DO NOT DELETE FOR FUTURE USE >>>>>
151 
152  // Calculate vector x of the reciprocity algorithm of Rodi (1976)
153  virtual void calVectorXOfReciprocityAlgorithm( const std::complex<double>* const vecIn, const int blkID, std::complex<double>* const vecOut, std::vector<int>& nonZeroRows );
154 
155  // Call function inputMeshData of the class MeshData
156  virtual void callInputMeshData();
157 
158  // Get pointer to the class MeshData
159  virtual const MeshData* getPointerToMeshData() const;
160 
161  // Get pointer to the class MeshDataBrickElement
163 
164 private:
165  //const static std::vector<int> m_iVecDummy;
166 
167  const static int DIRICHLET_BOUNDARY_NONZERO_VALUE = -1;// This must be the same as the ones of other functions !!
168 
169  const static int DIRICHLET_BOUNDARY_ZERO_VALUE = -2;// This must be the same as the ones of other functions !!
170 
171  const static int m_numGauss = 2;
172 
174 
176 
178 
180 
182 
184 
185  // Copy constructer
187 
188  // Copy assignment operator
190 
191  // Class of 2D forward calculation using square elements
192  //Forward2DSquareElement* m_Fwd2DSquareElement[4][2];
194 
195  // Get X component of shape function for 0th order edge-based elements
196  inline double getShapeFuncX( const double xLocal, const double yLocal, const double zLocal, const int num ) const;
197 
198  // Get Y component of shape function for 0th order edge-based elements
199  inline double getShapeFuncY( const double xLocal, const double yLocal, const double zLocal, const int num ) const;
200 
201  // Get Z component of shape function for 0th order edge-based elements
202  inline double getShapeFuncZ( const double xLocal, const double yLocal, const double zLocal, const int num ) const;
203 
204  // Get X component of shape function rotated for 0th order edge-based elements
205  inline double getShapeFuncRotatedX( const double xLocal, const double yLocal, const double zLocal,
206  const double lx, const double ly, const double lz, const int num ) const;
207 
208  // Get Y component of shape function rotated for 0th order edge-based elements
209  inline double getShapeFuncRotatedY( const double xLocal, const double yLocal, const double zLocal,
210  const double lx, const double ly, const double lz, const int num ) const;
211 
212  // Get Z component of shape function rotated for 0th order edge-based elements
213  inline double getShapeFuncRotatedZ( const double xLocal, const double yLocal, const double zLocal,
214  const double lx, const double ly, const double lz, const int num ) const;
215 
216  // Calculate array converting local IDs to global ones
218 
219  // Calculate array converting global IDs to the ones after degeneration
221 
222  // Calculate array converting global edge IDs non-zero electric field values specified to the edges
224 
225  // Renumber global node IDs after degeneration by coordinate values
226  void renumberNodes();
227 
229  //bool doesRotationDirectionPlus( const CommonParameters::locationXY& startPoint, const CommonParameters::locationXY& endPoint,
230  // bool& integralXCompFirst ) const;
231  // Calculate flag specifing whether integral X component first
233  bool& rotationDirectionPlus ) const;
234 
235  // Output results of forward calculation to VTK file
236  virtual void outputResultToVTK() const;
237 
238  // Output results of forward calculation to binary file
239  virtual void outputResultToBinary( const int iFreq, const int iPol ) const;
240 
242  //virtual int getNumElemTotal() const;
243 
244 };
245 
246 #endif
Definition: ComplexSparseSquareSymmetricMatrix.h:32
Definition: Forward2DSquareElement.h:31
Definition: Forward3DBrickElement0thOrder.h:33
bool doesIntegralXCompFirst(const CommonParameters::locationXY &startPoint, const CommonParameters::locationXY &endPoint, bool &rotationDirectionPlus) const
Definition: Forward3DBrickElement0thOrder.cpp:2812
double m_zLocal[m_numIntegralPoints]
Definition: Forward3DBrickElement0thOrder.h:179
virtual ~Forward3DBrickElement0thOrder()
Definition: Forward3DBrickElement0thOrder.cpp:79
static const int DIRICHLET_BOUNDARY_NONZERO_VALUE
Definition: Forward3DBrickElement0thOrder.h:167
void calcArrayConvertIDsGlobal2AfterDegenerated()
Definition: Forward3DBrickElement0thOrder.cpp:2143
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))
Definition: Forward3DBrickElement0thOrder.cpp:915
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))
Definition: Forward3DBrickElement0thOrder.cpp:955
virtual std::complex< double > calcValueRotatedElectricFieldZDirection(const int iElem, const double xLocal, const double yLocal, const double zLocal) const
Definition: Forward3DBrickElement0thOrder.cpp:396
virtual std::complex< double > calcValueElectricFieldTangentialX(const int iElem, const int iFace, const double uCoord, const double vCoord) const
Definition: Forward3DBrickElement0thOrder.cpp:455
Forward3DBrickElement0thOrder(const Forward3DBrickElement0thOrder &rhs)
virtual std::complex< double > calcValueElectricFieldXDirection(const int iElem, const double xLocal, const double yLocal, const double zLocal) const
Definition: Forward3DBrickElement0thOrder.cpp:291
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))
Definition: Forward3DBrickElement0thOrder.cpp:1024
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))
Definition: Forward3DBrickElement0thOrder.cpp:1015
virtual void outputResultToBinary(const int iFreq, const int iPol) const
Definition: Forward3DBrickElement0thOrder.cpp:3049
virtual std::complex< double > calcValueElectricFieldZDirection(const int iElem, const double xLocal, const double yLocal, const double zLocal) const
Definition: Forward3DBrickElement0thOrder.cpp:361
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))
Definition: Forward3DBrickElement0thOrder.cpp:1139
virtual std::complex< double > calcValueMagneticFieldZDirection(const int iElem, const double xLocal, const double yLocal, const double zLocal) const
Definition: Forward3DBrickElement0thOrder.cpp:561
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))
Definition: Forward3DBrickElement0thOrder.cpp:1091
void renumberNodes()
Definition: Forward3DBrickElement0thOrder.cpp:2601
double getShapeFuncX(const double xLocal, const double yLocal, const double zLocal, const int num) const
Definition: Forward3DBrickElement0thOrder.cpp:1767
virtual std::complex< double > calcValueMagneticFieldYDirection(const int iElem, const double xLocal, const double yLocal, const double zLocal) const
Definition: Forward3DBrickElement0thOrder.cpp:516
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))
Definition: Forward3DBrickElement0thOrder.cpp:1033
virtual void forwardCalculation(const double freq, const int iPol)
Definition: Forward3DBrickElement0thOrder.cpp:90
double m_xLocal[m_numIntegralPoints]
Definition: Forward3DBrickElement0thOrder.h:175
const MeshDataBrickElement * getPointerToMeshDataBrickElement() const
Definition: Forward3DBrickElement0thOrder.cpp:1760
virtual std::complex< double > calcValueElectricFieldYDirection(const int iElem, const double xLocal, const double yLocal, const double zLocal) const
Definition: Forward3DBrickElement0thOrder.cpp:326
Forward3DBrickElement0thOrder()
Definition: Forward3DBrickElement0thOrder.cpp:46
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))
Definition: Forward3DBrickElement0thOrder.cpp:875
virtual std::complex< double > calcValueElectricFieldTangentialXFromAllEdges(const int iElem, const int iFace, const double xLocal, const double yLocal, const double zLocal) const
Definition: Forward3DBrickElement0thOrder.cpp:439
double getShapeFuncRotatedZ(const double xLocal, const double yLocal, const double zLocal, const double lx, const double ly, const double lz, const int num) const
Definition: Forward3DBrickElement0thOrder.cpp:2009
double getShapeFuncZ(const double xLocal, const double yLocal, const double zLocal, const int num) const
Definition: Forward3DBrickElement0thOrder.cpp:1863
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))
Definition: Forward3DBrickElement0thOrder.cpp:1006
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))
Definition: Forward3DBrickElement0thOrder.cpp:988
virtual std::complex< double > calcValueElectricFieldYDirectionFromEdgesOnEarthSurface(const int iElem, const int iFace, const double uCoord, const double vCoord) const
Definition: Forward3DBrickElement0thOrder.cpp:431
Forward2DSquareElement * m_Fwd2DSquareElement[4]
Definition: Forward3DBrickElement0thOrder.h:193
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))
Definition: Forward3DBrickElement0thOrder.cpp:835
double m_weights3D[m_numIntegralPoints]
Definition: Forward3DBrickElement0thOrder.h:181
virtual void callInputMeshData()
Definition: Forward3DBrickElement0thOrder.cpp:1746
virtual void outputResultToVTK() const
Definition: Forward3DBrickElement0thOrder.cpp:2965
MeshDataBrickElement m_MeshDataBrickElement
Definition: Forward3DBrickElement0thOrder.h:183
double getShapeFuncRotatedX(const double xLocal, const double yLocal, const double zLocal, const double lx, const double ly, const double lz, const int num) const
Definition: Forward3DBrickElement0thOrder.cpp:1911
virtual std::complex< double > calcValueElectricFieldTangentialYFromAllEdges(const int iElem, const int iFace, const double xLocal, const double yLocal, const double zLocal) const
Definition: Forward3DBrickElement0thOrder.cpp:447
double m_yLocal[m_numIntegralPoints]
Definition: Forward3DBrickElement0thOrder.h:177
virtual std::complex< double > calcValueMagneticFieldXDirection(const int iElem, const double xLocal, const double yLocal, const double zLocal) const
Definition: Forward3DBrickElement0thOrder.cpp:471
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))
Definition: Forward3DBrickElement0thOrder.cpp:1042
void calcArrayConvertLocalID2Global()
Definition: Forward3DBrickElement0thOrder.cpp:2058
virtual std::complex< double > calcValueElectricFieldXDirectionFromEdgesOnEarthSurface(const int iElem, const int iFace, const double uCoord, const double vCoord) const
Definition: Forward3DBrickElement0thOrder.cpp:423
virtual void calVectorXOfReciprocityAlgorithm(const std::complex< double > *const vecIn, const int blkID, std::complex< double > *const vecOut, std::vector< int > &nonZeroRows)
Definition: Forward3DBrickElement0thOrder.cpp:1624
virtual const MeshData * getPointerToMeshData() const
Definition: Forward3DBrickElement0thOrder.cpp:1753
virtual void calcInterpolatorVectorOfVoltageDifference(const int nElem, const int *elememtsIncludingDipole, const CommonParameters::locationXY *localCoordinateValuesStartPoint, const CommonParameters::locationXY *localCoordinateValuesEndPoint, const int irhs)
Definition: Forward3DBrickElement0thOrder.cpp:1177
Forward3DBrickElement0thOrder & operator=(const Forward3DBrickElement0thOrder &rhs)
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))
Definition: Forward3DBrickElement0thOrder.cpp:997
double getShapeFuncRotatedY(const double xLocal, const double yLocal, const double zLocal, const double lx, const double ly, const double lz, const int num) const
Definition: Forward3DBrickElement0thOrder.cpp:1960
virtual std::complex< double > calcVoltageDifference(const int nElem, const int *elememtsIncludingDipole, const CommonParameters::locationXY *localCoordinateValuesStartPoint, const CommonParameters::locationXY *localCoordinateValuesEndPoint) const
Definition: Forward3DBrickElement0thOrder.cpp:596
virtual void setNonZeroStrucuture(ComplexSparseSquareSymmetricMatrix &matrix)
Definition: Forward3DBrickElement0thOrder.cpp:1235
virtual std::complex< double > calcValueElectricFieldTangentialY(const int iElem, const int iFace, const double uCoord, const double vCoord) const
Definition: Forward3DBrickElement0thOrder.cpp:463
static const int DIRICHLET_BOUNDARY_ZERO_VALUE
Definition: Forward3DBrickElement0thOrder.h:169
static const int m_numIntegralPoints
Definition: Forward3DBrickElement0thOrder.h:173
double getShapeFuncY(const double xLocal, const double yLocal, const double zLocal, const int num) const
Definition: Forward3DBrickElement0thOrder.cpp:1815
virtual void setNonZeroValues(ComplexSparseSquareSymmetricMatrix &matrix)
Definition: Forward3DBrickElement0thOrder.cpp:1294
static const int m_numGauss
Definition: Forward3DBrickElement0thOrder.h:171
void calcArrayConvertIDGlobal2NonZeroValues()
Definition: Forward3DBrickElement0thOrder.cpp:2431
Definition: Forward3D.h:37
Definition: MeshDataBrickElement.h:31
Definition: MeshData.h:31
Definition: CommonParameters.h:99
Definition: CommonParameters.h:38