Lorene::Binary Class Reference
Stars and black holes

Binary systems. More...

`#include <binary.h>`

## Public Member Functions

| Binary (Map &mp1, int nzet1, const Eos &eos1, int irrot1, Map &mp2, int nzet2, const Eos &eos2, int irrot2, int conf_flat)
| Standard constructor.
| Binary (const Binary &)
| Copy constructor.
| Binary (Map &mp1, const Eos &eos1, Map &mp2, const Eos &eos2, FILE *fich)
| Constructor from a file (see `sauve(FILE* )`).
| ~Binary ()
| Destructor.
void | operator= (const Binary &)
| Assignment to another `Binary`.
Star_bin & | set (int i)
| Read/write of the star no. i.
double & | set_omega ()
| Sets the orbital angular velocity [`f_unit`].
double & | set_x_axe ()
| Sets the absolute coordinate X of the rotation axis [`r_unit`].
const Star_bin & | operator() (int i) const
| Returns a reference to the star no. i.
double | get_omega () const
| Returns the orbital angular velocity [`f_unit`].
double | get_x_axe () const
| Returns the absolute coordinate X of the rotation axis [`r_unit`].
double | separation () const
| Returns the coordinate separation of the two stellar centers [`r_unit`].
void | sauve (FILE *) const
| Save in a file.
void | display_poly (ostream &) const
| Display in polytropic units.
void | write_global (ostream &) const
| Write global quantities in a formatted file.
double | mass_adm () const
| Total ADM mass.
double | mass_adm_vol () const
| Total ADM mass (computed by a volume integral).
double | mass_kom () const
| Total Komar mass.
double | mass_kom_vol () const
| Total Komar mass (computed by a volume integral).
const Tbl & | angu_mom () const
| Total angular momentum.
double | total_ener () const
| Total energy (excluding the rest mass energy).
double | virial () const
| Estimates the relative error on the virial theorem.
double | ham_constr () const
| Estimates the relative error on the Hamiltonian constraint.
const Tbl & | mom_constr () const
| Estimates the relative error on the momentum constraint.
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`.
void | analytical_omega ()
| Sets the orbital angular velocity to some 2-PN analytical value (Keplerian value in the Newtonian case).
void | analytical_shift ()
| Sets some analytical template for the shift vector (via the members `w_shift` and `khi_shift` of the two `Star_bin`.
void | fait_decouple ()
| Calculates `decouple` which is used to obtain `qq_auto` by the formula : `qq_auto` = `decouple` * `qq`.
void | dirac_gauge ()
| Function used to impose Dirac gauge during an iteration.
void | helical ()
| Function testing the helical symmetry.

## Protected Member Functions

void | del_deriv () const
| Deletes all the derived quantities.
void | set_der_0x0 () const
| Sets to `0x0` all the pointers on derived quantities.

## Protected Attributes

Star_bin | star1
| First star of the system.
Star_bin | star2
| Second star of the system.
Star_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`.
double | omega
| Angular velocity with respect to an asymptotically inertial observer.
double | x_axe
| Absolute X coordinate of the rotation axis.
double * | p_mass_adm
| Total ADM mass of the system.
double * | p_mass_kom
| Total Komar mass of the system.
Tbl * | p_angu_mom
| Total angular momentum of the system.
double * | p_total_ener
| Total energy of the system.
double * | p_virial
| Virial theorem error.
double * | p_ham_constr
| Relative error on the Hamiltonian constraint.
Tbl * | p_mom_constr
| Relative error on the momentum constraint.

## Private Member Functions

ostream & | operator>> (ostream &) const
| Operator >> (function called by the operator <<).

## Friends

ostream & | operator<< (ostream &ost, const Binary &bibi)
| Display.

## Detailed Description

Binary systems.

*** UNDER DEVELOPMENT ***()

Version
  #$Id: binary.h,v 1.10 2014/10/13 08:52:32 j_novak Exp $#

Definition at line 73 of file binary.h.

## Constructor & Destructor Documentation

## Binary() [1/3]

Lorene::Binary::Binary | ( | Map & | mp1,
|  | int | nzet1,
|  | const Eos & | eos1,
|  | int | irrot1,
|  | Map & | mp2,
|  | int | nzet2,
|  | const Eos & | eos2,
|  | int | irrot2,
|  | int | conf_flat )

