Lorene::Bin_hor Class Reference

## Public Member Functions

| Bin_hor (Map_af &mp1, Map_af &mp2)
| Standard constructor.
| Bin_hor (const Bin_hor &)
| Copy constructor.
| Bin_hor (Map_af &mp1, Map_af &mp2, FILE *fich)
| Constructor from a binary file.
virtual | ~Bin_hor ()
| Destructor.
void | sauve (FILE *fich) const
| Total or partial saves in a binary file.
void | write_global (ostream &, double lim_nn, int bound_nn, int bound_psi, int bound_beta, double alpha) const
| Write global quantities in a formatted file.
void | operator= (const Bin_hor &)
| Affectation operator.
Single_hor & | set (int i)
| Read/write of a component of the system.
void | set_omega (double ome)
| Sets the orbital velocity to `ome`.
const Single_hor & | operator() (int i) const
| Read only of a component of the system.
double | get_omega () const
| Returns the angular velocity.
void | init_bin_hor ()
| Initialisation of the system.
double | viriel () const
| Computes the viriel error, that is the difference between the ADM and the Komar masses, calculated by the asymptotic behaviours of respectively and N .
void | extrinsic_curvature ()
| Calculation of the extrinsic curvature tensor.
void | decouple ()
| Calculates `decouple` which is used to obtain `tkij_auto` and `tkij_comp`.
void | set_statiques (double precis, double relax, int bound_nn, double lim_nn, int bound_psi)
| Initialize the systeme to Misner Lindquist solution, that is solving for N and in the case .
double | coal (double ang_vel, double relax, int nb_om, int nb_it, int bound_nn, double lim_nn, int bound_psi, int bound_beta, double omega_eff, double alpha, ostream &fich_iteration, ostream &fich_correction, ostream &fich_viriel, ostream &fich_kss, int step, int search_mass, double mass_irr, const int sortie=0)
| Solves the equation for a particular angular velocity, the systeme being initialized to Misner-Lindquist solution.
void | solve_lapse (double precis, double relax, int bound_nn, double lim_nn)
| Solves the equation for the lapse : The fields are the total values except those with subscript , which are the fields generated by each holes (a = 1, 2).
void | solve_psi (double precis, double relax, int bound_psi)
| Solves the equation for the conformal factor : The fields are the total values excpet those with subscript , which are the fields generated by each holes (a = 1, 2).
void | solve_shift (double precis, double relax, int bound_beta, double omega_eff)
| Solves the equation for the shift, using the Oohara-Nakarmure scheme : The fields are the total values excpet those with subscript , which are the fields generated by each holes (`a` = 1, 2).
void | import_bh (const Bin_hor &bin)
| Function to initialize a Bin_hor from a solution computed with a smaller number of colocation points.
double | adm_mass () const
| Calculates the ADM mass of the system.
double | komar_mass () const
| Calculates the Komar mass of the system using : .
double | ang_mom_hor () const
| Calculates the angular momentum of the black hole using the formula at the horizon.
double | ang_mom_adm () const
| Calculates the angular momentum of the black hole.
double | proper_distance (const int nr=65) const
| Calculation of the proper distance between the two spheres of inversion, along the x axis.
Sym_tensor | hh_Samaya_hole1 ()
| Calculation of the hole1 part of the Post-Newtonian correction to .
Sym_tensor | hh_Samaya_hole2 ()
| Calculation of the hole2 part of the Post-Newtonian correction to .
void | set_hh_Samaya ()
| Calculation of the Post-Newtonian correction to .

## Private Attributes

Single_hor | hole1
| Black hole one.
Single_hor | hole2
| Black hole two.
Single_hor * | holes [2]
| Array on the black holes.
double | omega
| Angular velocity.

## Detailed Description

Definition at line 1337 of file isol_hor.h.

## Constructor & Destructor Documentation

## Bin_hor() [1/3]

Lorene::Bin_hor::Bin_hor | ( | Map_af & | mp1,
|  | Map_af & | mp2 )

Standard constructor.

Parameters

  mp1 | affine mapping for the first black hole
  mp2 | affine mapping for the second black hole
  depth_in | number of stored time slices; this parameter is used to set the `scheme_order` member with `scheme_order` = `depth_in` - 1. `scheme_order` can be changed afterwards by the method `set_scheme_order(int)`.

Definition at line 97 of file bin_hor.C.

References hole1, hole2, holes, and omega.

