00001 00005 class CorrelModel : public HandleId 00006 00007 { 00008 protected: 00009 00010 int nsd; 00011 00012 public: 00013 00014 String model_name; 00015 Ptv(real) integral_scale; 00016 Ptv(real) exponent; 00017 00018 CorrelModel (int nsd); 00019 virtual ~CorrelModel (); 00020 00021 virtual real spatialCorrelation (const Ptv(real)& x) = 0; 00022 00023 static void defineStatic (MenuSystem& menu, int level = MAIN); 00024 virtual void scan (MenuSystem& menu); 00025 virtual void define (MenuSystem& menu, int level = MAIN) 00026 { defineStatic (menu, level); } 00027 }; 00028 00029 00069 class NoCorrelModel : public CorrelModel 00070 00071 { 00072 public: 00073 00074 NoCorrelModel (int nsd_) 00075 : CorrelModel(nsd_) { model_name = "NoCorrelModel"; } 00076 00077 virtual real spatialCorrelation (const Ptv(real)& x); 00078 }; 00079 00080 00093 class ExponentialCorrelModel : public CorrelModel 00094 { 00095 public: 00096 ExponentialCorrelModel (int nsd_) 00097 : CorrelModel(nsd_) { model_name = "ExponentialCorrelModel"; } 00098 00099 virtual real spatialCorrelation (const Ptv(real)& x); 00100 }; 00101 00102 00119 class SepExponentialCorrelModel : public CorrelModel 00120 00121 { 00122 public: 00123 00124 SepExponentialCorrelModel (int nsd_) 00125 : CorrelModel(nsd_) { model_name = "SepExponentialCorrelMod"; } 00126 virtual real spatialCorrelation (const Ptv(real)& x); 00127 }; 00128 00129 00147 class GenExponentialCorrelModel : public CorrelModel 00148 00149 { 00150 public: 00151 00152 GenExponentialCorrelModel (int nsd_) 00153 : CorrelModel(nsd_) { model_name = "GenExponentialCorrelMod"; } 00154 virtual real spatialCorrelation (const Ptv(real)& x); 00155 }; 00156 00157