GPLIB++
C1DAnisoMTSynthData.h
Go to the documentation of this file.
1 #ifndef C1DANISOMTSYNTHDATA_H_
2 #define C1DANISOMTSYNTHDATA_H_
3 
4 #include "MTStation.h"
5 #include "VecMat.h"
6 
7 namespace gplib
8  {
9  /** \addtogroup mttools MT data analysis, processing and inversion */
10  /* @{ */
11  //! Calculate response of a 1D anisotropic model, code is based on Pek and Santos fortran code
13  {
14  private:
15  trealdata calc_frequencies;
16  trealdata thicknesses; // Thickness for each layer
17  trealdata strikes;
18  trealdata slants;
19  trealdata dips;
20  trealdata rho1;
21  trealdata rho2;
22  trealdata rho3;
23  trealdata effcond1;
24  trealdata effcond2;
25  trealdata effstrike;
26  //! Transform angles and resistivities into effective horizontal values, has to be called before CalcZ
27  void TransformRho();
28  //! Calculate the response
29  void CalcZ();
30  public:
31  //! Set the anisotropy strike for each layer in degree
32  void SetStrikes(const trealdata &a)
33  {
34  strikes = a;
35  }
36  //! Set the anisotropy slant for each layer in degree
37  void SetSlants(const trealdata &a)
38  {
39  slants = a;
40  }
41  //! Set the anisotropy dip for each layer in degree
42  void SetDips(const trealdata &a)
43  {
44  dips = a;
45  }
46  //! Set the first principal resistivity for each layer in Ohm.m
47  void SetRho1(const trealdata &a)
48  {
49  rho1 = a;
50  }
51  //! Set the second principal resistivity for each layer in Ohm.m
52  void SetRho2(const trealdata &a)
53  {
54  rho2 = a;
55  }
56  //! Set the first principal resistivity for each layer in Ohm.m
57  void SetRho3(const trealdata &a)
58  {
59  rho3 = a;
60  }
61  //! Set the thicknes in km
62  void SetThicknesses(const trealdata &thick)
63  {
64  thicknesses = thick;
65  }
66  const trealdata &GetThicknesses()
67  {
68  return thicknesses;
69  }
70  using MTStation::GetData;
71  //! Calculate the synthetic data given the previously set parameters
72  virtual void GetData();
73  //! write model into file
74  gplib::rvec GetModelVector();
75  void WriteModel(std::string filename);
76  void ReadModel(std::string filename);
77  void WritePlot(std::string filename);
78  virtual C1DAnisoMTSynthData *clone() const
79  {
80  return new C1DAnisoMTSynthData(*this);
81  }
84  virtual ~C1DAnisoMTSynthData();
85  };
86  /* @} */
87  }
88 #endif /*C1DANISOMTSYNTHDATA_H_*/
void WritePlot(std::string filename)
const trealdata & GetThicknesses()
void SetRho1(const trealdata &a)
Set the first principal resistivity for each layer in Ohm.m.
void WriteModel(std::string filename)
void SetThicknesses(const trealdata &thick)
Set the thicknes in km.
virtual void GetData()
Calculate the synthetic data given the previously set parameters.
void SetRho2(const trealdata &a)
Set the second principal resistivity for each layer in Ohm.m.
Calculate response of a 1D anisotropic model, code is based on Pek and Santos fortran code...
The class MTStation is used to store the transfer functions and related information for a MT-site...
Definition: MTStation.h:17
virtual void GetData()
Definition: MTStation.h:141
void ReadModel(std::string filename)
void SetStrikes(const trealdata &a)
Set the anisotropy strike for each layer in degree.
void SetDips(const trealdata &a)
Set the anisotropy dip for each layer in degree.
void SetSlants(const trealdata &a)
Set the anisotropy slant for each layer in degree.
void SetRho3(const trealdata &a)
Set the first principal resistivity for each layer in Ohm.m.
gplib::rvec GetModelVector()
write model into file
virtual C1DAnisoMTSynthData * clone() const
for parallel runs we need to make a copy of the object and its derived classes