AnisoSurfaceWaveSynthetic.h

Go to the documentation of this file.
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 #include "types.h"
00009 
00010 namespace gplib
00011   {
00012     /** \addtogroup seistools Seismic data analysis and modeling */
00013     /* @{ */
00014 
00015     //! Calculate synthetic anisotropic surface wave data
00016     class AnisoSurfaceWaveSynthetic
00017       {
00018     private:
00019       AnisoSurfaceWaveModel Model;
00020       ParkSurfaceWaveData SynthData;
00021     public:
00022       //! Return the synthetic data calculated during the last calculation
00023       const ParkSurfaceWaveData &GetSynthData() const
00024         {
00025           return SynthData;
00026         }
00027       //! Read-only access to the model
00028       const AnisoSurfaceWaveModel &GetModel() const
00029         {
00030           return Model;
00031         }
00032       //! Set the model for the forward calculation
00033       void SetModel(const AnisoSurfaceWaveModel &m)
00034         {
00035           Model = m;
00036         }
00037       //! Write the model to a file with name filename
00038       void WriteModel(const std::string &filename) const
00039         {
00040           Model.WriteModel(filename);
00041         }
00042       //! Write the model to a file with name filename for plotting
00043       void WritePlot(const std::string &filename) const
00044         {
00045           Model.WritePlot(filename);
00046         }
00047       //! Perform actions for forward modeling that have to be done before a parallel section
00048       void PreParallel(const std::string &filename);
00049       //! Perform actions for forward modeling that can safely done in parallel, filename should be unique to ensure safe parallel execution
00050       ParkSurfaceWaveData SafeParallel(const std::string &filename);
00051       //! Calculate the synthetic data for the current model, filename should be unique to ensure safe parallel execution
00052       ParkSurfaceWaveData GetSynthData(const std::string &filename);
00053       AnisoSurfaceWaveSynthetic();
00054       virtual ~AnisoSurfaceWaveSynthetic();
00055       };
00056   /* @} */
00057   }
00058 #endif /*ANISOSURFACEWAVESYNTHETIC_H_*/

Generated on Tue Nov 3 13:24:13 2009 for GPLIB++ by  doxygen 1.5.8