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_BIFLUID_H_
00029 #define __ET_ROT_BIFLUID_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
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102 #include "eos_bifluid.h"
00103 #include "etoile.h"
00104
00105
00106 Cmp prolonge_c1(const Cmp& uu, const int nzet) ;
00107
00128 class Et_rot_bifluid : virtual public Etoile_rot {
00129
00130
00131
00132 protected:
00133 const Eos_bifluid& eos ;
00134
00135 double omega2 ;
00136
00137
00138
00139
00141 Tenseur ent2 ;
00142
00143 Tenseur nbar2 ;
00144
00145
00146
00147
00148
00149
00150
00152 Tenseur sphph_euler;
00153
00159 Tenseur j_euler;
00160
00162 Tenseur enerps_euler;
00163
00165 Tenseur uuu2 ;
00166
00168 Tenseur gam_euler2 ;
00169
00174 Tenseur delta_car ;
00175
00176
00177
00178 protected:
00180 mutable double* p_ray_eq2 ;
00181
00183 mutable double* p_ray_eq2_pis2 ;
00184
00186 mutable double* p_ray_eq2_pi ;
00187
00189 mutable double* p_ray_pole2 ;
00190
00195 mutable Itbl* p_l_surf2 ;
00196
00201 mutable Tbl* p_xi_surf2 ;
00202
00203 mutable double* p_r_circ2 ;
00204 mutable double* p_aplat2 ;
00205
00206
00207 mutable double* p_mass_b1 ;
00208 mutable double* p_mass_b2 ;
00209
00210
00211
00212
00213 public:
00214
00215 Et_rot_bifluid(Map& mp_i, int nzet_i, bool relat,
00216 const Eos_bifluid& eos_i) ;
00217
00218 Et_rot_bifluid(const Et_rot_bifluid& ) ;
00219
00224 Et_rot_bifluid(Map& mp_i, const Eos_bifluid& eos_i, FILE* fich) ;
00225
00226 virtual ~Et_rot_bifluid() ;
00227
00228
00229
00230
00231 protected:
00232
00234 virtual void del_deriv() const ;
00235
00237 virtual void set_der_0x0() const ;
00238
00242 virtual void del_hydro_euler() ;
00243
00244
00245
00246
00247 public:
00248
00250 void operator=(const Et_rot_bifluid&) ;
00251
00253 void set_enthalpies(const Cmp&, const Cmp&) ;
00254
00263 void equilibrium_spher_bi(double ent_c, double ent_c2,
00264 double precis = 1.e-14) ;
00265
00276 void equil_spher_regular(double ent_c, double ent_c2,
00277 double precis = 1.e-14) ;
00278
00279
00280
00281 public:
00282
00284 const Eos_bifluid& get_eos() const {return eos; } ;
00285
00287 const Tenseur& get_ent2() const {return ent2 ; } ;
00288
00290 const Tenseur& get_nbar2() const {return nbar2 ; } ;
00291
00293 const Tenseur& get_delta_car() const {return delta_car ; } ;
00294
00296 const Tenseur& get_gam_euler2() const {return gam_euler2 ; } ;
00297
00299 double get_omega2() const {return omega2 ; } ;
00300
00302 const Tenseur& get_uuu2() const {return uuu2 ; } ;
00303
00304
00305
00306 public:
00307 virtual void sauve(FILE *) const ;
00308
00310 virtual ostream& operator>>(ostream& ) const ;
00311
00313 virtual void partial_display(ostream& ) const ;
00314
00315
00316
00317 public:
00318
00326 virtual const Itbl& l_surf() const ;
00327
00335 const Itbl& l_surf2() const ;
00336
00344 const Tbl& xi_surf2() const ;
00345
00347 double ray_eq2() const ;
00348
00350 double ray_eq2_pis2() const ;
00351
00353 double ray_eq2_pi() const ;
00354
00356 double ray_pole2() const ;
00357
00359 double mass_b1() const ;
00360
00362 double mass_b2() const ;
00363
00364 virtual double mass_b() const ;
00365 virtual double mass_g() const ;
00366 virtual double angu_mom() const ;
00367
00372 virtual double grv2() const ;
00373
00385 virtual double grv3(ostream* ost = 0x0) const ;
00386
00387 virtual double r_circ2() const ;
00388 virtual double aplat2() const ;
00389
00399 virtual double mom_quad() const ;
00400
00401
00402
00403 public:
00414 virtual void hydro_euler() ;
00415
00419 virtual void equation_of_state() ;
00420
00479 void equilibrium_bi(double ent_c, double ent_c2, double omega0,
00480 double omega20, const Tbl& ent_limit,
00481 const Tbl& ent2_limit, const Itbl& icontrol,
00482 const Tbl& control, Tbl& diff,
00483 int mer_mass, double mbar1_wanted, double mbar2_wanted, double aexp_mass);
00484
00485
00486
00487
00488 };
00489
00490 #endif