MultiAnisoSurfaceWaveObjective.h

Go to the documentation of this file.
00001 #ifndef MULTIANISOSURFACEWAVEOBJECTIVE_H_
00002 #define MULTIANISOSURFACEWAVEOBJECTIVE_H_
00003 
00004 #include "GeneralObjective.h"
00005 #include "AnisoSurfaceWaveObjective.h"
00006 #include <vector>
00007 #include <boost/shared_ptr.hpp>
00008 namespace gplib
00009   {
00010 /** \addtogroup seistools Seismic data analysis and modeling */
00011 /* @{ */
00012 //! Minimize the misfit for several surface wave dispersion curves simultaneously
00013 class MultiAnisoSurfaceWaveObjective : public GeneralObjective
00014   {
00015 private:
00016   std::vector<boost::shared_ptr<AnisoSurfaceWaveObjective> > IndividualObjectives;
00017   std::vector<double> backazimuths;
00018 public:
00019   virtual MultiAnisoSurfaceWaveObjective *clone() const
00020     {
00021       return new MultiAnisoSurfaceWaveObjective(*this);
00022     }
00023   void AddMeasurement(const ParkSurfaceWaveData &Measured, const double back,const double avel);
00024   //! Some operations cannot be done in parallel, these are done before
00025   virtual void PreParallel(const ttranscribed &member);
00026   //! Some operations cannot be done in parallel, these are done after, returns the misfit value
00027   virtual double PostParallel(const ttranscribed &member);
00028   //! The core performance calculation, has to be safe to be done in parallel
00029   virtual void SafeParallel(const ttranscribed &member);
00030   void WriteData(const std::string &filename);
00031   void WriteModel(const std::string &filename);
00032   void WritePlot(const std::string &filename);
00033   MultiAnisoSurfaceWaveObjective(
00034       const MultiAnisoSurfaceWaveObjective &Old);
00035   MultiAnisoSurfaceWaveObjective& operator=(const MultiAnisoSurfaceWaveObjective& source);
00036   MultiAnisoSurfaceWaveObjective();
00037   virtual ~MultiAnisoSurfaceWaveObjective();
00038   };
00039 /* @} */
00040 }
00041 #endif /*MULTIANISOSURFACEWAVEOBJECTIVE_H_*/

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