Standard constructor.

Parameters

  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
  conf_flat | should be `true` for a 3-metric conformally flat and `false` for a more general one.

Definition at line 96 of file binary.C.

References et, Lorene::Map(), omega, set_der_0x0(), star1, star2, and x_axe.

## Binary() [2/3]

Lorene::Binary::Binary | ( | const Binary & | bibi | ) |

Copy constructor.

Definition at line 115 of file binary.C.

References Binary(), et, omega, set_der_0x0(), star1, star2, and x_axe.

## Binary() [3/3]

Lorene::Binary::Binary | ( | Map & | mp1,
|  | const Eos & | eos1,
|  | Map & | mp2,
|  | const Eos & | eos2,
|  | FILE * | fich )

Constructor from a file (see `sauve(FILE* )`).

Parameters

  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 130 of file binary.C.

References et, Lorene::fread_be(), Lorene::Map(), omega, set_der_0x0(), star1, star2, and x_axe.

## ~Binary()

Lorene::Binary::~Binary | ( |  | ) |

Destructor.

Definition at line 151 of file binary.C.

References del_deriv().

## Member Function Documentation

## analytical_omega()

void Lorene::Binary::analytical_omega | ( |  | ) |

Sets the orbital angular velocity to some 2-PN analytical value (Keplerian value in the Newtonian case).

Definition at line 56 of file binary_omegaana.C.

References del_deriv(), omega, Lorene::pow(), separation(), Lorene::sqrt(), star1, and star2.

## analytical_shift()

void Lorene::Binary::analytical_shift | ( |  | ) |

Sets some analytical template for the shift vector (via the members `w_shift` and `khi_shift` of the two `Star_bin`.

Definition at line 71 of file binary_anashift.C.

References Lorene::Scalar::annule(), Lorene::Tenseur::dec_dzpuis(), Lorene::Tensor::dec_dzpuis(), Lorene::Scalar::derive_con(), Lorene::Tensor::derive_con(), et, Lorene::get_bvect_cart(), Lorene::Map(), omega, separation(), Lorene::Tenseur::set(), Lorene::Vector::set(), Lorene::Tenseur::set_etat_qcq(), Lorene::skxk(), Lorene::Scalar::std_spectral_base(), and Lorene::Vector::std_spectral_base().

## angu_mom()

const Tbl & Lorene::Binary::angu_mom | ( |  | ) | const

Total angular momentum.

Returns
  1-D `Tbl` of size 3, according to
  - `angu_mom()`(0) = ,
  - `angu_mom()`(1) = ,
  - `angu_mom()`(2) = .

Definition at line 285 of file binary_global.C.

References Lorene::Vector::change_triad(), Lorene::contract(), Lorene::Metric::cov(), et, Lorene::exp(), Lorene::Connection::get_delta(), Lorene::Tensor::inc_dzpuis(), Lorene::Scalar::integrale(), Lorene::Map(), p_angu_mom, Lorene::pow(), Lorene::Itbl::set(), Lorene::Tensor::set(), Lorene::Vector::set(), Lorene::Scalar::set_outer_boundary(), Lorene::Scalar::std_spectral_base(), Lorene::Vector::std_spectral_base(), and Lorene::Tensor::up_down().

## del_deriv()

void Lorene::Binary::del_deriv | ( |  | ) | const

protected

Deletes all the derived quantities.

Definition at line 161 of file binary.C.

References p_angu_mom, p_ham_constr, p_mass_adm, p_mass_kom, p_mom_constr, p_total_ener, p_virial, and set_der_0x0().

## dirac_gauge()

void Lorene::Binary::dirac_gauge | ( |  | ) |

Function used to impose Dirac gauge during an iteration.

Definition at line 59 of file binary_dirac.C.

References Lorene::Param::add_cmp_mod(), Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), Lorene::Tensor::change_triad(), Lorene::Tensor::dec_dzpuis(), Lorene::Scalar::derive_con(), Lorene::Tensor::derive_con(), Lorene::diffrel(), Lorene::diffrelmax(), Lorene::Sym_tensor::divergence(), Lorene::Vector::divergence(), Lorene::exp(), Lorene::Tensor::get_triad(), Lorene::Tensor::inc_dzpuis(), Lorene::norme(), Lorene::Vector::poisson(), Lorene::pow(), Lorene::Tensor::set(), Lorene::Vector::set(), Lorene::Scalar::set_domain(), Lorene::Cmp::set_etat_qcq(), Lorene::Scalar::set_outer_boundary(), star1, star2, Lorene::Scalar::std_spectral_base(), Lorene::Tensor::std_spectral_base(), and Lorene::Vector::std_spectral_base().