## Bin_hor() [2/3]

Lorene::Bin_hor::Bin_hor | ( | const Bin_hor & | source | ) |

Copy constructor.

Definition at line 107 of file bin_hor.C.

References Bin_hor(), hole1, hole2, holes, and omega.

## Bin_hor() [3/3]

Lorene::Bin_hor::Bin_hor | ( | Map_af & | mp1,
|  | Map_af & | mp2,
|  | FILE * | fich )

Constructor from a binary file.

Parameters

  mp1 | affine mapping of the first black hole
  mp2 | affine mapping of the second black hole
  fich | file containing the saved `Bin_hor`
  partial_read | indicates whether the full object must be read in file or whether the final construction is devoted to a constructor of a derived class
  depth_in | number of stored time slices; this parameter is used to set the `scheme_order` member with `scheme_order` = `depth_in` - 1. `scheme_order` can be changed afterwards by the method `set_scheme_order(int)`.

Definition at line 117 of file bin_hor.C.

References Lorene::fread_be(), hole1, hole2, holes, and omega.

## ~Bin_hor()

Lorene::Bin_hor::~Bin_hor | ( |  | ) |

virtual

Destructor.

Definition at line 132 of file bin_hor.C.

## Member Function Documentation

## adm_mass()

double Lorene::Bin_hor::adm_mass | ( |  | ) | const

Calculates the ADM mass of the system.

Definition at line 83 of file binhor_global.C.

References Lorene::contract(), Lorene::Vector::flux(), hole1, and hole2.

## ang_mom_adm()

double Lorene::Bin_hor::ang_mom_adm | ( |  | ) | const

Calculates the angular momentum of the black hole.

Definition at line 184 of file binhor_global.C.

References Lorene::Tensor::annule(), Lorene::Vector::change_triad(), Lorene::Tensor::dec_dzpuis(), Lorene::Scalar::get_spectral_va(), hole1, hole2, Lorene::Scalar::import(), Lorene::Tensor::inc_dzpuis(), Lorene::Map_af::integrale_surface_infini(), Lorene::Valeur::mult_cp(), Lorene::Scalar::mult_r_ced(), Lorene::Valeur::mult_sp(), Lorene::Valeur::mult_st(), omega, Lorene::Vector::ope_killing_conf(), Lorene::Tensor::set(), Lorene::Vector::set(), Lorene::Scalar::set_spectral_va(), and Lorene::Vector::std_spectral_base().

## ang_mom_hor()

double Lorene::Bin_hor::ang_mom_hor | ( |  | ) | const

Calculates the angular momentum of the black hole using the formula at the horizon.

Definition at line 118 of file binhor_global.C.

References Lorene::Tensor::annule_domain(), Lorene::Tensor::change_triad(), Lorene::Vector::change_triad(), hole1, hole2, omega, Lorene::Vector::set(), and Lorene::Scalar::std_spectral_base().

## coal()

double Lorene::Bin_hor::coal | ( | double | ang_vel,
|  | double | relax,
|  | int | nb_om,
|  | int | nb_it,
|  | int | bound_nn,
|  | double | lim_nn,
|  | int | bound_psi,
|  | int | bound_beta,
|  | double | omega_eff,
|  | double | alpha,
|  | ostream & | fich_iteration,
|  | ostream & | fich_correction,
|  | ostream & | fich_viriel,
|  | ostream & | fich_kss,
|  | int | step,
|  | int | search_mass,
|  | double | mass_irr,
|  | const int | sortie = 0 )

Solves the equation for a particular angular velocity, the systeme being initialized to Misner-Lindquist solution.

Parameters

  angu | [input] : angular velocity used for the boundary condition on .
  relax | [input] : relaxation parameter.
  nb_om | [input] : number of intermediates velocities to go from 0 to `omega` , typically 10.
  nb_it | [input] : number of iteration when omega is fixed
  bound_nn | [input] : type of the boundary condition for the lapse.
  lim_nn | [input] : value (double) of the coefficient for the boundary condition. Only used for boundary_nn_Dir(double), boundary_nn_Neu_eff(double) and boundary_nn_Dir_eff(double).
  bound_psi | [input] : type of the boundary condition for psi.
  bound_nn | [input] : type of the boundary condition for the shift.
  step | current step of the iteration
  sortie | [input] : flag for the output on files (0 no output files).

Returns
  : the virial error.

