Changeset 3805 in Sophya for trunk/Cosmo/SimLSS/pkspectrum.h
- Timestamp:
- Jul 24, 2010, 12:01:34 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/SimLSS/pkspectrum.h
r3802 r3805 10 10 class InitialSpectrum : public GenericFunc { 11 11 public: 12 InitialSpectrum(double n,double a=1.); 13 InitialSpectrum(InitialSpectrum& pkinf); 14 virtual ~InitialSpectrum(void); 12 InitialSpectrum(void) {}; 13 InitialSpectrum(InitialSpectrum& pkinf) {}; 14 virtual ~InitialSpectrum(void) {}; 15 }; 16 17 //----------------------------------------------------------------------------------- 18 class InitialPowerLaw : public InitialSpectrum { 19 public: 20 InitialPowerLaw(double n,double a=1.); 21 InitialPowerLaw(InitialPowerLaw& pkinf); 22 virtual ~InitialPowerLaw(void); 15 23 virtual double operator() (double k) {return A_ * pow(k,n_);} 16 24 void SetNorm(double a) {A_ = a;} … … 21 29 22 30 //----------------------------------------------------------------------------------- 23 class TransfertEisenstein : public GenericFunc { 31 class TransfertFunction : public GenericFunc { 32 public: 33 TransfertFunction(void) {}; 34 virtual ~TransfertFunction(void) {}; 35 }; 36 37 //----------------------------------------------------------------------------------- 38 class TransfertEisenstein : public TransfertFunction { 24 39 public: 25 40 … … 53 68 54 69 //----------------------------------------------------------------------------------- 55 class TransfertTabulate : public GenericFunc{70 class TransfertTabulate : public TransfertFunction { 56 71 public: 57 72 TransfertTabulate(void); … … 62 77 void SetInterpTyp(int typ=0); 63 78 int ReadCMBFast(string filename,double h100,double OmegaCDM0,double OmegaBaryon0); 79 int ReadCAMB(string filename, double h100=0.71); 64 80 protected: 65 81 double kmin_,kmax_; … … 72 88 class GrowthFactor : public GenericFunc { 73 89 public: 74 GrowthFactor(double OmegaMatter0,double OmegaLambda0); 75 GrowthFactor(GrowthFactor& d1); 76 virtual ~GrowthFactor(void); 90 GrowthFactor(void) {}; 91 virtual ~GrowthFactor(void) {}; 92 virtual double DsDz(double z, double); 93 }; 94 95 //----------------------------------------------------------------------------------- 96 class GrowthEisenstein : public GrowthFactor { 97 public: 98 GrowthEisenstein(double OmegaMatter0,double OmegaLambda0); 99 GrowthEisenstein(GrowthEisenstein& d1); 100 virtual ~GrowthEisenstein(void); 77 101 virtual double operator() (double z); 78 102 virtual double DsDz(double z,double dzinc=0.01); … … 85 109 86 110 //----------------------------------------------------------------------------------- 87 class PkSpectrum0 : public GenericFunc { 88 public: 89 PkSpectrum0(InitialSpectrum& pkinf,TransfertEisenstein& tf); 90 PkSpectrum0(PkSpectrum0& pk0); 91 virtual ~PkSpectrum0(void); 92 virtual double operator() (double z); 93 InitialSpectrum& GetPkIni(void) {return pkinf_;} 94 TransfertEisenstein& GetTransfert(void) {return tf_;} 95 protected: 96 InitialSpectrum& pkinf_; 97 TransfertEisenstein& tf_; 98 }; 99 100 //----------------------------------------------------------------------------------- 101 class PkSpectrumZ : public GenericFunc { 102 public: 111 class PkSpectrum : public GenericFunc { 112 public: 113 // typsec = PK : compute Pk(k) 114 // = DELTA : compute Delta^2(k) = k^3*Pk(k)/2Pi^2 103 115 typedef enum {PK=0, DELTA=1} ReturnSpectrum; 104 PkSpectrumZ(PkSpectrum0& pk0,GrowthFactor& d1,double zref=0.); 105 PkSpectrumZ(PkSpectrumZ& pkz); 106 virtual ~PkSpectrumZ(void); 107 virtual double operator() (double k); 108 virtual double operator() (double k,double z); 109 void SetZ(double z) {zref_ = z;} 110 double GetZ(void) {return zref_;} 111 void SetTypSpec(ReturnSpectrum typspec=PK); 112 void SetScale(double scale=1.) {scale_=scale;} 113 double GetScale(void) {return scale_;} 114 PkSpectrum0& GetPk0(void) {return pk0_;} 115 GrowthFactor& GetGrowthFactor(void) {return d1_;} 116 protected: 117 PkSpectrum0& pk0_; 118 GrowthFactor& d1_; 116 117 PkSpectrum(void); 118 PkSpectrum(PkSpectrum& pk); 119 virtual ~PkSpectrum(void) {}; 120 virtual void SetZ(double z) {zref_ = z;} 121 virtual double GetZ(void) {return zref_;} 122 virtual void SetScale(double scale=1.) {scale_ = scale;} 123 virtual double GetScale(void) {return scale_;} 124 virtual void SetTypSpec(ReturnSpectrum typspec=PK) {typspec_ = typspec;} 125 virtual ReturnSpectrum GetTypSpec(void) {return typspec_ ;} 126 protected: 119 127 double zref_, scale_; 120 128 ReturnSpectrum typspec_; … … 122 130 123 131 //----------------------------------------------------------------------------------- 132 class PkSpecCalc : public PkSpectrum { 133 public: 134 PkSpecCalc(InitialSpectrum& pkinf,TransfertFunction& tf,GrowthFactor& d1,double zref=0.); 135 PkSpecCalc(PkSpecCalc& pkz); 136 virtual ~PkSpecCalc(void); 137 virtual double operator() (double k); 138 virtual double operator() (double k,double z); 139 InitialSpectrum& GetPkIni(void) {return pkinf_;} 140 TransfertFunction& GetTransfert(void) {return tf_;} 141 GrowthFactor& GetGrowthFactor(void) {return d1_;} 142 protected: 143 InitialSpectrum& pkinf_; 144 TransfertFunction& tf_; 145 GrowthFactor& d1_; 146 }; 147 148 //----------------------------------------------------------------------------------- 149 class PkTabulate : public PkSpectrum { 150 public: 151 PkTabulate(void); 152 PkTabulate(PkTabulate& pkz); 153 virtual ~PkTabulate(void); 154 virtual double operator() (double k); 155 virtual double operator() (double k,double z); 156 int NPoints(void) {return k_.size();} 157 void SetInterpTyp(int typ=0); 158 int ReadCAMB(string filename, double h100=0.71, double zreftab = 0.); 159 protected: 160 double kmin_,kmax_; 161 int interptyp_; 162 vector<double> k_, pk_; 163 }; 164 165 //----------------------------------------------------------------------------------- 166 class PkEisenstein : public PkSpectrum { 167 public: 168 PkEisenstein(InitialPowerLaw& pkinf,TransfertEisenstein& tf,GrowthEisenstein& d1,double zref=0.); 169 PkEisenstein(PkEisenstein& pkz); 170 virtual ~PkEisenstein(void); 171 virtual double operator() (double k); 172 virtual double operator() (double k,double z); 173 InitialPowerLaw& GetPkIni(void) {return pkinf_;} 174 TransfertEisenstein& GetTransfert(void) {return tf_;} 175 GrowthEisenstein& GetGrowthFactor(void) {return d1_;} 176 protected: 177 InitialPowerLaw& pkinf_; 178 TransfertEisenstein& tf_; 179 GrowthEisenstein& d1_; 180 }; 181 182 //----------------------------------------------------------------------------------- 124 183 class VarianceSpectrum : public GenericFunc { 125 184 public: … … 128 187 129 188 VarianceSpectrum(GenericFunc& pk,double R,TypeFilter typfilter); 130 VarianceSpectrum(VarianceSpectrum& pkinf);189 VarianceSpectrum(VarianceSpectrum& vpk); 131 190 virtual ~VarianceSpectrum(void); 132 191
Note:
See TracChangeset
for help on using the changeset viewer.