## display_poly()

void Lorene::Binary::display_poly | ( | ostream & | ost | ) | const

Display in polytropic units.

Definition at line 260 of file binary.C.

References angu_mom(), Lorene::Eos_poly::get_gam(), Lorene::Eos_poly::get_kap(), mass_adm(), mass_kom(), omega, Lorene::pow(), separation(), Lorene::sqrt(), star1, and star2.

## fait_decouple()

void Lorene::Binary::fait_decouple | ( |  | ) |

Calculates `decouple` which is used to obtain `qq_auto` by the formula : `qq_auto` = `decouple` * `qq`.

(see the membre `Scalar` `decouple` for more precisions about its value).

Definition at line 312 of file binary.C.

References Lorene::Scalar::allocate_all(), Lorene::cos(), Lorene::norme(), Lorene::phi, Lorene::pow(), Lorene::Scalar::set_grid_point(), Lorene::sin(), star1, star2, Lorene::Scalar::std_spectral_base(), Lorene::Scalar::val_grid_point(), and Lorene::Scalar::val_point().

## get_omega()

double Lorene::Binary::get_omega | ( |  | ) | const

inline

Returns the orbital angular velocity [`f_unit`].

Definition at line 207 of file binary.h.

References omega.

## get_x_axe()

double Lorene::Binary::get_x_axe | ( |  | ) | const

inline

Returns the absolute coordinate X of the rotation axis [`r_unit`].

Definition at line 210 of file binary.h.

References x_axe.

## ham_constr()

double Lorene::Binary::ham_constr | ( |  | ) | const

Estimates the relative error on the Hamiltonian constraint.

## helical()

void Lorene::Binary::helical | ( |  | ) |

Function testing the helical symmetry.

Definition at line 76 of file binary_helical.C.

References Lorene::Scalar::annule_hard(), Lorene::Tbl::annule_hard(), Lorene::Star::beta, Lorene::Star_bin::beta_auto, Lorene::Star_bin::beta_comp, Lorene::Tensor::change_triad(), Lorene::Metric::con(), Lorene::Metric_flat::con(), Lorene::contract(), Lorene::Metric::cov(), Lorene::Star_bin::dcon_logn, Lorene::Star_bin::dcon_phi, Lorene::Star_bin::dcov_logn, Lorene::Star_bin::dcov_phi, Lorene::Scalar::dec_dzpuis(), Lorene::Tensor::dec_dzpuis(), Lorene::Scalar::derive_con(), Lorene::Tensor::derive_con(), Lorene::Tensor_sym::derive_con(), Lorene::Scalar::derive_cov(), Lorene::Tensor::derive_cov(), Lorene::Tensor_sym::derive_cov(), Lorene::Sym_tensor::derive_lie(), Lorene::Sym_tensor::divergence(), Lorene::Vector::divergence(), Lorene::Star::ener_euler, et, Lorene::exp(), Lorene::Star_bin::flat, Lorene::Mg3d::get_nzone(), Lorene::Star_bin::gtilde, Lorene::Star_bin::hij, Lorene::Star_bin::hij_auto, Lorene::Star_bin::hij_comp, Lorene::Scalar::import(), Lorene::Scalar::inc_dzpuis(), Lorene::Tensor::inc_dzpuis(), Lorene::Scalar::integrale_domains(), Lorene::Scalar::laplacian(), Lorene::Star_bin::lnq_auto, Lorene::Star::logn, Lorene::Star_bin::logn_auto, Lorene::Map(), mass_adm(), Lorene::Star::mp, Lorene::Star::nn, omega, Lorene::phi, Lorene::pow(), Lorene::Star_bin::psi4, Lorene::Star::s_euler, Lorene::Itbl::set(), Lorene::Tbl::set(), Lorene::Tensor::set(), Lorene::Vector::set(), Lorene::Valeur::set_base(), Lorene::Scalar::set_etat_qcq(), Lorene::Scalar::set_outer_boundary(), Lorene::Scalar::set_spectral_va(), Lorene::sqrt(), star1, star2, Lorene::Scalar::std_spectral_base(), Lorene::Tensor::std_spectral_base(), Lorene::Vector::std_spectral_base(), Lorene::Star::stress_euler, Lorene::Star_bin::tkij_auto, Lorene::Star_bin::tkij_comp, and Lorene::Tensor::up_down().

