63#include "utilitaires.h"
74 bool irrot_ns,
bool kerrschild_i,
75 bool bc_lapconf_nd,
bool bc_lapconf_fs,
bool irrot_bh,
77 :
ref_triad(0.,
"Absolute frame Cartesian basis"),
78 hole(mp_bh,kerrschild_i,bc_lapconf_nd,bc_lapconf_fs,irrot_bh, massbh),
79 star(mp_ns, nzet_i, eos_i, irrot_ns)
95 :
ref_triad(0.,
"Absolute frame Cartesian basis"),
112 :
ref_triad(0.,
"Absolute frame Cartesian basis"),
114 star(mp_ns, eos_i, fich)
239 ost <<
"BH-NS binary system" << endl ;
240 ost <<
"===================" << endl ;
243 <<
"Orbital angular velocity : "
244 <<
omega * f_unit <<
" [rad/s]" << endl ;
245 ost <<
"Coordinate separation between BH and NS : "
246 <<
separ / km <<
" [km]" << endl ;
247 ost <<
"Position of the rotation axis : "
248 <<
x_rot / km <<
" [km]" << endl ;
250 ost << endl <<
"Black hole : " ;
251 ost << endl <<
"========== " << endl ;
253 int nt = (
hole.
get_mp()).get_mg()->get_nt(1) ;
255 ost <<
"Irreducible mass of BH : "
257 ost <<
"Mass in the background : "
259 ost <<
"Radius of the apparent horison : "
261 ost <<
"Lapse function on the AH : "
263 ost <<
"Conformal factor on the AH : "
265 ost <<
"shift(1) on the AH : "
267 ost <<
"shift(2) on the AH : "
269 ost <<
"shift(3) on the AH : "
272 ost << endl <<
"Neutron star : " ;
273 ost << endl <<
"============ " << endl ;
275 ost <<
"Baryon mass of NS in isolation : "
277 ost <<
"Gravitational mass of NS : "
278 <<
star.mass_g_bhns()/msol <<
" [Mo]" << endl ;
279 ost <<
"Baryon mass of NS in BH bg. : "
282 ost <<
"Coordinate radius R_eq_tow : "
284 ost <<
"Coordinate radius R_eq_opp : "
286 ost <<
"Coordinate radius R_eq_orb : "
288 ost <<
"Coordinate radius R_eq_orb_opp : "
290 ost <<
"Coordinate radius R_pole : "
292 ost <<
"Central enthalpy H_ent : "
293 << (
star.
get_ent()).val_grid_point(0,0,0,0) << endl ;
294 ost <<
"Lapse function at the center of NS : "
296 ost <<
"Conformal factor at the center of NS : "
298 ost <<
"shift(1) at the center of NS : "
300 ost <<
"shift(2) at the center of NS : "
302 ost <<
"shift(3) at the center of NS : "
319 if (p_eos_poly != 0x0) {
321 double kappa = p_eos_poly->
get_kap() ;
322 double gamma = p_eos_poly->
get_gam() ;
323 double kap_ns2 =
pow( kappa, 0.5 /(gamma-1) ) ;
326 double r_poly = kap_ns2 /
sqrt(ggrav) ;
329 double t_poly = r_poly ;
332 double m_poly = r_poly / ggrav ;
346 ost << endl <<
"Quantities in polytropic units : " ;
347 ost << endl <<
"==============================" << endl ;
348 ost <<
" ( r_poly = " << r_poly / km <<
" km )" << endl ;
349 ost <<
" d_separ : " <<
separ / r_poly << endl ;
350 ost <<
" d_coord : " << d_coord / r_poly << endl ;
351 ost <<
" Omega : " <<
omega * t_poly << endl ;
352 ost <<
" Omega M_irr : "
357 ost <<
" R_ah : " <<
hole.
rad_ah() / r_poly << endl ;
358 ost <<
" M_bar(NS)iso : " <<
star.
mass_b() / m_poly
360 ost <<
" M_bar(NS) : "
363 ost <<
" M_g(NS)iso : " <<
star.mass_g_bhns() / m_poly << endl ;
364 ost <<
" R_0(NS) : " << r0 / r_poly << endl ;
void display_poly(ostream &) const
Display in polytropic units.
void del_deriv() const
Deletes all the derived quantities.
double * p_mass_adm_bhns_surf
Total ADM mass of the system calculated by the surface integral at infinity.
friend ostream & operator<<(ostream &, const Bin_bhns &)
Display.
virtual void sauve(FILE *) const
Save in a file.
Bin_bhns(Map &mp_bh, Map &mp_ns, int nzet, const Eos &eos, bool irrot_ns, bool kerrschild, bool bc_lapse_nd, bool bc_lapse_fs, bool irrot_bh, double mass_bh)
Relative error on the Hamiltonian constraint.
double y_rot
Absolute Y coordinate of the rotation axis.
const Base_vect_cart ref_triad
Cartesian triad of the absolute reference frame.
double * p_mass_kom_bhns_surf
Total Komar mass of the system calculated by the surface integral at infinity.
Hole_bhns hole
Black hole.
void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
double omega
Angular velocity with respect to an asymptotically inertial observer.
double * p_mass_adm_bhns_vol
Total ADM mass of the system calculated by the volume integral and the surface integral at the appare...
double * p_virial_bhns_vol
Virial theorem error calculated by the ADM mass and the Komar mass of the volume integral.
double * p_omega_two_points
Orbital angular velocity derived from another method.
double separ
Absolute orbital separation between two centers of BH and NS.
Tbl * p_angu_mom_bhns
Total angular momentum of the system.
double * p_ya_barycenter
Absolute coordinate Y of the barycenter of the baryon density.
double x_rot
Absolute X coordinate of the rotation axis.
virtual ~Bin_bhns()
Destructor.
void operator=(const Bin_bhns &)
Assignment to another Bin_bhns.
double * p_virial_bhns_surf
Virial theorem error calculated by the ADM mass and the Komar mass of the surface integral at infinit...
double * p_mass_kom_bhns_vol
Total Komar mass of the system calculated by the volume integral and the surface integral at the appa...
Star_bhns star
Neutron star.
double * p_xa_barycenter
Absolute coordinate X of the barycenter of the baryon density.
ostream & operator>>(ostream &) const
Operator >> (function called by the operator <<).
Tbl * p_line_mom_bhns
Total linear momentum of the system.
bool is_kerrschild() const
Returns true for a Kerr-Schild background, false for a Conformally flat one.
virtual double rad_ah() const
Radius of the apparent horizon.
const Map & get_mp() const
Returns the mapping.
double get_mass_bh() const
Returns the gravitational mass of BH [{\tt m_unit}].
Polytropic equation of state (relativistic case).
double get_gam() const
Returns the adiabatic index (cf. Eq. (3)).
double get_kap() const
Returns the pressure coefficient (cf.
Equation of state base class.
double get_omega_spin() const
Returns the spin angular velocity of the black hole [{\tt f_unit}].
const Vector & get_shift_tot() const
Returns the total shift vector.
virtual double mass_irr_bhns() const
Irreducible mass of the black hole.
const Scalar & get_confo_tot() const
Returns the total conformal factor.
const Scalar & get_lapse_tot() const
Returns the total lapse function.
virtual void sauve(FILE *) const
Save in a file.
virtual void sauve(FILE *) const
Save in a file.
const Scalar & get_lapse_tot() const
Returns the total lapse function.
const Scalar & get_confo_tot() const
Returns the total conformal factor.
const Vector & get_shift_tot() const
Returns the part total shift vector.
virtual double mass_b() const
Baryon mass.
const Map & get_mp() const
Returns the mapping.
double ray_eq_3pis2() const
Coordinate radius at , [r_unit].
const Eos & get_eos() const
Returns the equation of state.
double ray_eq() const
Coordinate radius at , [r_unit].
double ray_eq_pis2() const
Coordinate radius at , [r_unit].
const Scalar & get_ent() const
Returns the enthalpy field.
double ray_eq_pi() const
Coordinate radius at , [r_unit].
double ray_pole() const
Coordinate radius at [r_unit].
Cmp sqrt(const Cmp &)
Square root.
Cmp pow(const Cmp &, int)
Power .
int fread_be(int *aa, int size, int nb, FILE *fich)
Reads integer(s) from a binary file according to the big endian convention.
int fwrite_be(const int *aa, int size, int nb, FILE *fich)
Writes integer(s) into a binary file according to the big endian convention.
Map(const Mg3d &)
Constructor from a multi-domain 3D grid.
Standard units of space, time and mass.