GPLIB++
MTAnisoRoughness.h
Go to the documentation of this file.
1 #ifndef MANISOTROUGHNESS_H_
2 #define MANISOTROUGHNESS_H_
3 #include "GeneralObjective.h"
4 namespace gplib
5  {
6  //! Caclulate the roughness for anisotropic MT models
8  {
9  private:
10  double conddiffweight;
11  double anisotropyweight;
12  double strikediffweight;
13  public:
14 //! Get read-only access to the vector of anisotropy coefficients for each layer
15  void SetCondDiffWeight(const double w)
16  {
17  conddiffweight = w;
18  }
19  void SetAnisotropyWeight(const double w)
20  {
21  anisotropyweight = w;
22  }
23  void SetStrikeDiffWeight(const double w)
24  {
25  strikediffweight = w;
26  }
27  virtual MTAnisoRoughness *clone() const
28  {
29  return new MTAnisoRoughness(*this);
30  }
31  virtual void SafeParallel(const ttranscribed &member);
32  virtual double PostParallel(const ttranscribed &member);
36  virtual ~MTAnisoRoughness();
37  };
38  }
39 #endif /*MTANISOROUGHNESS_H_*/
virtual double PostParallel(const ttranscribed &member)
Some operations cannot be done in parallel, these are done after, returns the misfit value...
void SetCondDiffWeight(const double w)
Get read-only access to the vector of anisotropy coefficients for each layer.
ublas::vector< double > ttranscribed
Definition: gentypes.h:21
void SetAnisotropyWeight(const double w)
virtual MTAnisoRoughness * 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.
Caclulate the roughness for anisotropic MT models.
virtual void SafeParallel(const ttranscribed &member)
The core performance calculation, has to be safe to be done in parallel.
void SetStrikeDiffWeight(const double w)
MTAnisoRoughness & operator=(const MTAnisoRoughness &source)
The basic object for any objective function, mainly an interface class and some storage.