FEMTIC
AdditinalOutputPoint.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_ADDITIONAL_OUTPUT_POINT
25 #define DBLDEF_ADDITIONAL_OUTPUT_POINT
26 
27 #include <vector>
28 #include <complex>
29 
30 #include "Forward3D.h"
31 #include "CommonParameters.h"
32 
33 // Class of additional output points
35  public:
36  // Constructer
37  explicit AdditinalOutputPoint();
38 
39  // Destructer
41 
42  // Read data from input file
43  void inputObservedData( std::ifstream& inFile );
44 
45  // Find element including a point
47 
48  // Calulate EM field
49  void calculateEMField( const int ifreq, const Forward3D* const ptrForward3D );
50 
51  // Initialize EM field
52  void initializeEMfield( const int nfreq );
53 
54  // Allocate memory for EM field
55  void allocateMemoryForCalculatedValues( const int nfreq );
56 
57  // Output calculated values of EM field
58  void outputCalculatedValues( const int nfreq, const double* const freq ) const;
59 
60  private:
61  // Location of the station
63 
64  // Element including the station
66 
67  // local coordinate values of the location of the station
69 
70  // Volume coordinate values of the location of start point of line segment for tetrahedral mesh
72 
73  std::complex<double>* m_ExCalculated[2];
74  std::complex<double>* m_EyCalculated[2];
75  std::complex<double>* m_EzCalculated[2];
76  std::complex<double>* m_HxCalculated[2];
77  std::complex<double>* m_HyCalculated[2];
78  std::complex<double>* m_HzCalculated[2];
79 
80  // Copy constructer
82 
83  // Copy assignment operator
85 
86 };
87 
88 #endif
Definition: AdditinalOutputPoint.h:34
std::complex< double > * m_EzCalculated[2]
Definition: AdditinalOutputPoint.h:75
std::complex< double > * m_HzCalculated[2]
Definition: AdditinalOutputPoint.h:78
CommonParameters::VolumeCoords m_volumeCoordinateValues
Definition: AdditinalOutputPoint.h:71
CommonParameters::locationXYZ m_localCoordinateValues
Definition: AdditinalOutputPoint.h:68
~AdditinalOutputPoint()
Definition: AdditinalOutputPoint.cpp:61
CommonParameters::locationXYZ m_location
Definition: AdditinalOutputPoint.h:62
void calculateEMField(const int ifreq, const Forward3D *const ptrForward3D)
Definition: AdditinalOutputPoint.cpp:147
int m_elementIncludingStation
Definition: AdditinalOutputPoint.h:65
std::complex< double > * m_HyCalculated[2]
Definition: AdditinalOutputPoint.h:77
AdditinalOutputPoint(const AdditinalOutputPoint &rhs)
void initializeEMfield(const int nfreq)
Definition: AdditinalOutputPoint.cpp:178
void inputObservedData(std::ifstream &inFile)
Definition: AdditinalOutputPoint.cpp:100
std::complex< double > * m_EyCalculated[2]
Definition: AdditinalOutputPoint.h:74
std::complex< double > * m_HxCalculated[2]
Definition: AdditinalOutputPoint.h:76
void allocateMemoryForCalculatedValues(const int nfreq)
Definition: AdditinalOutputPoint.cpp:194
std::complex< double > * m_ExCalculated[2]
Definition: AdditinalOutputPoint.h:73
AdditinalOutputPoint & operator=(const AdditinalOutputPoint &rhs)
void findElementIncludingStation()
Definition: AdditinalOutputPoint.cpp:119
void outputCalculatedValues(const int nfreq, const double *const freq) const
Definition: AdditinalOutputPoint.cpp:208
AdditinalOutputPoint()
Definition: AdditinalOutputPoint.cpp:33
Definition: Forward3D.h:37
Definition: CommonParameters.h:105
Definition: CommonParameters.h:53