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 #ifndef __BIN_NS_BH_H_
00028 #define __BIN_NS_BH_H_
00029
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 "et_bin_nsbh.h"
00103 #include "bhole.h"
00104
00113 class Bin_ns_bh {
00114
00115
00116
00117 private:
00121 const Base_vect_cart ref_triad ;
00122
00124 Et_bin_nsbh star ;
00125
00127 Bhole hole ;
00128
00132 double omega ;
00133
00136 double x_axe ;
00137
00138
00139
00140 private:
00142 mutable double* p_mass_adm ;
00143
00145 mutable double* p_mass_kom ;
00146
00148 mutable Tbl* p_angu_mom ;
00149
00151 mutable double* p_total_ener ;
00152
00154 mutable double* p_virial ;
00155
00157 mutable double* p_virial_gb ;
00158
00160 mutable double* p_virial_fus ;
00161
00163 mutable double* p_ham_constr ;
00164
00166 mutable Tbl* p_mom_constr ;
00167
00168
00169
00170
00171 public:
00182 Bin_ns_bh(Map& mp_ns, int nzet, const Eos& eos, bool irrot_ns,
00183 Map_af& mp_bh) ;
00184
00185
00186 Bin_ns_bh(const Bin_ns_bh& ) ;
00187
00196 Bin_ns_bh(Map& mp_ns, const Eos& eos, Map_af& mp_bh, FILE* fich, bool old = false) ;
00197
00198 virtual ~Bin_ns_bh() ;
00199
00200
00201
00202
00203 private:
00205 void del_deriv() const ;
00206
00208 void set_der_0x0() const ;
00209
00210
00211
00212
00213 public:
00215 void operator=(const Bin_ns_bh& ) ;
00216
00218 Et_bin_nsbh& set_ns()
00219 { del_deriv() ;
00220 return star ;} ;
00221
00223 Bhole& set_bh()
00224 { del_deriv() ;
00225 return hole ;} ;
00226
00228 void set_omega(double ) ;
00229
00231 void set_x_axe(double ) ;
00232
00233
00234
00235 public:
00237 const Et_bin_nsbh& get_ns() const
00238 { return star ;} ;
00239
00241 const Bhole& get_bh() const
00242 { return hole ;} ;
00243
00245 double get_omega() const
00246 { return omega ;} ;
00247
00249 double get_x_axe() const
00250 { return x_axe ;} ;
00251
00253 double separation() const ;
00254
00255
00256
00257 public:
00258 virtual void sauve(FILE *) const ;
00259
00261 friend ostream& operator<<(ostream& , const Bin_ns_bh& ) ;
00262
00263 private:
00265 ostream& operator>>(ostream& ) const ;
00266
00267 public:
00271 void fait_decouple() ;
00272
00276 void fait_tkij(int bound_nn = -1, double lim_nn = 0) ;
00277
00278
00279
00280 public:
00300 void orbit_omega(double fact_omeg_min, double fact_omeg_max) ;
00301
00305 void analytical_omega() ;
00306
00310 void analytical_shift() ;
00311
00312 void init_auto () ;
00313 void affecte (const Bin_ns_bh&) ;
00314 void pseudo_misner (int&, int, double, double, int, double) ;
00315 double adm_systeme() const ;
00316 double adm_systeme_volume() const ;
00317 double komar_systeme() const ;
00318 double moment_systeme_inf() const ;
00319 double moment_systeme_hor() const ;
00320 double smarr() const ;
00321 Tbl linear_momentum_systeme_inf() const ;
00322 double viriel() const ;
00323 void coal (double, double, int, int, double, double, double, double, double, double, double, const int, int, double) ;
00324 double distance_propre_axe_bh (const int nr = 65) const ;
00325 double distance_propre_axe_ns (const int nr = 65) const ;
00326
00327 };
00328 ostream& operator<<(ostream& , const Bin_ns_bh& ) ;
00329
00330 #endif