Definition at line 133 of file binhor_coal.C.

References ang_mom_hor(), Lorene::contract(), Lorene::diffrelmax(), extrinsic_curvature(), get_omega(), hole1, hole2, Lorene::log10(), Lorene::pow(), set_omega(), solve_lapse(), solve_psi(), solve_shift(), Lorene::sqrt(), Lorene::Scalar::val_grid_point(), and viriel().

## decouple()

void Lorene::Bin_hor::decouple | ( |  | ) |

Calculates `decouple` which is used to obtain `tkij_auto` and `tkij_comp`.

Definition at line 473 of file binhor_kij.C.

References Lorene::Scalar::allocate_all(), Lorene::cos(), hole1, hole2, Lorene::phi, Lorene::pow(), Lorene::Scalar::set_grid_point(), Lorene::sin(), Lorene::Scalar::std_spectral_base(), Lorene::Scalar::val_grid_point(), and Lorene::Scalar::val_point().

## extrinsic_curvature()

void Lorene::Bin_hor::extrinsic_curvature | ( |  | ) |

Calculation of the extrinsic curvature tensor.

`aa_auto_evol` and `aa_auto_comp` are also computed.

Definition at line 88 of file binhor_kij.C.

References Lorene::Tensor::change_triad(), Lorene::Scalar::dec_dzpuis(), Lorene::Tensor::dec_dzpuis(), Lorene::Scalar::get_etat(), Lorene::Tensor::get_mp(), Lorene::Tensor::get_triad(), hole1, hole2, Lorene::Scalar::import(), Lorene::Scalar::inc_dzpuis(), Lorene::Tensor::inc_dzpuis(), Lorene::phi, Lorene::Scalar::raccord(), Lorene::Tensor::set(), Lorene::Valeur::set_base(), Lorene::Tensor::set_etat_qcq(), Lorene::Scalar::set_grid_point(), Lorene::Scalar::set_spectral_va(), Lorene::Tensor::std_spectral_base(), Lorene::Scalar::val_grid_point(), and Lorene::Scalar::val_point().

## get_omega()

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

inline

Returns the angular velocity.

Definition at line 1422 of file isol_hor.h.

References omega.

## hh_Samaya_hole1()

Sym_tensor Lorene::Bin_hor::hh_Samaya_hole1 | ( |  | ) |

Calculation of the hole1 part of the Post-Newtonian correction to .

Definition at line 63 of file binhor_hh.C.

References Lorene::Tensor::annule_domain(), Lorene::Vector::change_triad(), Lorene::Scalar::domain(), Lorene::exp(), Lorene::Valeur::get_base(), Lorene::Scalar::get_spectral_va(), hole1, hole2, Lorene::Scalar::import(), Lorene::Scalar::raccord(), Lorene::Tensor::set(), Lorene::Vector::set(), Lorene::Valeur::set_base(), Lorene::Scalar::set_domain(), Lorene::Scalar::set_etat_qcq(), Lorene::Tensor::set_etat_qcq(), Lorene::Scalar::set_grid_point(), Lorene::Scalar::set_outer_boundary(), Lorene::Scalar::set_spectral_va(), Lorene::sqrt(), Lorene::Scalar::std_spectral_base(), and Lorene::Vector::std_spectral_base().

## hh_Samaya_hole2()

Sym_tensor Lorene::Bin_hor::hh_Samaya_hole2 | ( |  | ) |

Calculation of the hole2 part of the Post-Newtonian correction to .

Definition at line 453 of file binhor_hh.C.

References Lorene::Tensor::annule_domain(), Lorene::Vector::change_triad(), Lorene::Scalar::domain(), Lorene::exp(), Lorene::Valeur::get_base(), Lorene::Scalar::get_spectral_va(), hole1, hole2, Lorene::Scalar::import(), Lorene::Scalar::raccord(), Lorene::Tensor::set(), Lorene::Vector::set(), Lorene::Valeur::set_base(), Lorene::Scalar::set_domain(), Lorene::Scalar::set_etat_qcq(), Lorene::Tensor::set_etat_qcq(), Lorene::Scalar::set_grid_point(), Lorene::Scalar::set_outer_boundary(), Lorene::Scalar::set_spectral_va(), Lorene::sqrt(), Lorene::Scalar::std_spectral_base(), and Lorene::Vector::std_spectral_base().

## import_bh()

void Lorene::Bin_hor::import_bh | ( | const Bin_hor & | bin | ) |

