GPLIB++
SWAnisoRoughness.h
Go to the documentation of this file.
1 #ifndef SWANISOTROUGHNESS_H_
2 #define SWANISOTROUGHNESS_H_
3 #include "GeneralObjective.h"
4 
5 namespace gplib
6  {
7 //! Calculate the roughness for anisotropic SW models
9 {
10 private:
11  double veldiffweight;
12  double anisovelweight;
13  double strikediffweight;
14  double deltastrikediffweight;
15 public:
16  //! Regularize the velocity change across the layers. This is zero by default
17  void SetVelDiffWeight(const double w){veldiffweight =w;}
18  //! Regularize the anisotropy of the velocities. This is 1 by default
19  void SetAnisovelWeight(const double w){anisovelweight = w;}
20  //! Regularize the difference in anisotropy strike across layers. This is zero by default
21  void SetStrikeDiffWeight(const double w){strikediffweight =w;}
22  //! Regularize the difference between the seismic and electric strike. This is zero by default
23  void SetDeltaStrikeDiffWeight(const double w){deltastrikediffweight = w;}
24  virtual SWAnisoRoughness *clone() const {return new SWAnisoRoughness(*this);}
25  virtual void SafeParallel(const ttranscribed &member);
26  virtual double PostParallel(const ttranscribed &member);
30  virtual ~SWAnisoRoughness();
31 };
32 }
33 #endif /*SWANISOROUGHNESS_H_*/
virtual double PostParallel(const ttranscribed &member)
Some operations cannot be done in parallel, these are done after, returns the misfit value...
ublas::vector< double > ttranscribed
Definition: gentypes.h:21
void SetAnisovelWeight(const double w)
Regularize the anisotropy of the velocities. This is 1 by default.
virtual SWAnisoRoughness * clone() const
We need clone and create for building an array of derived objects, see FAQ lite 20.8, the return type depends on the derived class.
virtual void SafeParallel(const ttranscribed &member)
The core performance calculation, has to be safe to be done in parallel.
SWAnisoRoughness & operator=(const SWAnisoRoughness &source)
The basic object for any objective function, mainly an interface class and some storage.
void SetVelDiffWeight(const double w)
Regularize the velocity change across the layers. This is zero by default.
void SetStrikeDiffWeight(const double w)
Regularize the difference in anisotropy strike across layers. This is zero by default.
Calculate the roughness for anisotropic SW models.
void SetDeltaStrikeDiffWeight(const double w)
Regularize the difference between the seismic and electric strike. This is zero by default...