00001 #ifndef ANISOSURFACEWAVESYNTHETIC_H_ 00002 #define ANISOSURFACEWAVESYNTHETIC_H_ 00003 00004 #include "ParkSurfaceWaveData.h" 00005 #include "AnisoSurfaceWaveModel.h" 00006 #include <string> 00007 #include <boost/shared_ptr.hpp> 00008 00009 #include "types.h" 00010 00011 namespace gplib 00012 { 00013 /** \addtogroup seistools Seismic data analysis and modeling */ 00014 /* @{ */ 00015 //! Calculate synthetic anisotropic surface wave data 00016 class AnisoSurfaceWaveSynthetic 00017 { 00018 private: 00019 trealdata calculationperiods; 00020 boost::shared_ptr<const AnisoSurfaceWaveModel> Model; 00021 ParkSurfaceWaveData SynthData; 00022 public: 00023 const ParkSurfaceWaveData &GetSynthData() const 00024 { 00025 return SynthData; 00026 } 00027 const AnisoSurfaceWaveModel &GetModel() const 00028 { 00029 return *Model.get(); 00030 } 00031 void SetModel(const boost::shared_ptr<AnisoSurfaceWaveModel> m) 00032 { 00033 Model = m; 00034 } 00035 void WriteModel(const std::string &filename) const 00036 { 00037 Model->WriteModel(filename); 00038 } 00039 void WritePlot(const std::string &filename) const 00040 { 00041 Model->WritePlot(filename); 00042 } 00043 void PreParallel(const std::string &filename); 00044 ParkSurfaceWaveData SafeParallel(const std::string &filename); 00045 ParkSurfaceWaveData GetSynthData(const std::string &filename); 00046 AnisoSurfaceWaveSynthetic(); 00047 virtual ~AnisoSurfaceWaveSynthetic(); 00048 }; 00049 /* @} */ 00050 } 00051 #endif /*ANISOSURFACEWAVESYNTHETIC_H_*/
1.5.8