source: Sophya/trunk/Cosmo/SimLSS/cosmocalc.h@ 3336

Last change on this file since 3336 was 3325, checked in by cmv, 18 years ago

Mise en conformite / SOPHYA lib:

  1. on enleve #include "sopnamsp.h" dans les .cc de la librairie
  2. on encadre par "namespace SOPHYA { ... }" tout le code des .cc de la librairie y compris les fonctions
  3. on met les fcts des .h dans le "namespace SOPHYA { ... }"
  4. on met #include "sopnamsp.h" dans tous les cmv*.cc cad les main programs

cmv le mauvais eleve (sur les conseils de Reza) 13/09/2007

File size: 2.5 KB
Line 
1#ifndef COSMOCALC_SEEN
2#define COSMOCALC_SEEN
3
4#include "machdefs.h"
5#include <vector>
6
7#include "genericfunc.h"
8
9namespace SOPHYA {
10
11 class CSpline;
12
13//-----------------------------------------------------------------------------------
14class CosmoCalc : public GenericFunc {
15public:
16 CosmoCalc(unsigned short flat=0,bool usespline=false,double zmax=0.);
17 CosmoCalc(CosmoCalc& univ);
18 virtual ~CosmoCalc(void);
19
20 unsigned short Flat(void) { return _flat;}
21
22 double ZMax(void) { return _zmax;}
23 void SetInteg(double dperc=-1.,double dzinc=-1.,double dzmax=-1.,unsigned short order=4);
24 void PrtInteg(void);
25
26 void SetDynParam(double h100,double om0,double or0,double ol0,double w0=-1.);
27 void SetObaryon0(double v);
28 void DefaultParam(void);
29
30 inline double h100(void) {return _h100;}
31 inline double H0(void) {return _H0;}
32 inline double Dhubble(void) {return _Dhubble;}
33 inline double Olambda0(void) {return _Olambda0;}
34 inline double W0(void) {return _W0;}
35 inline double Omatter0(void) {return _Omatter0;}
36 inline double Obaryon0(void) {return _Obaryon0;}
37 inline double Orelat0(void) {return _Orelat0;}
38 inline double Ocurv0(void) {return _Ocurv0;}
39 inline double Otot0(void) {return _Otot0;}
40 double Rhoc(double z);
41
42 inline double H(double z) {return _H0 * E(z);}
43 double Olambda(double z);
44 double Omatter(double z);
45 double Obaryon(double z);
46 double Orelat(double z);
47 double Ocurv(double z);
48 double Otot(double z);
49
50 double Dtrcom(double z);
51 double Dloscom(double z);
52 double Dang(double z);
53 double Dlum(double z);
54
55 double dVol(double z);
56 double Vol4Pi(double z);
57 double Vol4Pi(double z1,double z2);
58
59 void Print(double z=0.);
60
61 double E2(double z) const;
62 inline double E(double z) const {return sqrt(E2(z));}
63
64 double NInteg(double z);
65 inline double Integrand(double z) const {return 1./E(z);}
66
67 virtual double operator() (double z) {return Integrand(z);}
68protected:
69 int_4 Init_Spline(void);
70 void Clone(CosmoCalc& univ);
71
72 // La cosmology
73 unsigned short _flat;
74 double _h100, _H0; /* km/s/Mpc */
75 double _Olambda0,_W0;
76 double _Omatter0,_Obaryon0;
77 double _Orelat0;
78 double _Otot0,_Ocurv0;
79 double _Dhubble; /* Mpc */
80
81 // Parametres d'integration
82 double _dperc,_dzinc,_dzmax;
83 unsigned short _glorder;
84 vector<double> _xgausl, _wgausl;
85
86 // Pour le calcul direct
87 double _zold,_integval;
88
89 // Pour les splines
90 bool _usespline,_computespl;
91 double _zmax;
92 CSpline * _spline;
93 int_4 _nspl;
94 double *_xspl, *_yspl;
95
96};
97
98} // Fin du namespace SOPHYA
99
100#endif
Note: See TracBrowser for help on using the repository browser.