LORENE
|
#include <binaire.h>
Public Member Functions | |
Binaire (Map &mp1, int nzet1, const Eos &eos1, int irrot1, Map &mp2, int nzet2, const Eos &eos2, int irrot2, int relat) | |
Standard constructor. More... | |
Binaire (const Binaire &) | |
Binaire (Map &mp1, const Eos &eos1, Map &mp2, const Eos &eos2, FILE *fich) | |
Copy constructor. More... | |
void | operator= (const Binaire &) |
Assignment to another { Binaire}. More... | |
Etoile_bin & | set (int i) |
Read/write of the star no. i. More... | |
double & | set_omega () |
Sets the orbital angular velocity [{ f_unit}]. More... | |
double & | set_x_axe () |
Sets the absolute coordinate X of the rotation axis [{ r_unit}]. More... | |
const Etoile_bin & | operator() (int i) const |
Returns a reference to the star no. i. More... | |
double | get_omega () const |
Returns the orbital angular velocity [{ f_unit}]. More... | |
double | get_x_axe () const |
Returns the absolute coordinate X of the rotation axis [{ r_unit}]. More... | |
double | separation () const |
Returns the coordinate separation of the two stellar centers [{ r_unit}]. More... | |
void | sauve (FILE *) const |
void | display_poly (ostream &) const |
Display in polytropic units. More... | |
void | write_global (ostream &) const |
Write global quantities in a formatted file. More... | |
double | mass_adm () const |
Total ADM mass. More... | |
double | mass_kom () const |
Total Komar mass. More... | |
const Tbl & | angu_mom () const |
Total angular momentum. More... | |
double | total_ener () const |
Total energy (excluding the rest mass energy). More... | |
double | virial () const |
Estimates the relative error on the virial theorem (for a relativistic one, it returns $|1 - M_{ Komar} / M_{ ADM}|$) More... | |
double | virial_gb () const |
Estimates the relative error on the virial theorem calculated by E.Gourgoulhon and S.Bonazzola (Class. More... | |
double | virial_fus () const |
Estimates the relative error on the virial theorem calculated by J.L.Friedman, K.Uryu, and M.Shibata (PRD accepted, gr-qc/0108070) More... | |
double | ham_constr () const |
Estimates the relative error on the Hamiltonian constraint equation by comparing $ A$ with {equation} -4 A^2 E - {A^2 4} K_{ij} K^{ij} - {1 2} {}_i A {}^i A {equation}. More... | |
const Tbl & | mom_constr () const |
Estimates the relative error on the momentum constraint equation by comparing ${}_j K^{ij}$ with {equation} 8 J^i - 5 K^{ij} {}_j A {equation}. More... | |
void | orbit (double fact_omeg_min, double fact_omeg_max, double &xgg1, double &xgg2) |
Computes the orbital angular velocity { omega} and the position of the rotation axis { x_axe}. More... | |
void | orbit_eqmass (double fact_omeg_min, double fact_omeg_max, double mass1, double mass2, double &xgg1, double &xgg2) |
Computes the orbital angular velocity { omega} and the position of the rotation axis { x_axe}. More... | |
void | analytical_omega () |
Sets the orbital angular velocity to some 2-PN analytical value (Keplerian value in the Newtonian case) More... | |
void | analytical_shift () |
Sets some analytical template for the shift vector (via the members { w_shift} and { khi_shift} of the two { Etoile_bin}. More... | |
Private Member Functions | |
void | del_deriv () const |
Destructor. More... | |
void | set_der_0x0 () const |
Sets to { 0x0} all the pointers on derived quantities. More... | |
ostream & | operator>> (ostream &) const |
Operator >> (function called by the operator <<). More... | |
Private Attributes | |
const Base_vect_cart | ref_triad |
Cartesian triad of the absolute reference frame. More... | |
Etoile_bin | star1 |
First star of the system. More... | |
Etoile_bin | star2 |
Second star of the system. More... | |
Etoile_bin * | et [2] |
Array of the two stars (to perform loops on the stars): { et[0]} contains the address of { star1} and { et[1]} that of { star2}. More... | |
double | omega |
Angular velocity with respect to an asymptotically inertial observer. More... | |
double | x_axe |
Absolute X coordinate of the rotation axis. More... | |
double * | p_mass_adm |
Total ADM mass of the system. More... | |
double * | p_mass_kom |
Total Komar mass of the system. More... | |
Tbl * | p_angu_mom |
Total angular momentum of the system. More... | |
double * | p_total_ener |
Total energy of the system. More... | |
double * | p_virial |
Virial theorem error. More... | |
double * | p_virial_gb |
Virial theorem error by E.Gourgoulhon and S.Bonazzola. More... | |
double * | p_virial_fus |
Virial theorem error by J.L.Friedman, K.Uryu, and M.Shibata. More... | |
double * | p_ham_constr |
Relative error on the Hamiltonian constraint. More... | |
Tbl * | p_mom_constr |
Relative error on the momentum constraint. More... | |
Friends | |
ostream & | operator<< (ostream &, const Binaire &) |
Save in a file. More... | |
Lorene::Binaire::Binaire | ( | Map & | mp1, |
int | nzet1, | ||
const Eos & | eos1, | ||
int | irrot1, | ||
Map & | mp2, | ||
int | nzet2, | ||
const Eos & | eos2, | ||
int | irrot2, | ||
int | relat | ||
) |
Standard constructor.
mp1 | Mapping on which { star1} will be defined |
nzet1 | Number of domains occupied by { star1} |
eos1 | Equation of state of { star1} |
irrot1 | should be { true} if { star1} is irrotational, { false} if { star1} is corotating |
mp2 | Mapping on which { star2} will be defined |
nzet2 | Number of domains occupied by { star2} |
eos2 | Equation of state of { star2} |
irrot2 | should be { true} if { star2} is irrotational, { false} if { star2} is corotating |
relat | should be { true} for a relativistic configuration, { false} for a Newtonian one |
Definition at line 112 of file binaire.C.
References et, omega, set_der_0x0(), star1, star2, and x_axe.
Copy constructor.
Constructor from a file (see { sauve(FILE* )}).
mp1 | Mapping on which { star1} will be defined |
eos1 | Equation of state of { star1} |
mp2 | Mapping on which { star2} will be defined |
eos2 | Equation of state of { star2} |
fich | input file (must have been created by the function { sauve}) |
Definition at line 148 of file binaire.C.
References et, Lorene::fread_be(), omega, set_der_0x0(), star1, star2, and x_axe.
void Lorene::Binaire::analytical_omega | ( | ) |
Sets the orbital angular velocity to some 2-PN analytical value (Keplerian value in the Newtonian case)
Definition at line 66 of file binaire_omega_ana.C.
References del_deriv(), Lorene::Etoile_bin::is_irrotational(), Lorene::Etoile::is_relativistic(), Lorene::Etoile_bin::mass_g(), omega, Lorene::pow(), Lorene::Etoile::ray_eq(), separation(), Lorene::sqrt(), star1, and star2.
void Lorene::Binaire::analytical_shift | ( | ) |
Sets some analytical template for the shift vector (via the members { w_shift} and { khi_shift} of the two { Etoile_bin}.
Definition at line 72 of file binaire_ana_shift.C.
References Lorene::Cmp::annule(), et, Lorene::Map::get_mg(), Lorene::Etoile::get_mp(), Lorene::Etoile::get_nzet(), Lorene::Mg3d::get_nzone(), Lorene::Etoile::is_relativistic(), Lorene::Etoile_bin::mass_g(), omega, Lorene::Map::r, Lorene::Etoile::ray_eq(), separation(), Lorene::Tenseur::set(), Lorene::Tenseur::set_etat_qcq(), Lorene::Etoile_bin::set_khi_shift(), Lorene::Tenseur::set_std_base(), Lorene::Etoile_bin::set_w_shift(), Lorene::Map::sinp, Lorene::Map::sint, star1, star2, and Lorene::Map::y.
const Tbl & Lorene::Binaire::angu_mom | ( | ) | const |
Total angular momentum.
Definition at line 201 of file binaire_global.C.
References Lorene::Tbl::annule_hard(), et, Lorene::Etoile::get_a_car(), Lorene::Etoile::get_ener_euler(), Lorene::Etoile::get_mp(), Lorene::Etoile::get_nbar(), Lorene::Etoile::get_press(), Lorene::Etoile::get_u_euler(), Lorene::Cmp::integrale(), p_angu_mom, Lorene::pow(), Lorene::Tbl::set(), Lorene::Cmp::std_base_scal(), Lorene::Cmp::va, Lorene::Map::xa, Lorene::Map::ya, and Lorene::Map::za.
|
private |
Destructor.
Deletes all the derived quantities
Definition at line 180 of file binaire.C.
References p_angu_mom, p_ham_constr, p_mass_adm, p_mass_kom, p_mom_constr, p_total_ener, p_virial, p_virial_fus, p_virial_gb, and set_der_0x0().
void Lorene::Binaire::display_poly | ( | ostream & | ost | ) | const |
Display in polytropic units.
Definition at line 287 of file binaire.C.
References angu_mom(), Lorene::Etoile::get_eos(), Lorene::Eos_poly::get_gam(), Lorene::Eos_poly::get_kap(), mass_adm(), Lorene::Etoile_bin::mass_b(), mass_kom(), omega, Lorene::pow(), Lorene::Etoile::ray_eq(), Lorene::Etoile::ray_eq_pi(), separation(), Lorene::sqrt(), star1, star2, total_ener(), and Lorene::Etoile_bin::xa_barycenter().
|
inline |
|
inline |
double Lorene::Binaire::ham_constr | ( | ) | const |
Estimates the relative error on the Hamiltonian constraint equation by comparing $ A$ with {equation} -4 A^2 E - {A^2 4} K_{ij} K^{ij} - {1 2} {}_i A {}^i A {equation}.
Definition at line 72 of file binaire_constr.C.
References Lorene::abs(), Lorene::diffrel(), et, Lorene::flat_scalar_prod(), Lorene::Etoile::get_a_car(), Lorene::Etoile_bin::get_akcar_auto(), Lorene::Etoile_bin::get_akcar_comp(), Lorene::Etoile::get_beta_auto(), Lorene::Etoile_bin::get_d_beta_auto(), Lorene::Etoile_bin::get_d_beta_comp(), Lorene::Etoile_bin::get_d_logn_auto(), Lorene::Etoile_bin::get_d_logn_comp(), Lorene::Etoile::get_ener_euler(), Lorene::Etoile::get_logn_auto(), Lorene::Etoile::get_mp(), Lorene::max(), p_ham_constr, star1, and star2.
double Lorene::Binaire::mass_adm | ( | ) | const |
Total ADM mass.
Definition at line 91 of file binaire_global.C.
References et, Lorene::Etoile::get_a_car(), Lorene::Etoile_bin::get_akcar_auto(), Lorene::Etoile_bin::get_akcar_comp(), Lorene::Etoile::get_ener_euler(), Lorene::Cmp::integrale(), Lorene::Etoile::is_relativistic(), Lorene::Etoile_bin::mass_b(), p_mass_adm, Lorene::pow(), star1, star2, and Lorene::Cmp::std_base_scal().
double Lorene::Binaire::mass_kom | ( | ) | const |
Total Komar mass.
Definition at line 139 of file binaire_global.C.
References et, Lorene::flat_scalar_prod(), Lorene::Etoile::get_a_car(), Lorene::Etoile_bin::get_akcar_auto(), Lorene::Etoile_bin::get_akcar_comp(), Lorene::Etoile_bin::get_d_beta_auto(), Lorene::Etoile_bin::get_d_beta_comp(), Lorene::Etoile_bin::get_d_logn_auto(), Lorene::Etoile_bin::get_d_logn_comp(), Lorene::Etoile::get_ener_euler(), Lorene::Etoile::get_nnn(), Lorene::Etoile::get_s_euler(), Lorene::Cmp::integrale(), Lorene::Etoile::is_relativistic(), Lorene::Etoile_bin::mass_b(), p_mass_kom, star1, star2, and Lorene::Cmp::std_base_scal().
const Tbl & Lorene::Binaire::mom_constr | ( | ) | const |
Estimates the relative error on the momentum constraint equation by comparing ${}_j K^{ij}$ with {equation} 8 J^i - 5 K^{ij} {}_j A {equation}.
Definition at line 161 of file binaire_constr.C.
References Lorene::abs(), Lorene::Tenseur::change_triad(), Lorene::contract(), Lorene::Tenseur::dec2_dzpuis(), Lorene::diffrel(), et, Lorene::Etoile::get_a_car(), Lorene::Etoile_bin::get_d_beta_auto(), Lorene::Etoile_bin::get_d_beta_comp(), Lorene::Etoile_bin::get_d_logn_auto(), Lorene::Etoile_bin::get_d_logn_comp(), Lorene::Etoile::get_ener_euler(), Lorene::Etoile::get_mp(), Lorene::Etoile::get_press(), Lorene::Etoile_bin::get_tkij_auto(), Lorene::Etoile::get_u_euler(), Lorene::Tenseur::gradient(), Lorene::max(), Lorene::norme(), p_mom_constr, ref_triad, Lorene::Tbl::set(), Lorene::Tbl::set_etat_qcq(), star1, and star2.
|
inline |
void Lorene::Binaire::operator= | ( | const Binaire & | bibi | ) |
|
private |
void Lorene::Binaire::orbit | ( | double | fact_omeg_min, |
double | fact_omeg_max, | ||
double & | xgg1, | ||
double & | xgg2 | ||
) |
Computes the orbital angular velocity { omega} and the position of the rotation axis { x_axe}.
fact_omeg_min | [input] : determines the lower bound of the interval { [omega_min, omega_max]} in which { omega} is searched by { omega_min = fact_omeg_min * omega}, where { omega} is the previous value of the angular velocity (typical value : { fact_omeg_min = 0.5}) |
fact_omeg_max | [input] : determines the higher bound of the interval { [omega_min, omega_max]} in which { omega} is searched by { omega_max = fact_omeg_max * omega}, where { omega} is the previous value of the angular velocity. (typical value : { fact_omeg_max = 1.5}) |
xgg1 | [output] : x coordinate (relative to star 1 mapping) of the `‘center of mass’' of star 1 |
xgg2 | [output] : x coordinate (relative to star 2 mapping) of the `‘center of mass’' of star 2 |
Definition at line 125 of file binaire_orbite.C.
References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Tenseur::change_triad(), Lorene::Cmp::dsdx(), et, Lorene::flat_scalar_prod(), Lorene::Etoile::get_a_car(), Lorene::Map::get_bvect_cart(), Lorene::Etoile::get_d_logn_auto_div(), Lorene::Etoile::get_ent(), Lorene::Etoile::get_eos(), Lorene::Etoile_bin::get_loggam(), Lorene::Etoile::get_logn_auto_regu(), Lorene::Etoile_bin::get_logn_comp(), Lorene::Etoile::get_mp(), Lorene::Etoile::get_nnn(), Lorene::Map::get_rot_phi(), Lorene::Etoile::get_shift(), Lorene::Tbl::get_taille(), Lorene::Tenseur::get_triad(), Lorene::Etoile::is_relativistic(), omega, ref_triad, save_profile(), x_axe, Lorene::Etoile_bin::xa_barycenter(), Lorene::zero_list(), Lorene::zerosec(), and Lorene::zerosec_b().
void Lorene::Binaire::orbit_eqmass | ( | double | fact_omeg_min, |
double | fact_omeg_max, | ||
double | mass1, | ||
double | mass2, | ||
double & | xgg1, | ||
double & | xgg2 | ||
) |
Computes the orbital angular velocity { omega} and the position of the rotation axis { x_axe}.
fact_omeg_min | [input] : determines the lower bound of the interval { [omega_min, omega_max]} in which { omega} is searched by { omega_min = fact_omeg_min * omega}, where { omega} is the previous value of the angular velocity (typical value : { fact_omeg_min = 0.5}) |
fact_omeg_max | [input] : determines the higher bound of the interval { [omega_min, omega_max]} in which { omega} is searched by { omega_max = fact_omeg_max * omega}, where { omega} is the previous value of the angular velocity. (typical value : { fact_omeg_max = 1.5}) |
mass1 | [input] : baryon rest mass of NS1 |
mass2 | [input] : baryon rest mass of NS2 |
xgg1 | [output] : x coordinate (relative to star 1 mapping) of the `‘center of mass’' of star 1 |
xgg2 | [output] : x coordinate (relative to star 2 mapping) of the `‘center of mass’' of star 2 |
Definition at line 467 of file binaire_orbite.C.
References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Tenseur::change_triad(), Lorene::Cmp::dsdx(), et, Lorene::flat_scalar_prod(), Lorene::Etoile::get_a_car(), Lorene::Map::get_bvect_cart(), Lorene::Etoile::get_d_logn_auto_div(), Lorene::Etoile::get_eos(), Lorene::Etoile_bin::get_loggam(), Lorene::Etoile::get_logn_auto_regu(), Lorene::Etoile_bin::get_logn_comp(), Lorene::Etoile::get_mp(), Lorene::Etoile::get_nnn(), Lorene::Map::get_rot_phi(), Lorene::Etoile::get_shift(), Lorene::Tbl::get_taille(), Lorene::Tenseur::get_triad(), Lorene::Etoile::is_relativistic(), omega, ref_triad, x_axe, Lorene::Etoile_bin::xa_barycenter(), Lorene::zero_list(), Lorene::zerosec(), and Lorene::zerosec_b().
double Lorene::Binaire::separation | ( | ) | const |
Returns the coordinate separation of the two stellar centers [{ r_unit}].
Definition at line 460 of file binaire.C.
References Lorene::Etoile::get_mp(), Lorene::Map::get_ori_x(), Lorene::Map::get_ori_y(), Lorene::Map::get_ori_z(), Lorene::sqrt(), star1, and star2.
|
inline |
Read/write of the star no. i.
Definition at line 226 of file binaire.h.
References del_deriv(), and et.
|
private |
Sets to { 0x0} all the pointers on derived quantities.
Definition at line 198 of file binaire.C.
References p_angu_mom, p_ham_constr, p_mass_adm, p_mass_kom, p_mom_constr, p_total_ener, p_virial, p_virial_fus, and p_virial_gb.
|
inline |
|
inline |
double Lorene::Binaire::total_ener | ( | ) | const |
Total energy (excluding the rest mass energy).
In the Newtonian case, it is defined as the sum of kinetic, internal, and gravitational potential energies.
In the relativistic case, it is defined as $M_{ ADM} - M_{ bar,1} - M_{ bar,2}$.
Definition at line 292 of file binaire_global.C.
References et, Lorene::flat_scalar_prod(), Lorene::Etoile::get_ener(), Lorene::Etoile::get_logn_auto(), Lorene::Etoile_bin::get_logn_comp(), Lorene::Etoile::get_nbar(), Lorene::Etoile::get_u_euler(), Lorene::Cmp::integrale(), Lorene::Etoile::is_relativistic(), mass_adm(), Lorene::Etoile_bin::mass_b(), p_total_ener, star1, and star2.
double Lorene::Binaire::virial | ( | ) | const |
Estimates the relative error on the virial theorem (for a relativistic one, it returns $|1 - M_{ Komar} / M_{ ADM}|$)
Definition at line 348 of file binaire_global.C.
References et, Lorene::flat_scalar_prod(), Lorene::Etoile::get_logn_auto(), Lorene::Etoile_bin::get_logn_comp(), Lorene::Etoile::get_nbar(), Lorene::Etoile::get_press(), Lorene::Etoile::get_u_euler(), Lorene::Cmp::integrale(), Lorene::Etoile::is_relativistic(), mass_adm(), mass_kom(), p_virial, star1, and star2.
double Lorene::Binaire::virial_fus | ( | ) | const |
Estimates the relative error on the virial theorem calculated by J.L.Friedman, K.Uryu, and M.Shibata (PRD accepted, gr-qc/0108070)
The expression used in the LORENE is Eq.(5.7) in the paper by M.Shibata and K.Uryu (PRD64, 104017 (2001))
Definition at line 484 of file binaire_global.C.
References et, Lorene::flat_scalar_prod(), Lorene::Etoile::get_a_car(), Lorene::Etoile_bin::get_akcar_auto(), Lorene::Etoile_bin::get_akcar_comp(), Lorene::Etoile_bin::get_d_beta_auto(), Lorene::Etoile_bin::get_d_beta_comp(), Lorene::Etoile_bin::get_d_logn_auto(), Lorene::Etoile_bin::get_d_logn_comp(), Lorene::Etoile::get_nnn(), Lorene::Etoile::get_s_euler(), Lorene::Cmp::integrale(), Lorene::Etoile::is_relativistic(), mass_adm(), p_virial_fus, Lorene::sqrt(), star1, star2, Lorene::Cmp::std_base_scal(), and virial().
double Lorene::Binaire::virial_gb | ( | ) | const |
Estimates the relative error on the virial theorem calculated by E.Gourgoulhon and S.Bonazzola (Class.
Quantum Grav. 11, 443 (1994): Eq.(29)) normalized by $2 G$.
Definition at line 411 of file binaire_global.C.
References et, Lorene::flat_scalar_prod(), Lorene::Etoile::get_a_car(), Lorene::Etoile_bin::get_akcar_auto(), Lorene::Etoile_bin::get_akcar_comp(), Lorene::Etoile_bin::get_d_beta_auto(), Lorene::Etoile_bin::get_d_beta_comp(), Lorene::Etoile_bin::get_d_logn_auto(), Lorene::Etoile_bin::get_d_logn_comp(), Lorene::Etoile::get_s_euler(), Lorene::Cmp::integrale(), Lorene::Etoile::is_relativistic(), mass_adm(), p_virial_gb, Lorene::sqrt(), star1, star2, Lorene::Cmp::std_base_scal(), and virial().
void Lorene::Binaire::write_global | ( | ostream & | ost | ) | const |
Write global quantities in a formatted file.
This file can be read by an external program.
Definition at line 337 of file binaire.C.
References angu_mom(), Lorene::Etoile::get_ener(), Lorene::Etoile::get_ent(), Lorene::Etoile::get_eos(), Lorene::Eos_poly::get_gam(), Lorene::Eos_poly::get_kap(), Lorene::Map::get_mg(), Lorene::Etoile::get_mp(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), mass_adm(), Lorene::Etoile_bin::mass_b(), omega, Lorene::pow(), Lorene::Etoile::ray_eq(), Lorene::Etoile::ray_eq_pis2(), Lorene::Etoile::ray_pole(), separation(), Lorene::sqrt(), star1, star2, Lorene::Map::val_r(), virial(), virial_fus(), virial_gb(), and Lorene::Etoile_bin::xa_barycenter().
|
friend |
|
private |
|
private |
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
|
private |
|
private |
|
private |
|
private |