Function to initialize a Bin_hor from a solution computed with a smaller number of colocation points.

References Bin_hor().

## init_bin_hor()

void Lorene::Bin_hor::init_bin_hor | ( |  | ) |

Initialisation of the system.

Each hole is set close to a Schwarzschild one and the parts of the fields generated by the companion are calculated.

The angular velocity is set to zero.

Definition at line 161 of file bin_hor.C.

References decouple(), extrinsic_curvature(), hole1, hole2, and set_omega().

## komar_mass()

double Lorene::Bin_hor::komar_mass | ( |  | ) | const

Calculates the Komar mass of the system using : .

Definition at line 101 of file binhor_global.C.

References Lorene::contract(), Lorene::Vector::flux(), hole1, and hole2.

## operator()()

const Single_hor & Lorene::Bin_hor::operator() | ( | int | i | ) | const

inline

Read only of a component of the system.

`i` must be equal to 1 or 2.

Definition at line 1417 of file isol_hor.h.

References holes.

## operator=()

void Lorene::Bin_hor::operator= | ( | const Bin_hor & | source | ) |

Affectation operator.

Definition at line 139 of file bin_hor.C.

References Bin_hor(), hole1, hole2, and omega.

## proper_distance()

double Lorene::Bin_hor::proper_distance | ( | const int | nr = 65 | ) | const

Calculation of the proper distance between the two spheres of inversion, along the x axis.

Parameters

  nr | [input] : number of points used for the calculation.

## sauve()

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

Total or partial saves in a binary file.

Parameters

  fich | binary file
  partial_save | indicates whether the whole object must be saved.

Definition at line 151 of file bin_hor.C.

References Lorene::fwrite_be(), hole1, hole2, and omega.

## set()

Single_hor & Lorene::Bin_hor::set | ( | int | i | ) |

inline

Read/write of a component of the system.

`i` must be equal to 1 or 2.

Definition at line 1403 of file isol_hor.h.

References holes.

## set_hh_Samaya()

void Lorene::Bin_hor::set_hh_Samaya | ( |  | ) |

Calculation of the Post-Newtonian correction to .

Definition at line 786 of file binhor_hh.C.

References Lorene::Cmp::annule(), Lorene::Tensor::change_triad(), hh_Samaya_hole1(), hh_Samaya_hole2(), hole1, hole2, Lorene::Scalar::import(), Lorene::pow(), Lorene::Scalar::raccord(), Lorene::Tensor::set(), Lorene::Valeur::set_base(), Lorene::Tensor::set_etat_qcq(), Lorene::Scalar::set_spectral_va(), and Lorene::Cmp::std_base_scal().

## set_omega()

void Lorene::Bin_hor::set_omega | ( | double | ome | ) |

inline

Sets the orbital velocity to `ome`.

Definition at line 1409 of file isol_hor.h.

References hole1, hole2, and omega.

## set_statiques()

void Lorene::Bin_hor::set_statiques | ( | double | precis,
|  | double | relax,
|  | int | bound_nn,
|  | double | lim_nn,
|  | int | bound_psi )

Initialize the systeme to Misner Lindquist solution, that is solving for N and in the case .

Parameters

  precis | [input] : precision for the convergence (on N ).
  relax | [input] : relaxation parameter.
  bound_nn | [input] : type of the boundary condition for the lapse.
  lim_nn | [input] : value (double) of the coefficient for the boundary condition. Only used for boundary_nn_Dir(double), boundary_nn_Neu_eff(double) and boundary_nn_Dir_eff(double).
  bound_psi | [input] : type of the boundary condition for psi.

Definition at line 96 of file binhor_coal.C.

References Lorene::diffrelmax(), extrinsic_curvature(), hole1, hole2, init_bin_hor(), set_omega(), solve_lapse(), and solve_psi().

## solve_lapse()

void Lorene::Bin_hor::solve_lapse | ( | double | precis,
|  | double | relax,
|  | int | bound_nn,
|  | double | lim_nn )

Solves the equation for the lapse : The fields are the total values except those with subscript , which are the fields generated by each holes (a = 1, 2).

Parameters

  precis | [input] : precision, for the boudary conditions are obtained by iteration.
  relax | [input] : relaxation parameter.
  bound_nn | [input] : type of the boundary condition at the horizon.
  lim_nn | [input] : value (double) of the coefficient for the boundary condition. Only used for boundary_nn_Dir(double), boundary_nn_Neu_eff(double) and boundary_nn_Dir_eff(double).

