GPLIB++
SurfaceWaveSynthetic.h
Go to the documentation of this file.
1 #ifndef SURFACEWAVESYNTHETIC_H_
2 #define SURFACEWAVESYNTHETIC_H_
3 #include "Sdisp96Model.h"
4 #include "SurfaceWaveData.h"
5 #include <string>
6 #include <boost/shared_ptr.hpp>
7 
8 namespace gplib
9  {
10  /** \addtogroup seistools Seismic data analysis and modeling */
11  /* @{ */
12 
13  //! Calculate synthetic fundamental mode Rayleigh phase velocity data from an isotropic 1D model
15  {
16  private:
17  trealdata calculationperiods;
18  Sdisp96Model Model;
19  SurfaceWaveData SynthData;
20  public:
21  //! For a parallel execution, these are things that have to be done before any parallel block
22  void PreParallel(const std::string &filename);
23  //! Operations that are safe to perform in parallel
24  SurfaceWaveData SafeParallel(const std::string &filename);
25  //! Read only access to the current seismic model
27  {
28  return Model;
29  }
30  //! Get the vector of periods in s for which we want to calculate phase velocities
31  const trealdata &GetCalculationPeriods() const
32  {
33  return calculationperiods;
34  }
35  //! Set the vector of periods in s for which we want to calculate phase velocities
36  void SetCalculationPeriods(const trealdata &c)
37  {
38  calculationperiods.clear();
39  std::copy(c.begin(),c.end(),std::back_inserter(calculationperiods));
40  }
41  //! Set the model for which we want to calculate the data
42  void SetModel(const Sdisp96Model &m)
43  {
44  Model = m;
45  }
46  //! Perform a complete forward calculation and return the calculated data, not thread safe as it calls PreParallel
47  SurfaceWaveData GetSynthData(const std::string &filename);
49  virtual ~SurfaceWaveSynthetic();
50  };
51  /* @} */
52  }
53 #endif /*SURFACEWAVESYNTHETIC_H_*/
void PreParallel(const std::string &filename)
For a parallel execution, these are things that have to be done before any parallel block...
SurfaceWaveData SafeParallel(const std::string &filename)
Operations that are safe to perform in parallel.
A class to store 1D model for calculation of synthetic surface wave data.
This class can write files specific for the synthetic surface wave codes that are part of the compute...
Definition: Sdisp96Model.h:12
void SetCalculationPeriods(const trealdata &c)
Set the vector of periods in s for which we want to calculate phase velocities.
A class to read, write and store fundamental mode surface wave dispersion data.
const SurfaceWaveModel & GetModel()
Read only access to the current seismic model.
SurfaceWaveData GetSynthData(const std::string &filename)
Perform a complete forward calculation and return the calculated data, not thread safe as it calls Pr...
void SetModel(const Sdisp96Model &m)
Set the model for which we want to calculate the data.
const trealdata & GetCalculationPeriods() const
Get the vector of periods in s for which we want to calculate phase velocities.
Calculate synthetic fundamental mode Rayleigh phase velocity data from an isotropic 1D model...