28char bin_bhns_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Bin_bhns/bin_bhns.C,v 1.4 2014/10/13 08:52:41 j_novak Exp $" ;
60#include "utilitaires.h"
71 bool irrot_ns,
bool kerrschild_i,
72 bool bc_lapconf_nd,
bool bc_lapconf_fs,
bool irrot_bh,
74 : ref_triad(0.,
"Absolute frame Cartesian basis"),
75 hole(mp_bh,kerrschild_i,bc_lapconf_nd,bc_lapconf_fs,irrot_bh, massbh),
76 star(mp_ns, nzet_i, eos_i, irrot_ns)
92 : ref_triad(0.,
"Absolute frame Cartesian basis"),
109 : ref_triad(0.,
"Absolute frame Cartesian basis"),
111 star(mp_ns, eos_i, fich)
224ostream& operator<<(ostream& ost,
const Bin_bhns& bibi) {
236 ost <<
"BH-NS binary system" << endl ;
237 ost <<
"===================" << endl ;
240 <<
"Orbital angular velocity : "
241 <<
omega * f_unit <<
" [rad/s]" << endl ;
242 ost <<
"Coordinate separation between BH and NS : "
243 <<
separ / km <<
" [km]" << endl ;
244 ost <<
"Position of the rotation axis : "
245 <<
x_rot / km <<
" [km]" << endl ;
247 ost << endl <<
"Black hole : " ;
248 ost << endl <<
"========== " << endl ;
250 int nt = (
hole.
get_mp()).get_mg()->get_nt(1) ;
252 ost <<
"Irreducible mass of BH : "
254 ost <<
"Mass in the background : "
256 ost <<
"Radius of the apparent horison : "
258 ost <<
"Lapse function on the AH : "
260 ost <<
"Conformal factor on the AH : "
262 ost <<
"shift(1) on the AH : "
264 ost <<
"shift(2) on the AH : "
266 ost <<
"shift(3) on the AH : "
269 ost << endl <<
"Neutron star : " ;
270 ost << endl <<
"============ " << endl ;
272 ost <<
"Baryon mass of NS in isolation : "
274 ost <<
"Gravitational mass of NS : "
275 <<
star.mass_g_bhns()/msol <<
" [Mo]" << endl ;
276 ost <<
"Baryon mass of NS in BH bg. : "
279 ost <<
"Coordinate radius R_eq_tow : "
281 ost <<
"Coordinate radius R_eq_opp : "
283 ost <<
"Coordinate radius R_eq_orb : "
285 ost <<
"Coordinate radius R_eq_orb_opp : "
287 ost <<
"Coordinate radius R_pole : "
289 ost <<
"Central enthalpy H_ent : "
290 << (
star.
get_ent()).val_grid_point(0,0,0,0) << endl ;
291 ost <<
"Lapse function at the center of NS : "
293 ost <<
"Conformal factor at the center of NS : "
295 ost <<
"shift(1) at the center of NS : "
297 ost <<
"shift(2) at the center of NS : "
299 ost <<
"shift(3) at the center of NS : "
316 if (p_eos_poly != 0x0) {
318 double kappa = p_eos_poly->
get_kap() ;
319 double gamma = p_eos_poly->
get_gam() ;
320 double kap_ns2 =
pow( kappa, 0.5 /(gamma-1) ) ;
323 double r_poly = kap_ns2 /
sqrt(ggrav) ;
326 double t_poly = r_poly ;
329 double m_poly = r_poly / ggrav ;
343 ost << endl <<
"Quantities in polytropic units : " ;
344 ost << endl <<
"==============================" << endl ;
345 ost <<
" ( r_poly = " << r_poly / km <<
" km )" << endl ;
346 ost <<
" d_separ : " <<
separ / r_poly << endl ;
347 ost <<
" d_coord : " << d_coord / r_poly << endl ;
348 ost <<
" Omega : " <<
omega * t_poly << endl ;
349 ost <<
" Omega M_irr : "
354 ost <<
" R_ah : " <<
hole.
rad_ah() / r_poly << endl ;
355 ost <<
" M_bar(NS)iso : " <<
star.
mass_b() / m_poly
357 ost <<
" M_bar(NS) : "
360 ost <<
" M_g(NS)iso : " <<
star.mass_g_bhns() / m_poly << endl ;
361 ost <<
" R_0(NS) : " << r0 / r_poly << endl ;
Class for computing a black hole - neutron star binary system with comparable mass ()
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.
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.
Base class for coordinate mappings.
double get_ori_y() const
Returns the y coordinate of the origin.
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.
Standard units of space, time and mass.