C1DAnisoMTSynthData.h

Go to the documentation of this file.
00001 #ifndef C1DANISOMTSYNTHDATA_H_
00002 #define C1DANISOMTSYNTHDATA_H_
00003 
00004 #include "MTStation.h"
00005 #include "VecMat.h"
00006 //! Calculate response of a 1D anisotropic model, code is based on Pek and Santos fortran code
00007 class C1DAnisoMTSynthData : public MTStation
00008 {
00009 private:
00010         trealdata calc_frequencies;
00011         trealdata thicknesses;  // Thickness for each layer 
00012         trealdata strikes;
00013         trealdata slants;
00014         trealdata dips;
00015         trealdata rho1;
00016         trealdata rho2;
00017         trealdata rho3;
00018         trealdata effcond1;
00019         trealdata effcond2;
00020         trealdata effstrike;
00021         //! Transform angles and resistivities into effective horizontal values, has to be called before CalcZ
00022         void TransformRho();
00023         //! Calculate the response
00024         void CalcZ();
00025 public:
00026         //! Set the anisotropy strike for each layer in degree
00027         void SetStrikes(const trealdata &a){strikes = a;}
00028         //! Set the anisotropy slant for each layer in degree
00029         void SetSlants(const trealdata &a){slants = a;}
00030         //! Set the anisotropy dip for each layer in degree
00031         void SetDips(const trealdata &a){dips = a;}
00032         //! Set the first principal resistivity for each layer in Ohm.m
00033         void SetRho1(const trealdata &a){rho1 = a;}
00034         //! Set the second principal resistivity for each layer in Ohm.m
00035         void SetRho2(const trealdata &a){rho2 = a;}
00036         //! Set the first principal resistivity for each layer in Ohm.m
00037         void SetRho3(const trealdata &a){rho3 = a;}
00038         //! Set the thicknes in km
00039         void SetThicknesses(const trealdata &thick){thicknesses = thick;}
00040         const trealdata &GetThicknesses() {return thicknesses;}
00041         using MTStation::GetData;
00042         //! Calculate the synthetic data given the previously set parameters
00043         virtual void GetData(); 
00044         //! write model into file 
00045         gplib::rvec GetModelVector(); 
00046         void WriteModel(std::string filename); 
00047         void ReadModel(std::string filename);
00048         void WritePlot(std::string filename);
00049         virtual C1DAnisoMTSynthData *clone() const{return new C1DAnisoMTSynthData(*this);}
00050         C1DAnisoMTSynthData(const C1DAnisoMTSynthData &old);
00051         C1DAnisoMTSynthData();
00052         virtual ~C1DAnisoMTSynthData();
00053 };
00054 
00055 #endif /*C1DANISOMTSYNTHDATA_H_*/

Generated on Fri Jul 4 15:30:20 2008 for GPLIB++ by  doxygen 1.5.5