225#include "time_slice.h"
229#include "evolution.h"
232class Sym_tensor_trans ;
242class Time_slice_conf ;
403 bool partial_read,
int depth_in = 3) ;
658 void init_data(
int bound_nn,
double lim_nn,
int bound_psi,
int bound_beta,
659 int solve_lapse,
int solve_psi,
int solve_shift,
660 double precis = 1.e-12,
661 double relax_nn = 0.5,
double relax_psi = 0.5,
662 double relax_beta = 0.5,
int niter = 100) ;
664 void init_data_loop(
int bound_nn,
double lim_nn,
int bound_psi,
665 int bound_beta,
int solve_lapse,
int solve_psi,
666 int solve_shift,
double precis= 1.e-12,
667 double precis_loop= 1.e-12,
668 double relax_nn = 1.,
double relax_psi= 1.,
669 double relax_beta = 1.,
double relax_loop = 1.,
674 void init_data_spher(
int bound_nn,
double lim_nn,
int bound_psi,
675 int bound_beta,
int solve_lapse,
int solve_psi,
676 int solve_shift,
double precis = 1.e-12,
677 double relax = 1.,
int niter = 100) ;
679 void init_data_alt(
int bound_nn,
double lim_nn,
int bound_psi,
680 int bound_beta,
int solve_lapse,
int solve_psi,
681 int solve_shift,
double precis = 1.e-12,
682 double relax = 1.,
int niter = 100) ;
684 void init_data_CTS_gen(
int bound_nn,
double lim_nn,
int bound_psi,
int bound_beta,
685 int solve_lapse,
int solve_psi,
int solve_shift,
686 double precis = 1.e-12,
double relax_nn = 1.,
687 double relax_psi = 1.,
double relax_beta = 1.,
688 int niter = 100,
double a = 1.,
double zeta = 4.) ;
852 void aa_kerr_ww(
double mm,
double aa) ;
862 void adapt_hor(
double c_min,
double c_max) ;
869 virtual ostream&
operator>>(ostream& )
const ;
879 virtual void sauve(FILE* fich,
bool partial_save)
const ;
1283 const Valeur boundary_nn_Dir(
double aa)
const ;
1287 const Valeur boundary_nn_Neu(
double aa)
const ;
1290 const Valeur boundary_beta_x(
double om_orb,
double om_loc)
const ;
1293 const Valeur boundary_beta_y(
double om_orb,
double om_loc)
const ;
1296 const Valeur boundary_beta_z()
const ;
1331 virtual void sauve(FILE* fich)
const ;
1387 void sauve(FILE* fich)
const ;
1392 void write_global(ostream&,
double lim_nn,
int bound_nn,
1393 int bound_psi,
int bound_beta,
double alpha)
const ;
1404 { assert( (i==1) || (i==2) );
1405 return *
holes[i-1] ;} ;
const Single_hor&
operator()(
int i)
const 1418 { assert( (i==1) || (i==2) );
1419 return *
holes[i-1] ;} ;
1470 void set_statiques (
double precis,
double relax,
int bound_nn,
1471 double lim_nn,
int bound_psi) ;
1499 double coal (
double ang_vel,
double relax,
int nb_om,
1500 int nb_it,
int bound_nn,
double lim_nn,
1501 int bound_psi,
int bound_beta,
double omega_eff,
1503 ostream& fich_iteration, ostream& fich_correction,
1504 ostream& fich_viriel, ostream& fich_kss,
1505 int step,
int search_mass,
double mass_irr,
1506 const int sortie = 0) ;
1523 void solve_lapse (
double precis,
double relax,
int bound_nn,
1538 void solve_psi (
double precis,
double relax,
int bound_psi) ;
1553 void solve_shift (
double precis,
double relax,
int bound_beta,
double viriel() const
Computes the viriel error, that is the difference between the ADM and the Komar masses,...
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 subs...
double omega
Angular velocity.
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-Lindqu...
Single_hor hole1
Black hole one.
Single_hor * holes[2]
Array on the black holes.
Single_hor hole2
Black hole two.
double ang_mom_hor() const
Calculates the angular momentum of the black hole using the formula at the horizon.
void init_bin_hor()
Initialisation of the system.
double adm_mass() const
Calculates the ADM mass of the system.
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 value...
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 ang_mom_adm() const
Calculates the angular momentum of the black hole.
void sauve(FILE *fich) const
Total or partial saves in a binary file.
double komar_mass() const
Calculates the Komar mass of the system using : .
void decouple()
Calculates decouple which is used to obtain tkij_auto and tkij_comp.
void operator=(const Bin_hor &)
Affectation operator.
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 .
void set_hh_Samaya()
Calculation of the Post-Newtonian correction to .
Sym_tensor hh_Samaya_hole2()
Calculation of the hole2 part of the Post-Newtonian correction to .
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 ,...
virtual ~Bin_hor()
Destructor.
Single_hor & set(int i)
Read/write of a component of the system.
void set_omega(double ome)
Sets the orbital velocity to ome.
double proper_distance(const int nr=65) const
Calculation of the proper distance between the two spheres of inversion, along the x axis.
const Single_hor & operator()(int i) const
Read only of a component of the system.
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 extrinsic_curvature()
Calculation of the extrinsic curvature tensor.
Sym_tensor hh_Samaya_hole1()
Calculation of the hole1 part of the Post-Newtonian correction to .
double get_omega() const
Returns the angular velocity.
Time evolution with partial storage (*** under development ***).
Spacelike time-slice of an Isolated Horizon in a 3+1 spacetime with conformal decomposition.
virtual const Vector & dnn() const
Covariant derivative of the lapse function at the current time step jtime
Scalar expansion() const
Expansion of the outgoing null normal ( )
void met_kerr_perturb()
Initialisation of the metric tilde from equation (15) of Dain (2002).
const Map_af & get_mp() const
Returns the mapping (readonly).
void set_omega(double ome)
Sets the angular velocity to ome .
virtual const Scalar & aa_quad() const
Conformal representation .
Evolution_std< Sym_tensor > aa_nn
Values at successive time steps of the components .
virtual const Metric & tgam() const
Conformal metric Returns the value at the current time step (jtime ).
void init_bhole()
Sets the values of the fields to :
const Valeur boundary_vv_z_bin(double om, int hole=0) const
Component z of boundary value of .
const Valeur boundary_vv_y(double om) const
Component y of boundary value of .
Sym_tensor gamt_point
Time derivative of the 3-metric tilde.
const Valeur boundary_psi_Dir_evol() const
Dirichlet boundary condition for (evolution)
const Valeur boundary_psi_Dir_spat() const
Dirichlet boundary condition for (spatial)
const Vector source_beta() const
Source for .
double get_omega() const
Returns the angular velocity.
double regularise_one()
Corrects the shift in the innermost shell, so that it remains and that equals zero on the horizon.
Evolution_std< Scalar > aa_quad_evol
Values at successive time steps of the components .
double omega
Angular velocity in LORENE's units.
const Valeur boundary_nn_Neu_eff(double aa) const
Neumann boundary condition on nn (effectif)
double regul
Intensity of the correction on the shift vector.
const Valeur boundary_vv_x(double om) const
Component x of boundary value of .
const Valeur boundary_beta_y(double om) const
Component y of boundary value of .
const Valeur boundary_psi_app_hor() const
Neumann boundary condition for (spatial)
virtual const Scalar & n_comp() const
Lapse function at the current time step jtime.
const Vector source_vector_b() const
Source for vector_b.
Scalar trK
Trace of the extrinsic curvature.
virtual ostream & operator>>(ostream &) const
Operator >> (virtual function called by the operator<<).
const Valeur boundary_beta_x(double om) const
Component x of boundary value of .
const Scalar darea_hor() const
Element of area of the horizon.
Metric met_gamt
3 metric tilde
const Valeur boundary_nn_Neu_Cook() const
Neumann boundary condition for N using Cook's boundary condition.
const Valeur boundary_b_tilde_Neu() const
Neumann boundary condition for b_tilde.
const Scalar b_tilde() const
Radial component of the shift with respect to the conformal metric.
const Scalar source_psi() const
Source for .
Evolution_std< Vector > dpsi_evol
Values at successive time steps of the covariant derivative of the conformal factor .
const Valeur beta_boost_x() const
Boundary value for a boost in x-direction.
Evolution_std< Scalar > psi_auto_evol
Values at successive time steps of the conformal factor .
const Valeur boundary_beta_r() const
Component r of boundary value of .
const Valeur boundary_vv_z(double om) const
Component z of boundary value of .
const Valeur boundary_vv_y_bin(double om, int hole=0) const
Component y of boundary value of .
double ang_mom_hor() const
Angular momentum (modulo)
void set_boost_z(double bo)
Sets the boost velocity in z-direction to bo .
Evolution_std< Sym_tensor > aa_comp_evol
Values at successive time steps of the components of the conformal representation of the traceless p...
void set_psi(const Scalar &psi_in)
Sets the conformal factor relating the physical metric to the conformal one: .
double viriel_seul() const
Computes the viriel error, that is the difference between the ADM and the Komar masses,...
virtual const Vector & beta_comp() const
Shift function at the current time step jtime.
void init_met_trK()
Sets the 3-metric tilde to the flat metric and gamt_point, trK and trK_point to zero.
Scalar trK_point
Time derivative of the trace of the extrinsic curvature.
Evolution_std< Vector > beta_auto_evol
Values at successive time steps of the shift function .
virtual const Vector & dpsi() const
Covariant derivative with respect to the flat metric of the conformal factor at the current time ste...
void set_nn(const Scalar &nn_in)
Sets the lapse.
const Valeur boundary_nn_Dir_lapl(int mer=1) const
Dirichlet boundary condition for N fixing the divergence of the connection form .
double boost_z
Boost velocity in z-direction.
const Valeur boundary_beta_theta() const
Component theta of boundary value of .
virtual const Scalar & psi_auto() const
Conformal factor at the current time step jtime.
const Valeur beta_boost_z() const
Boundary value for a boost in z-direction.
const Valeur boundary_vv_x_bin(double om, int hole=0) const
Component x of boundary value of .
double ang_mom_adm() const
ADM angular Momentum
virtual const Sym_tensor & aa_comp() const
Conformal representation of the traceless part of the extrinsic curvature: Returns the value at the ...
void set_radius(double rad)
Sets the radius of the horizon to rad .
const Vector vv_bound_cart(double om) const
Vector for boundary conditions in cartesian
Scalar decouple
Function used to construct from the total .
double kappa_hor() const
Surface gravity
void update_aa()
Conformal representation of the traceless part of the extrinsic curvature: .
const Valeur boundary_beta_z() const
Component z of boundary value of .
virtual const Scalar & n_auto() const
Lapse function at the current time step jtime.
virtual ~Isol_hor()
Destructor.
double radius
Radius of the horizon in LORENE's units.
virtual const Sym_tensor & aa_auto() const
Conformal representation of the traceless part of the extrinsic curvature: Returns the value at the ...
const Scalar get_decouple() const
Returns the function used to construct tkij_auto from tkij_tot .
const Valeur boundary_nn_Dir_kk() const
Dirichlet boundary condition for N using the extrinsic curvature.
double mass_hor() const
Mass computed at the horizon
void init_bhole_seul()
Initiates for a single black hole.
Evolution_std< Sym_tensor > aa_auto_evol
Values at successive time steps of the components of the conformal representation of the traceless p...
void set_gamt(const Metric &gam_tilde)
Sets the conformal metric to gam_tilde.
double radius_hor() const
Radius of the horizon.
double get_boost_x() const
Returns the boost velocity in x-direction.
const Vector tradial_vect_hor() const
Vector radial normal tilde.
Map_af & mp
Affine mapping.
const Valeur boundary_psi_Neu_spat() const
Neumann boundary condition for (spatial)
const Valeur boundary_beta_phi(double om) const
Component phi of boundary value of .
virtual const Scalar & psi_comp() const
Conformal factor at the current time step jtime.
const Vector radial_vect_hor() const
Vector radial normal.
double axi_break() const
Breaking of the axial symmetry on the horizon.
double get_boost_z() const
Returns the boost velocity in z-direction.
Evolution_std< Scalar > n_auto_evol
Values at successive time steps of the lapse function .
Evolution_std< Scalar > n_comp_evol
Values at successive time steps of the lapse function .
void set_boost_x(double bo)
Sets the boost velocity in x-direction to bo .
const Valeur boundary_nn_Dir_eff(double aa) const
Dirichlet boundary condition for N (effectif) .
Evolution_std< Vector > dn_evol
Values at successive time steps of the covariant derivative of the lapse with respect to the flat met...
double regularisation(const Vector &shift_auto, const Vector &shift_comp, double ang_vel)
Corrects shift_auto in such a way that the total is equal to zero in the horizon,...
const Valeur boundary_nn_Dir(double aa) const
Dirichlet boundary condition .
const Valeur boundary_nn_Neu_kk(int nn=1) const
Neumann boundary condition for N using the extrinsic curvature.
double boost_x
Boost velocity in x-direction.
const Valeur boundary_psi_Dir() const
Dirichlet boundary condition for (spatial)
void operator=(const Isol_hor &)
Assignment to another Isol_hor.
Evolution_std< Vector > beta_comp_evol
Values at successive time steps of the shift function .
double area_hor() const
Area of the horizon.
const Valeur boundary_b_tilde_Dir() const
Dirichlet boundary condition for b_tilde.
const Valeur boundary_psi_Neu_evol() const
Neumann boundary condition for (evolution)
const Vector vv_bound_cart_bin(double om, int hole=0) const
Vector for boundary conditions in cartesian for binary systems.
const Scalar source_nn() const
Source for N.
virtual const Vector & beta_auto() const
Shift function at the current time step jtime.
virtual void sauve(FILE *fich, bool partial_save) const
Total or partial saves in a binary file.
Map_af & set_mp()
Read/write of the mapping.
double omega_hor() const
Orbital velocity
double get_radius() const
Returns the radius of the horizon.
Evolution_std< Scalar > psi_comp_evol
Values at successive time steps of the lapse function .
const Scalar source_b_tilde() const
Source for b_tilde.
Flat metric for tensor calculation.
Metric for tensor calculation.
Tensor field of valence 0 (or component of a tensorial field).
Binary black holes system.
double radius_hor() const
Radius of the horizon.
Vector dpsi
Covariant derivative of the conformal factor .
Scalar psi_auto
Conformal factor .
double radius
Radius of the horizon in LORENE's units.
const Metric & get_gam() const
metric
Scalar trK_point
Time derivative of the trace of the extrinsic curvature.
const Scalar darea_hor() const
Element of area of the horizon.
const Valeur boundary_psi_app_hor() const
Neumann boundary condition for.
Scalar decouple
Function used to construct from the total .
Vector beta_auto
Shift function .
void beta_comp_import(const Single_hor &comp)
Imports the part of due to the companion hole comp.
void set_psi_auto(const Scalar &psi_in)
Sets the conformal factor relating the physical metric to the conformal one: .
double mass_hor() const
Mass computed at the horizon
Scalar n_comp
Lapse function .
const Sym_tensor & get_k_dd() const
k_dd
void operator=(const Single_hor &)
Assignment to another Single_hor.
void set_omega(double ome)
Sets the angular velocity to ome .
Sym_tensor aa_auto
Components of the conformal representation of the traceless part of the extrinsic curvature:
const Scalar & get_psi_comp() const
Conformal factor .
void set_beta_auto(const Scalar &shift_in)
Sets the shift.
const Scalar & get_psi4() const
Conformal factor .
void set_n_auto(const Scalar &nn_in)
Sets the lapse.
const Scalar & get_n_auto() const
Lapse function .
const Scalar & get_n_comp() const
Lapse function .
Metric_flat ff
3 metric flat
Scalar psi
Conformal factor .
Map_af & mp
Affine mapping.
const Vector & get_dpsi() const
Covariant derivative with respect to the flat metric of the conformal factor .
void set_radius(double rad)
Sets the radius of the horizon to rad .
const Vector & get_beta_comp() const
Shift function .
void init_met_trK()
Sets the 3-metric tilde to the flat metric and gamt_point, trK and trK_point to zero.
double area_hor() const
Area of the horizon.
void init_bhole()
Sets the values of the fields to :
Scalar expansion() const
Expansion of the outgoing null normal ( )
double ang_mom_adm() const
ADM angular Momentum
const Scalar & get_nn() const
Lapse function .
Scalar * p_psi4
Conformal factor .
Vector dn
Covariant derivative of the lapse with respect to the flat metric .
double viriel_seul() const
Computes the viriel error, that is the difference between the ADM and the Komar masses,...
void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
const Vector & get_beta_auto() const
Shift function .
const Sym_tensor & get_aa() const
Conformal representation of the traceless part of the extrinsic curvature:
const Vector & get_beta() const
Shift function .
void set_aa_comp(const Scalar &aa_comp_in)
Sets aa_comp.
double regularisation(const Vector &shift_auto, const Vector &shift_comp, double ang_vel)
Corrects shift_auto in such a way that the total is equal to zero in the horizon,...
void init_bhole_seul()
Initiates for a single black hole.
double kappa_hor() const
Surface gravity
Sym_tensor aa_comp
Components of the conformal representation of the traceless part of the extrinsic curvature:
const Map_af & get_mp() const
Returns the mapping (readonly).
void del_deriv() const
Deletes all the derived quantities.
void set_aa(const Scalar &aa_in)
Sets aa.
double regul
Intensity of the correction on the shift vector.
Vector beta_comp
Shift function .
double ang_mom_hor() const
Angular momentum (modulo)
Sym_tensor gamt_point
Time derivative of the 3-metric tilde.
Map_af & set_mp()
Read/write of the mapping.
double omega_hor() const
Orbital velocity
const Sym_tensor & get_aa_comp() const
Conformal representation of the traceless part of the extrinsic curvature:
const Vector & get_dn() const
Covariant derivative of the lapse function .
virtual ~Single_hor()
Destructor.
double omega
Angular velocity in LORENE's units.
virtual void sauve(FILE *fich) const
Total or partial saves in a binary file.
void set_aa_auto(const Scalar &aa_auto_in)
Sets aa_auto.
double get_radius() const
Returns the radius of the horizon.
Metric * p_gam
Spatial metric .
const Scalar get_decouple() const
Returns the function used to construct tkij_auto from tkij_tot .
void n_comp_import(const Single_hor &comp)
Imports the part of N due to the companion hole comp .
Scalar n_auto
Lapse function .
double regularise_one()
Corrects the shift in the innermost shell, so that it remains and that equals zero on the horizon.
Scalar nn
Lapse function .
const Sym_tensor & get_aa_auto() const
Conformal representation of the traceless part of the extrinsic curvature:
const Scalar & get_psi() const
Conformal factor .
Sym_tensor * p_k_dd
Components of the extrinsic curvature:
const Scalar & get_psi_auto() const
Conformal factor
Sym_tensor hh
Deviation metric.
double get_omega() const
Returns the angular velocity.
Sym_tensor aa
Components of the conformal representation of the traceless part of the extrinsic curvature:
Vector beta
Shift function .
const Metric & get_tgam() const
Conformal metric .
const Scalar b_tilde() const
Radial component of the shift with respect to the conformal metric.
Scalar trK
Trace of the extrinsic curvature.
Scalar psi_comp
Conformal factor .
void psi_comp_import(const Single_hor &comp)
Imports the part of due to the companion hole comp .
Metric tgam
3 metric tilde
Class intended to describe valence-2 symmetric tensors.
Spacelike time slice of a 3+1 spacetime with conformal decomposition.
virtual const Scalar & nn() const
Lapse function N at the current time step (jtime )
virtual Sym_tensor aa() const
Conformal representation of the traceless part of the extrinsic curvature: .
Values and coefficients of a (real-value) function.
Tensor field of valence 1.