## mass_adm()

double Lorene::Binary::mass_adm | ( |  | ) | const

Total ADM mass.

Definition at line 103 of file binary_global.C.

References Lorene::Vector::change_triad(), Lorene::contract(), et, Lorene::Map_af::integrale_surface_infini(), and p_mass_adm.

## mass_adm_vol()

double Lorene::Binary::mass_adm_vol | ( |  | ) | const

Total ADM mass (computed by a volume integral).

Definition at line 135 of file binary_global.C.

References Lorene::Metric::con(), Lorene::contract(), Lorene::Metric::cov(), Lorene::Scalar::derive_cov(), Lorene::Tensor::derive_cov(), Lorene::Tensor_sym::derive_cov(), et, Lorene::Tensor::inc_dzpuis(), Lorene::Scalar::integrale(), Lorene::pow(), and Lorene::Scalar::std_spectral_base().

## mass_kom()

double Lorene::Binary::mass_kom | ( |  | ) | const

Total Komar mass.

Definition at line 201 of file binary_global.C.

References Lorene::Vector::change_triad(), Lorene::contract(), Lorene::Tensor::derive_con(), Lorene::Tensor::derive_cov(), et, Lorene::Map_af::integrale_surface_infini(), and p_mass_kom.

## mass_kom_vol()

double Lorene::Binary::mass_kom_vol | ( |  | ) | const

Total Komar mass (computed by a volume integral).

Definition at line 229 of file binary_global.C.

References Lorene::Metric::con(), Lorene::contract(), Lorene::Scalar::derive_cov(), Lorene::Tensor::derive_cov(), et, Lorene::exp(), Lorene::Tensor::inc_dzpuis(), Lorene::Scalar::integrale(), and Lorene::Scalar::std_spectral_base().

## mom_constr()

const Tbl & Lorene::Binary::mom_constr | ( |  | ) | const

Estimates the relative error on the momentum constraint.

## operator()()

const Star_bin & Lorene::Binary::operator() | ( | int | i | ) | const

inline

Returns a reference to the star no. i.

Definition at line 202 of file binary.h.

References et.

## operator=()

void Lorene::Binary::operator= | ( | const Binary & | bibi | ) |

Assignment to another `Binary`.

Definition at line 197 of file binary.C.

References Binary(), del_deriv(), omega, star1, star2, and x_axe.

## operator>>()

ostream & Lorene::Binary::operator>> | ( | ostream & | ost | ) | const

private

Operator >> (function called by the operator <<).

Definition at line 233 of file binary.C.

References omega, separation(), star1, star2, and x_axe.

## orbit()

