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 __ET_ROT_DIFF_H_
00029 #define __ET_ROT_DIFF_H_
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00063
00064 #include "etoile.h"
00065
00066 class Et_rot_diff : public Etoile_rot {
00067
00068
00069
00070 protected:
00081 double (*frot)(double, const Tbl&) ;
00082
00089 double (*primfrot)(double, const Tbl&) ;
00090
00098 Tbl par_frot ;
00099
00101 Tenseur omega_field ;
00102
00103 double omega_min ;
00104 double omega_max ;
00105
00107 Tenseur prim_field ;
00108
00109
00110
00111 public:
00127 Et_rot_diff(Map& mp_i, int nzet_i, bool relat, const Eos& eos_i,
00128 double (*frot_i)(double, const Tbl&),
00129 double (*primfrot_i)(double, const Tbl&),
00130 const Tbl& par_frot_i) ;
00131
00132 Et_rot_diff(const Et_rot_diff& ) ;
00133
00144 Et_rot_diff(Map& mp_i, const Eos& eos_i, FILE* fich,
00145 double (*frot_i)(double, const Tbl&),
00146 double (*primfrot_i)(double, const Tbl&) ) ;
00147
00148 virtual ~Et_rot_diff() ;
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158 public:
00160 void operator=(const Et_rot_diff& ) ;
00161
00162
00163
00164 public:
00166 const Tenseur& get_omega_field() const {return omega_field;} ;
00167
00171 virtual double get_omega_c() const ;
00172
00173
00174
00175 public:
00176 virtual void sauve(FILE *) const ;
00177
00179 virtual void display_poly(ostream& ) const ;
00180
00181 protected:
00183 virtual ostream& operator>>(ostream& ) const ;
00184
00185
00186
00187
00188 public:
00189
00190 virtual double tsw() const ;
00191
00203 virtual void hydro_euler() ;
00204
00223 void fait_omega_field(double omeg_min, double omeg_max,
00224 double precis, int nitermax) ;
00225
00227 void fait_prim_field() ;
00228
00244 double funct_omega(double omeg) const ;
00245
00254 double prim_funct_omega(double omeg) const ;
00255
00335 virtual void equilibrium(double ent_c, double omega0, double fact_omega,
00336 int nzadapt, const Tbl& ent_limit,
00337 const Itbl& icontrol, const Tbl& control,
00338 double mbar_wanted, double aexp_mass,
00339 Tbl& diff, Param* = 0x0) ;
00340
00341 };
00342
00343 #endif