225 #include "time_slice.h" 229 #include "evolution.h" 232 class Sym_tensor_trans ;
242 class 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] ;} ;
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,
void decouple()
Calculates decouple which is used to obtain tkij_auto and tkij_comp.
void set_radius(double rad)
Sets the radius of the horizon to rad .
virtual const Vector & beta_comp() const
Shift function at the current time step jtime.
double area_hor() const
Area of the horizon.
void beta_comp_import(const Single_hor &comp)
Imports the part of due to the companion hole comp.
Evolution_std< Scalar > n_comp_evol
Values at successive time steps of the lapse function .
const Vector radial_vect_hor() const
Vector radial normal.
Metric for tensor calculation.
const Valeur boundary_psi_Dir_evol() const
Dirichlet boundary condition for (evolution)
const Valeur boundary_psi_Dir_spat() const
Dirichlet boundary condition for (spatial)
double regul
Intensity of the correction on the shift vector.
const Valeur boundary_vv_z(double om) const
Component z of boundary value of .
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 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.
const Metric & get_gam() const
metric
double omega_hor() const
Orbital velocity.
double omega
Angular velocity.
double omega
Angular velocity in LORENE's units.
Vector dn
Covariant derivative of the lapse with respect to the flat metric .
double ang_mom_hor() const
Calculates the angular momentum of the black hole using the formula at the horizon.
Metric tgam
3 metric tilde
virtual ~Isol_hor()
Destructor.
double get_omega() const
Returns the angular velocity.
Evolution_std< Scalar > n_auto_evol
Values at successive time steps of the lapse function .
void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
Evolution_std< Scalar > psi_comp_evol
Values at successive time steps of the lapse function .
void extrinsic_curvature()
Calculation of the extrinsic curvature tensor.
const Vector source_vector_b() const
Source for vector_b.
Evolution_std< Vector > beta_auto_evol
Values at successive time steps of the shift function .
const Valeur boundary_nn_Dir(double aa) const
Dirichlet boundary condition .
const Single_hor & operator()(int i) const
Read only of a component of the system.
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 .
double kappa_hor() const
Surface gravity.
const Valeur boundary_nn_Dir_lapl(int mer=1) const
Dirichlet boundary condition for N fixing the divergence of the connection form . ...
double area_hor() const
Area of the horizon.
const Valeur boundary_nn_Dir_eff(double aa) const
Dirichlet boundary condition for N (effectif) .
const Valeur boundary_beta_x(double om) const
Component x of boundary value of .
Sym_tensor gamt_point
Time derivative of the 3-metric tilde.
const Sym_tensor & get_k_dd() const
k_dd
Scalar decouple
Function used to construct from the total .
const Scalar & get_psi() const
Conformal factor .
const Map_af & get_mp() const
Returns the mapping (readonly).
double ang_mom_hor() const
Angular momentum (modulo)
double radius
Radius of the horizon in LORENE's units.
void update_aa()
Conformal representation of the traceless part of the extrinsic curvature: .
Flat metric for tensor calculation.
Scalar n_comp
Lapse function .
void operator=(const Isol_hor &)
Assignment to another Isol_hor.
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, which should ensure the regularity of .
Tensor field of valence 0 (or component of a tensorial field).
const Valeur boundary_nn_Dir_kk() const
Dirichlet boundary condition for N using the extrinsic curvature.
const Vector vv_bound_cart(double om) const
Vector for boundary conditions in cartesian.
const Valeur boundary_vv_y(double om) const
Component y of boundary value of .
const Vector & get_beta_comp() const
Shift function .
double kappa_hor() const
Surface gravity.
Map_af & set_mp()
Read/write of the mapping.
double omega
Angular velocity in LORENE's units.
Single_hor hole1
Black hole one.
void set_boost_z(double bo)
Sets the boost velocity in z-direction to bo .
const Scalar & get_psi4() const
Conformal factor .
const Valeur boundary_psi_app_hor() const
Neumann boundary condition for (spatial)
const Scalar source_psi() const
Source for .
Values and coefficients of a (real-value) function.
void init_bhole_seul()
Initiates for a single black hole.
Scalar trK
Trace of the extrinsic curvature.
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 ...
const Vector & get_beta_auto() const
Shift function .
virtual const Scalar & psi_comp() const
Conformal factor at the current time step jtime.
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 .
const Valeur boundary_psi_Dir() const
Dirichlet boundary condition for (spatial)
Tensor field of valence 1.
void set_omega(double ome)
Sets the angular velocity to ome .
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, which should ensure the regularity of .
Evolution_std< Scalar > psi_auto_evol
Values at successive time steps of the conformal factor .
virtual const Vector & beta_auto() const
Shift function at the current time step jtime.
Sym_tensor hh_Samaya_hole2()
Calculation of the hole2 part of the Post-Newtonian correction to .
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
ADM angular Momentum.
double omega_hor() const
Orbital velocity.
virtual const Vector & dnn() const
Covariant derivative of the lapse function at the current time step jtime.
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 .
Vector beta_comp
Shift function .
Sym_tensor aa
Components of the conformal representation of the traceless part of the extrinsic curvature: ...
const Map_af & get_mp() const
Returns the mapping (readonly).
void met_kerr_perturb()
Initialisation of the metric tilde from equation (15) of Dain (2002).
Map_af & set_mp()
Read/write of the mapping.
void set_omega(double ome)
Sets the orbital velocity to ome.
Single_hor * holes[2]
Array on the black holes.
const Scalar darea_hor() const
Element of area of the horizon.
void set_beta_auto(const Scalar &shift_in)
Sets the shift.
virtual const Sym_tensor & aa_comp() const
Conformal representation of the traceless part of the extrinsic curvature: Returns the value at the ...
void operator=(const Bin_hor &)
Affectation operator.
Metric * p_gam
Spatial metric .
const Scalar & get_n_auto() const
Lapse function .
Map_af & mp
Affine mapping.
const Scalar & get_nn() const
Lapse function .
const Metric & get_tgam() const
Conformal metric .
const Valeur boundary_nn_Neu_eff(double aa) const
Neumann boundary condition on nn (effectif) .
double get_boost_z() const
Returns the boost velocity in z-direction.
void set_boost_x(double bo)
Sets the boost velocity in x-direction to bo .
Single_hor(Map_af &mpi)
Standard constructor.
const Valeur boundary_psi_app_hor() const
Neumann boundary condition for.
Scalar psi
Conformal factor .
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...
Scalar expansion() const
Expansion of the outgoing null normal ( )
Scalar expansion() const
Expansion of the outgoing null normal ( )
void init_bin_hor()
Initialisation of the system.
Scalar trK
Trace of the extrinsic curvature.
double proper_distance(const int nr=65) const
Calculation of the proper distance between the two spheres of inversion, along the x axis...
double radius_hor() const
Radius of the horizon.
double regul
Intensity of the correction on the shift vector.
Sym_tensor * p_k_dd
Components of the extrinsic curvature:
void set_n_auto(const Scalar &nn_in)
Sets the lapse.
double boost_x
Boost velocity in x-direction.
double viriel_seul() 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 set_psi(const Scalar &psi_in)
Sets the conformal factor relating the physical metric to the conformal one: .
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 axi_break() const
Breaking of the axial symmetry on the horizon.
void init_met_trK()
Sets the 3-metric tilde to the flat metric and gamt_point, trK and trK_point to zero.
Sym_tensor hh
Deviation metric.
const Scalar b_tilde() const
Radial component of the shift with respect to the conformal metric.
virtual ~Single_hor()
Destructor.
Evolution_std< Sym_tensor > aa_comp_evol
Values at successive time steps of the components of the conformal representation of the traceless p...
Metric met_gamt
3 metric tilde
Sym_tensor hh_Samaya_hole1()
Calculation of the hole1 part of the Post-Newtonian correction to .
double get_radius() const
Returns the radius of the horizon.
const Sym_tensor & get_aa_comp() const
Conformal representation of the traceless part of the extrinsic curvature:
Vector beta_auto
Shift function .
Scalar decouple
Function used to construct from the total .
const Scalar source_nn() const
Source for N.
const Valeur boundary_beta_phi(double om) const
Component phi of boundary value of .
Vector beta
Shift function .
double ang_mom_adm() const
ADM angular Momentum.
void sauve(FILE *fich) const
Total or partial saves in a binary file.
void init_bhole()
Sets the values of the fields to :
Spacelike time slice of a 3+1 spacetime with conformal decomposition.
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.
const Vector & get_dpsi() const
Covariant derivative with respect to the flat metric of the conformal factor .
const Vector source_beta() const
Source for .
virtual const Scalar & aa_quad() const
Conformal representation .
void init_bhole_seul()
Initiates for a single black hole.
Sym_tensor aa_comp
Components of the conformal representation of the traceless part of the extrinsic curvature: ...
const Valeur boundary_vv_x(double om) const
Component x of boundary value of .
Evolution_std< Scalar > aa_quad_evol
Values at successive time steps of the components .
virtual void sauve(FILE *fich) const
Total or partial saves in a binary file.
virtual Sym_tensor aa() const
Conformal representation of the traceless part of the extrinsic curvature: .
const Valeur boundary_beta_z() const
Component z of boundary value of .
Scalar n_auto
Lapse function .
const Valeur boundary_beta_r() const
Component r of boundary value of .
Evolution_std< Vector > beta_comp_evol
Values at successive time steps of the shift function .
Time evolution with partial storage (*** under development ***).
double komar_mass() const
Calculates the Komar mass of the system using : .
double radius_hor() const
Radius of the horizon.
const Scalar get_decouple() const
Returns the function used to construct tkij_auto from tkij_tot .
Single_hor hole2
Black hole two.
Vector dpsi
Covariant derivative of the conformal factor .
virtual const Scalar & n_auto() const
Lapse function at the current time step jtime.
const Scalar darea_hor() const
Element of area of the horizon.
Scalar trK_point
Time derivative of the trace of the extrinsic curvature.
void set_aa(const Scalar &aa_in)
Sets aa.
double get_radius() const
Returns the radius of the horizon.
double regularise_one()
Corrects the shift in the innermost shell, so that it remains and that equals zero on the horizon...
Evolution_std< Vector > dn_evol
Values at successive time steps of the covariant derivative of the lapse with respect to the flat met...
void set_gamt(const Metric &gam_tilde)
Sets the conformal metric to gam_tilde.
const Valeur boundary_nn_Neu_kk(int nn=1) const
Neumann boundary condition for N using the extrinsic curvature.
void operator=(const Single_hor &)
Assignment to another Single_hor.
void set_radius(double rad)
Sets the radius of the horizon to rad .
void del_deriv() const
Deletes all the derived quantities.
virtual const Metric & tgam() const
Conformal metric Returns the value at the current time step (jtime ).
Binary black holes system.
const Vector & get_dn() const
Covariant derivative of the lapse function .
const Valeur boundary_vv_x_bin(double om, int hole=0) const
Component x of boundary value of .
void set_nn(const Scalar &nn_in)
Sets the lapse.
double get_omega() const
Returns the angular velocity.
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 ...
Scalar psi_comp
Conformal factor .
Map_af & mp
Affine mapping.
const Valeur boundary_b_tilde_Dir() const
Dirichlet boundary condition for b_tilde.
void n_comp_import(const Single_hor &comp)
Imports the part of N due to the companion hole comp .
virtual void sauve(FILE *fich, bool partial_save) const
Total or partial saves in a binary file.
void set_aa_comp(const Scalar &aa_comp_in)
Sets aa_comp.
virtual ostream & operator>>(ostream &) const
Operator >> (virtual function called by the operator<<).
Bin_hor(Map_af &mp1, Map_af &mp2)
Standard constructor.
void set_omega(double ome)
Sets the angular velocity to ome .
Sym_tensor gamt_point
Time derivative of the 3-metric tilde.
void set_aa_auto(const Scalar &aa_auto_in)
Sets aa_auto.
void psi_comp_import(const Single_hor &comp)
Imports the part of due to the companion hole comp .
const Valeur boundary_psi_Neu_spat() const
Neumann boundary condition for (spatial)
void set_hh_Samaya()
Calculation of the Post-Newtonian correction to .
Evolution_std< Sym_tensor > aa_auto_evol
Values at successive time steps of the components of the conformal representation of the traceless p...
const Sym_tensor & get_aa_auto() const
Conformal representation of the traceless part of the extrinsic curvature:
Scalar trK_point
Time derivative of the trace of the extrinsic curvature.
Isol_hor(Map_af &mpi, int depth_in=3)
Standard constructor.
Scalar psi_auto
Conformal factor .
const Valeur boundary_beta_y(double om) const
Component y of boundary value of .
const Vector & get_beta() const
Shift function .
Evolution_std< Sym_tensor > aa_nn
Values at successive time steps of the components .
const Valeur boundary_beta_theta() const
Component theta of boundary value of .
double ang_mom_adm() const
Calculates the angular momentum of the black hole.
double ang_mom_hor() const
Angular momentum (modulo)
virtual const Scalar & psi_auto() const
Conformal factor 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.
double regularise_one()
Corrects the shift in the innermost shell, so that it remains and that equals zero on the horizon...
double radius
Radius of the horizon in LORENE's units.
const Scalar & get_n_comp() const
Lapse function .
Metric_flat ff
3 metric flat
const Vector tradial_vect_hor() const
Vector radial normal tilde.
Spacelike time-slice of an Isolated Horizon in a 3+1 spacetime with conformal decomposition.
const Valeur beta_boost_z() const
Boundary value for a boost in z-direction.
double adm_mass() const
Calculates the ADM mass of the system.
const Sym_tensor & get_aa() const
Conformal representation of the traceless part of the extrinsic curvature:
double mass_hor() const
Mass computed at the horizon.
const Valeur boundary_vv_y_bin(double om, int hole=0) const
Component y of boundary value of .
Evolution_std< Vector > dpsi_evol
Values at successive time steps of the covariant derivative of the conformal factor ...
virtual const Vector & dpsi() const
Covariant derivative with respect to the flat metric of the conformal factor at the current time ste...
const Vector vv_bound_cart_bin(double om, int hole=0) const
Vector for boundary conditions in cartesian for binary systems.
double get_omega() const
Returns the angular velocity.
const Scalar get_decouple() const
Returns the function used to construct tkij_auto from tkij_tot .
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 Valeur beta_boost_x() const
Boundary value for a boost in x-direction.
Class intended to describe valence-2 symmetric tensors.
double boost_z
Boost velocity in z-direction.
const Valeur boundary_nn_Neu_Cook() const
Neumann boundary condition for N using Cook's boundary condition.
Scalar nn
Lapse function .
double get_boost_x() const
Returns the boost velocity in x-direction.
Scalar * p_psi4
Conformal factor .
const Scalar source_b_tilde() const
Source for b_tilde.
double viriel_seul() 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 .
virtual const Sym_tensor & aa_auto() const
Conformal representation of the traceless part of the extrinsic curvature: Returns the value at the ...
const Valeur boundary_psi_Neu_evol() const
Neumann boundary condition for (evolution)
const Scalar & get_psi_auto() const
Conformal factor .
virtual const Scalar & n_comp() const
Lapse function at the current time step jtime.
virtual ~Bin_hor()
Destructor.
virtual const Scalar & nn() const
Lapse function N at the current time step (jtime )