00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef __STAR_ROT_DIRAC_DIFF_H_
00029 #define __STAR_ROT_DIRAC_DIFF_H_
00030
00031
00032
00033
00034
00035
00036
00044
00045 #include "star_rot_dirac.h"
00046
00047
00048 class Star_rot_Dirac_diff : public Star_rot_Dirac {
00049
00050
00051
00052 protected:
00063 double (*frot)(double, const Tbl&) ;
00064
00071 double (*primfrot)(double, const Tbl&) ;
00072
00080 Tbl par_frot ;
00081
00083 Scalar omega_field ;
00084
00085 double omega_min ;
00086 double omega_max ;
00087
00089 Scalar prim_field ;
00090
00091
00092
00093 public:
00109 Star_rot_Dirac_diff(Map& mp_i, int nzet_i, const Eos& eos_i,
00110 double (*frot_i)(double, const Tbl&),
00111 double (*primfrot_i)(double, const Tbl&),
00112 const Tbl& par_frot_i) ;
00113
00114 Star_rot_Dirac_diff(const Star_rot_Dirac_diff& ) ;
00115
00126 Star_rot_Dirac_diff(Map& mp_i, const Eos& eos_i, FILE* fich,
00127 double (*frot_i)(double, const Tbl&),
00128 double (*primfrot_i)(double, const Tbl&) ) ;
00129
00130 virtual ~Star_rot_Dirac_diff() ;
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140 public:
00142 void operator=(const Star_rot_Dirac_diff& ) ;
00143
00144
00145
00146 public:
00148 const Scalar& get_omega_field() const {return omega_field;} ;
00149
00153 virtual double get_omega_c() const ;
00154
00155
00156
00157
00158 public:
00159 virtual void sauve(FILE *) const ;
00160
00161
00162
00163
00165 friend ostream& operator<<(ostream& , const Star& ) ;
00166
00167
00168 protected:
00170 virtual ostream& operator>>(ostream& ) const ;
00171
00172
00173
00174
00175 public:
00176
00177 virtual double tsw() const ;
00178
00190 virtual void hydro_euler() ;
00191
00210 void fait_omega_field(double omeg_min, double omeg_max,
00211 double precis, int nitermax) ;
00212
00214 void fait_prim_field() ;
00215
00231 double funct_omega(double omeg) const ;
00232
00241 double prim_funct_omega(double omeg) const ;
00242
00322 virtual void equilibrium(double ent_c, double omega0, double fact_omega,
00323 int nzadapt, const Tbl& ent_limit,
00324 const Itbl& icontrol, const Tbl& control,
00325 double mbar_wanted, double aexp_mass,
00326 Tbl& diff) ;
00327
00328 };
00329
00330 #endif