void Lorene::Binary::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`.

Parameters

  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 87 of file binary_orbite.C.

References Lorene::Param::add_double(), Lorene::Tensor::change_triad(), Lorene::Vector::change_triad(), Lorene::Metric::cov(), Lorene::Scalar::dsdx(), et, Lorene::Tbl::get_taille(), Lorene::norme(), omega, Lorene::Scalar::val_grid_point(), x_axe, Lorene::zero_list(), Lorene::zerosec(), and Lorene::zerosec_b().

## sauve()

void Lorene::Binary::sauve | ( | FILE * | fich | ) | const

Save in a file.

Definition at line 215 of file binary.C.

References Lorene::fwrite_be(), omega, star1, star2, and x_axe.

## separation()

double Lorene::Binary::separation | ( |  | ) | const

Returns the coordinate separation of the two stellar centers [`r_unit`].

Definition at line 604 of file binary.C.

References Lorene::sqrt(), star1, and star2.

## set()

Star_bin & Lorene::Binary::set | ( | int | i | ) |

inline

Read/write of the star no. i.

Definition at line 186 of file binary.h.

References del_deriv(), and et.

## set_der_0x0()

void Lorene::Binary::set_der_0x0 | ( |  | ) | const

protected

Sets to `0x0` all the pointers on derived quantities.

Definition at line 177 of file binary.C.

References p_angu_mom, p_ham_constr, p_mass_adm, p_mass_kom, p_mom_constr, p_total_ener, and p_virial.

## set_omega()

double & Lorene::Binary::set_omega | ( |  | ) |

inline

Sets the orbital angular velocity [`f_unit`].

Definition at line 192 of file binary.h.

References omega.

## set_x_axe()

double & Lorene::Binary::set_x_axe | ( |  | ) |

inline

Sets the absolute coordinate X of the rotation axis [`r_unit`].

Definition at line 195 of file binary.h.

References x_axe.

## total_ener()

double Lorene::Binary::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 .

Definition at line 607 of file binary_global.C.

References p_total_ener.

## virial()

double Lorene::Binary::virial | ( |  | ) | const

Estimates the relative error on the virial theorem.

Definition at line 627 of file binary_global.C.

References mass_adm(), mass_kom(), and p_virial.

## write_global()

void Lorene::Binary::write_global | ( | ostream & | ost | ) | const

Write global quantities in a formatted file.

This file can be read by an external program.

Definition at line 478 of file binary.C.

References angu_mom(), Lorene::Eos_poly::get_gam(), Lorene::Eos_poly::get_kap(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Map(), mass_adm(), mass_adm_vol(), mass_kom(), mass_kom_vol(), omega, Lorene::pow(), separation(), Lorene::sqrt(), star1, star2, and virial().

## Friends And Related Symbol Documentation

## operator<<

ostream & operator<< | ( | ostream & | ost,
|  | const Binary & | bibi )

friend

Display.

Definition at line 227 of file binary.C.

References Binary(), and operator<<.

## Member Data Documentation

## et

Star_bin* Lorene::Binary::et[2]

protected

Array of the two stars (to perform loops on the stars): `et`[0] contains the address of `star1` and `et`[1] that of `star2`.

Definition at line 89 of file binary.h.

## omega

double Lorene::Binary::omega

protected

Angular velocity with respect to an asymptotically inertial observer.

Definition at line 94 of file binary.h.

## p_angu_mom

Tbl* Lorene::Binary::p_angu_mom

mutable protected

Total angular momentum of the system.

Definition at line 111 of file binary.h.

## p_ham_constr

double* Lorene::Binary::p_ham_constr

mutable protected

Relative error on the Hamiltonian constraint.

Definition at line 120 of file binary.h.

## p_mass_adm

double* Lorene::Binary::p_mass_adm

mutable protected

Total ADM mass of the system.

Definition at line 105 of file binary.h.

## p_mass_kom

double* Lorene::Binary::p_mass_kom

mutable protected

Total Komar mass of the system.

Definition at line 108 of file binary.h.

## p_mom_constr

Tbl* Lorene::Binary::p_mom_constr

mutable protected

Relative error on the momentum constraint.

Definition at line 123 of file binary.h.

## p_total_ener

double* Lorene::Binary::p_total_ener

mutable protected

Total energy of the system.

Definition at line 114 of file binary.h.

## p_virial

double* Lorene::Binary::p_virial

mutable protected

Virial theorem error.

Definition at line 117 of file binary.h.

## star1

Star_bin Lorene::Binary::star1

protected

First star of the system.

Definition at line 80 of file binary.h.

## star2

Star_bin Lorene::Binary::star2

protected

Second star of the system.

Definition at line 83 of file binary.h.

## x_axe

double Lorene::Binary::x_axe

protected

Absolute X coordinate of the rotation axis.

Definition at line 98 of file binary.h.

The documentation for this class was generated from the following files:

- binary.h
- binary.C
- binary_anashift.C
- binary_dirac.C
- binary_global.C
- binary_helical.C
- binary_omegaana.C
- binary_orbite.C