Definition at line 124 of file binhor_equations.C.

References Lorene::contract(), Lorene::diffrel(), hole1, hole2, Lorene::Scalar::inc_dzpuis(), Lorene::Scalar::laplacian(), Lorene::norme(), and Lorene::Scalar::raccord().

## solve_psi()

void Lorene::Bin_hor::solve_psi | ( | double | precis,
|  | double | relax,
|  | int | bound_psi )

Solves the equation for the conformal factor : The fields are the total values excpet those with subscript , which are the fields generated by each holes (a = 1, 2).

Parameters

  precis | [input] : precision, for the boudary conditions are being obtained by iteration.
  relax | [input] : relaxation parameter.
  bound_psi | [input] : type of the boundary condition at the horizon.

Definition at line 301 of file binhor_equations.C.

References Lorene::contract(), Lorene::diffrel(), hole1, hole2, Lorene::Scalar::inc_dzpuis(), Lorene::Scalar::laplacian(), Lorene::norme(), Lorene::Scalar::raccord(), and Lorene::Scalar::std_spectral_base().

## solve_shift()

void Lorene::Bin_hor::solve_shift | ( | double | precis,
|  | double | relax,
|  | int | bound_beta,
|  | double | omega_eff )

Solves the equation for the shift, using the Oohara-Nakarmure scheme : The fields are the total values excpet those with subscript , which are the fields generated by each holes (`a` = 1, 2).

Parameters

  precis | [input] : precision for the solver, the boundary conditions and the inversion of the operator being obtained by iteration.
  relax | [input] : relaxation parameter.
  bound_beta | [input] : type of the boundary condition at the horizon.

Definition at line 453 of file binhor_equations.C.

References Lorene::Tensor::annule_domain(), Lorene::Scalar::annule_hard(), Lorene::Vector::change_triad(), Lorene::contract(), Lorene::Tensor::dec_dzpuis(), Lorene::Scalar::derive_con(), Lorene::Tensor::derive_con(), Lorene::Tensor::derive_lie(), Lorene::diffrel(), Lorene::Vector::divergence(), Lorene::Scalar::filtre(), hole1, hole2, Lorene::Tensor::inc_dzpuis(), Lorene::norme(), omega, Lorene::Scalar::raccord(), Lorene::Vector::set(), Lorene::Valeur::set_base(), Lorene::Scalar::set_spectral_va(), and Lorene::Vector::std_spectral_base().

## viriel()

double Lorene::Bin_hor::viriel | ( |  | ) | const

Computes the viriel error, that is the difference between the ADM and the Komar masses, calculated by the asymptotic behaviours of respectively and N .

Definition at line 71 of file binhor_viriel.C.

References hole1, and hole2.

## write_global()

void Lorene::Bin_hor::write_global | ( | ostream & | ost,
|  | double | lim_nn,
|  | int | bound_nn,
|  | int | bound_psi,
|  | int | bound_beta,
|  | double | alpha ) const

Write global quantities in a formatted file.

This file can be read by an external program.

Definition at line 178 of file bin_hor.C.

References adm_mass(), ang_mom_adm(), ang_mom_hor(), Lorene::Scalar::annule_hard(), Lorene::Vector::change_triad(), Lorene::contract(), hole1, hole2, komar_mass(), omega, Lorene::pow(), Lorene::Vector::set(), Lorene::Valeur::set_base(), Lorene::Scalar::set_spectral_va(), Lorene::sqrt(), and Lorene::Vector::std_spectral_base().

## Member Data Documentation

## hole1

Single_hor Lorene::Bin_hor::hole1

private

Black hole one.

Definition at line 1342 of file isol_hor.h.

## hole2

Single_hor Lorene::Bin_hor::hole2

private

Black hole two.

Definition at line 1343 of file isol_hor.h.

## holes

Single_hor* Lorene::Bin_hor::holes[2]

private

Array on the black holes.

Definition at line 1346 of file isol_hor.h.

## omega

double Lorene::Bin_hor::omega

private

Angular velocity.

Definition at line 1348 of file isol_hor.h.

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

- isol_hor.h
- bin_hor.C
- binhor_coal.C
- binhor_equations.C
- binhor_global.C
- binhor_hh.C
- binhor_kij.C
- binhor_viriel.C