FEMTIC
ObservedDataStationPoint.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_OBSERVED_DATA_STATION_POINT
25 #define DBLDEF_OBSERVED_DATA_STATION_POINT
26 
27 #include <vector>
28 #include <complex>
29 
30 #include "ObservedDataStation.h"
31 
32 // Observed data of point station
34  public:
35  // Constructer
36  explicit ObservedDataStationPoint();
37 
38  // Destructer
40 
41  // Find element including a point
43 
44  // Get caluculated value of Hx
45  std::complex<double> getHxCalculated( const int iPol ) const;
46 
47  // Get caluculated value of Hy
48  std::complex<double> getHyCalculated( const int iPol ) const;
49 
50  // Get right-hand side vector ID of Hx
51  int getRhsVectorIDOfHx() const;
52 
53  // Get right-hand side vector ID of Hy
54  int getRhsVectorIDOfHy() const;
55 
56  // Calulate horizontal magnetic field
57  void calculateHorizontalMagneticField( const Forward3D* const ptrForward3D, const int rhsVectorIDOfHx, const int rhsVectorIDOfHy );
58 
59  // Initialize horizontal magnetic field
60  void initializeHorizontalMagneticField( const int iPol );
61 
62  // Calulate interpolator vector of horizontal magnetic field
64 
65  // Get location of the point
67 
68  // Get Z coordinate of the point
69  double getZCoordOfPoint() const;
70 
71  // Get flag specifing whether the EM field is interpolated from the values of the upper element
73 
74  // Set flag specifing whether the EM field is interpolated from the values of the upper element
75  void setFlagUseUpperElementForInterpolationOfEMField( const bool useUpperElem );
76 
77  protected:
78  // Location of the station
80 
81  // Element including the station
83 
84  // Face including the station
86 
87  // Flag specifing whether the EM field is interpolated from the values of the upper element
89 
90  // local coordinate values of the location of the station
92 
93  // Volume coordinate values of the location of start point of line segment for tetrahedral mesh
95 
96  // Area coordinate values of the location
98 
99  std::complex<double> m_HxCalculated[2];
100  std::complex<double> m_HyCalculated[2];
101 
104 
105  private:
106  // Copy constructer
108 
109  // Copy assignment operator
111 
112 };
113 
114 #endif
Definition: Forward3D.h:37
Definition: ObservedDataStationPoint.h:33
bool useUpperElementForInterpolationOfEMField() const
Definition: ObservedDataStationPoint.cpp:257
void calculateHorizontalMagneticField(const Forward3D *const ptrForward3D, const int rhsVectorIDOfHx, const int rhsVectorIDOfHy)
Definition: ObservedDataStationPoint.cpp:166
CommonParameters::locationXYZ m_localCoordinateValues
Definition: ObservedDataStationPoint.h:91
void initializeHorizontalMagneticField(const int iPol)
Definition: ObservedDataStationPoint.cpp:197
std::complex< double > getHxCalculated(const int iPol) const
Definition: ObservedDataStationPoint.cpp:150
int m_elementIncludingStation
Definition: ObservedDataStationPoint.h:82
ObservedDataStationPoint & operator=(const ObservedDataStationPoint &rhs)
void calcInterpolatorVectorOfHorizontalMagneticField(Forward3D *const ptrForward3D)
Definition: ObservedDataStationPoint.cpp:203
void setFlagUseUpperElementForInterpolationOfEMField(const bool useUpperElem)
Definition: ObservedDataStationPoint.cpp:262
CommonParameters::locationXY m_location
Definition: ObservedDataStationPoint.h:79
ObservedDataStationPoint()
Definition: ObservedDataStationPoint.cpp:35
int m_rhsVectorIDOfHx
Definition: ObservedDataStationPoint.h:102
void findElementIncludingStation()
Definition: ObservedDataStationPoint.cpp:68
bool m_useUpperElementForInterpolationOfEMField
Definition: ObservedDataStationPoint.h:88
int m_faceIncludingStation
Definition: ObservedDataStationPoint.h:85
int m_rhsVectorIDOfHy
Definition: ObservedDataStationPoint.h:103
ObservedDataStationPoint(const ObservedDataStationPoint &rhs)
CommonParameters::AreaCoords m_areaCoordinateValues
Definition: ObservedDataStationPoint.h:97
const CommonParameters::locationXY & getLocationOfPoint() const
Definition: ObservedDataStationPoint.cpp:227
~ObservedDataStationPoint()
Definition: ObservedDataStationPoint.cpp:65
std::complex< double > m_HxCalculated[2]
Definition: ObservedDataStationPoint.h:99
std::complex< double > m_HyCalculated[2]
Definition: ObservedDataStationPoint.h:100
int getRhsVectorIDOfHx() const
Definition: ObservedDataStationPoint.cpp:160
std::complex< double > getHyCalculated(const int iPol) const
Definition: ObservedDataStationPoint.cpp:155
double getZCoordOfPoint() const
Definition: ObservedDataStationPoint.cpp:232
int getRhsVectorIDOfHy() const
Definition: ObservedDataStationPoint.cpp:163
CommonParameters::VolumeCoords m_volumeCoordinateValues
Definition: ObservedDataStationPoint.h:94
Definition: ObservedDataStation.h:35
Definition: CommonParameters.h:99
Definition: CommonParameters.h:105
Definition: CommonParameters.h:53
Definition: CommonParameters.h:38