00001 #ifndef SWANISOTROUGHNESS_H_ 00002 #define SWANISOTROUGHNESS_H_ 00003 #include "GeneralObjective.h" 00004 00005 namespace gplib 00006 { 00007 //! Calculate the roughness for anisotropic SW models 00008 class SWAnisoRoughness: public GeneralObjective 00009 { 00010 private: 00011 double veldiffweight; 00012 double anisovelweight; 00013 double strikediffweight; 00014 double deltastrikediffweight; 00015 public: 00016 //! Regularize the velocity change across the layers. This is zero by default 00017 void SetVelDiffWeight(const double w){veldiffweight =w;} 00018 //! Regularize the anisotropy of the velocities. This is 1 by default 00019 void SetAnisovelWeight(const double w){anisovelweight = w;} 00020 //! Regularize the difference in anisotropy strike across layers. This is zero by default 00021 void SetStrikeDiffWeight(const double w){strikediffweight =w;} 00022 //! Regularize the difference between the seismic and electric strike. This is zero by default 00023 void SetDeltaStrikeDiffWeight(const double w){deltastrikediffweight = w;} 00024 virtual SWAnisoRoughness *clone() const {return new SWAnisoRoughness(*this);} 00025 virtual void SafeParallel(const ttranscribed &member); 00026 virtual double PostParallel(const ttranscribed &member); 00027 SWAnisoRoughness(const SWAnisoRoughness &Old); 00028 SWAnisoRoughness& operator=(const SWAnisoRoughness& source); 00029 SWAnisoRoughness(); 00030 virtual ~SWAnisoRoughness(); 00031 }; 00032 } 00033 #endif /*SWANISOROUGHNESS_H_*/
1.5.8