ResPkModel.h

Go to the documentation of this file.
00001 #ifndef CRESPKMODEL_H
00002 #define CRESPKMODEL_H
00003 
00004 #include <vector>
00005 #include "SeismicModel.h"
00006 
00007 namespace gplib
00008   {
00009     /** \addtogroup seistools Seismic data analysis and modeling */
00010     /* @{ */
00011 
00012     //! This class stores and writes model for the respktn 1D seismic code that we use for receiver function calculations
00013     /*! Our joint inversion uses respktn from C. Ammon to calculate synthetics for receiver function inversion.
00014      * This class stores the description of this model and provides methods to read such models, write such models
00015      * and generate scripts that calculate synthetic for such a model.
00016      *
00017      */
00018     class ResPkModel: public SeismicModel
00019       {
00020     private:
00021       double slowness;
00022       trealdata Strike;
00023       trealdata Dip;
00024     public:
00025       //! Get the slowness in s/km for the synthetic forward calculation
00026       double GetSlowness() const
00027         {
00028           return slowness;
00029         }
00030       //! Set the slowness in s/km for the synthetic forward calculation
00031       void SetSlowness(const double s)
00032         {
00033           slowness = s;
00034         }
00035       //! Read-only access to the vector of Strikes in each layer
00036       const trealdata &GetStrike() const
00037         {
00038           return Strike;
00039         }
00040       //! Read-write access to the vector of Strikes in each layer
00041       trealdata &SetStrike()
00042         {
00043           return Strike;
00044         }
00045       //! Read-only access to the vector of Dips in each layer
00046       const trealdata &GetDip() const
00047         {
00048           return Dip;
00049         }
00050       //! Read-write access to the vector of Dips in each layer
00051       trealdata &SetDip()
00052         {
00053           return Dip;
00054         }
00055       //! Read the model in its native format from a file
00056       virtual void ReadModel(const std::string filename);
00057       //! Write the model in its native format to a file
00058       virtual void WriteModel(const std::string filename);
00059       //! Write out a script that performs a forward calculation for the current model
00060       virtual void WriteRunFile(const std::string &filename);
00061       ResPkModel();
00062       ResPkModel(const int nlayers);
00063       ResPkModel(const SeismicModel& source);
00064       ResPkModel(const ResPkModel& source);
00065       ResPkModel& operator=(const ResPkModel& source);
00066       virtual ~ResPkModel();
00067       };
00068   /* @} */
00069   }
00070 #endif // CRESPKMODEL_H

Generated on Tue May 4 16:52:15 2010 for GPLIB++ by  doxygen 1.5.8