Changeset 3805 in Sophya for trunk/Cosmo/SimLSS/pkspectrum.h


Ignore:
Timestamp:
Jul 24, 2010, 12:01:34 AM (15 years ago)
Author:
cmv
Message:

Refonte totale de la structure des classes InitialSpectrum, TransfertFunction, GrowthFactor, PkSpectrum et classes tabulate pour lecture des fichiers CAMB, cmv 24/07/2010

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cosmo/SimLSS/pkspectrum.h

    r3802 r3805  
    1010class InitialSpectrum : public GenericFunc {
    1111public:
    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//-----------------------------------------------------------------------------------
     18class InitialPowerLaw : public InitialSpectrum {
     19public:
     20  InitialPowerLaw(double n,double a=1.);
     21  InitialPowerLaw(InitialPowerLaw& pkinf);
     22  virtual ~InitialPowerLaw(void);
    1523  virtual double operator() (double k) {return A_ * pow(k,n_);}
    1624  void SetNorm(double a) {A_ = a;}
     
    2129
    2230//-----------------------------------------------------------------------------------
    23 class TransfertEisenstein : public GenericFunc {
     31class TransfertFunction : public GenericFunc {
     32public:
     33  TransfertFunction(void) {};
     34  virtual ~TransfertFunction(void) {};
     35};
     36
     37//-----------------------------------------------------------------------------------
     38class TransfertEisenstein : public TransfertFunction {
    2439public:
    2540
     
    5368
    5469//-----------------------------------------------------------------------------------
    55 class TransfertTabulate : public GenericFunc {
     70class TransfertTabulate : public TransfertFunction {
    5671public:
    5772  TransfertTabulate(void);
     
    6277  void SetInterpTyp(int typ=0);
    6378  int ReadCMBFast(string filename,double h100,double OmegaCDM0,double OmegaBaryon0);
     79  int ReadCAMB(string filename, double h100=0.71);
    6480protected:
    6581  double kmin_,kmax_;
     
    7288class GrowthFactor : public GenericFunc {
    7389public:
    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//-----------------------------------------------------------------------------------
     96class GrowthEisenstein : public GrowthFactor {
     97public:
     98  GrowthEisenstein(double OmegaMatter0,double OmegaLambda0);
     99  GrowthEisenstein(GrowthEisenstein& d1);
     100  virtual ~GrowthEisenstein(void);
    77101  virtual double operator() (double z);
    78102  virtual double DsDz(double z,double dzinc=0.01);
     
    85109
    86110//-----------------------------------------------------------------------------------
    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:
     111class PkSpectrum : public GenericFunc {
     112public:
     113  // typsec = PK : compute Pk(k)
     114  //        = DELTA : compute Delta^2(k) = k^3*Pk(k)/2Pi^2
    103115  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_ ;}
     126protected:
    119127  double zref_, scale_;
    120128  ReturnSpectrum typspec_;
     
    122130
    123131//-----------------------------------------------------------------------------------
     132class PkSpecCalc : public PkSpectrum {
     133public:
     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_;}
     142protected:
     143  InitialSpectrum& pkinf_;
     144  TransfertFunction& tf_;
     145  GrowthFactor& d1_;
     146};
     147
     148//-----------------------------------------------------------------------------------
     149class PkTabulate : public PkSpectrum {
     150public:
     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.);
     159protected:
     160  double kmin_,kmax_;
     161  int interptyp_;
     162  vector<double> k_, pk_;
     163};
     164
     165//-----------------------------------------------------------------------------------
     166class PkEisenstein : public PkSpectrum {
     167public:
     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_;}
     176protected:
     177  InitialPowerLaw& pkinf_;
     178  TransfertEisenstein& tf_;
     179  GrowthEisenstein& d1_;
     180};
     181
     182//-----------------------------------------------------------------------------------
    124183class VarianceSpectrum : public GenericFunc {
    125184public:
     
    128187
    129188  VarianceSpectrum(GenericFunc& pk,double R,TypeFilter typfilter);
    130   VarianceSpectrum(VarianceSpectrum& pkinf);
     189  VarianceSpectrum(VarianceSpectrum& vpk);
    131190  virtual ~VarianceSpectrum(void);
    132191
Note: See TracChangeset for help on using the changeset viewer.