225#include "time_slice.h"
229#include "evolution.h"
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 ;
881 friend class Bin_hor ;
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] ;} ;
1410 hole1.set_omega (ome) ;
1411 hole2.set_omega (ome) ;} ;
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,
Vectorial bases (triads) with respect to which the tensorial components are defined.
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.
Bin_hor(Map_af &mp1, Map_af &mp2)
Standard constructor.
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...
Isol_hor(Map_af &mpi, int depth_in=3)
Standard constructor.
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 .
const Valeur boundary_beta_z() const
Component z of boundary value of .
const Valeur boundary_beta_y(double om_orb, double om_loc) const
Component y of boundary value of .
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,...
Single_hor(Map_af &mpi)
Standard constructor.
void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
const Vector & get_beta_auto() const
Shift function .
const Valeur boundary_nn_Neu(double aa) const
Neumann boundary condition on nn .
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).
const Valeur boundary_beta_x(double om_orb, double om_loc) const
Component x of boundary value of .
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.
const Valeur boundary_nn_Dir(double aa) const
Dirichlet boundary condition for N .
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
Transverse symmetric tensors of rank 2.
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: .
Time_slice_conf(const Scalar &lapse_in, const Vector &shift_in, const Metric_flat &ff_in, const Scalar &psi_in, const Sym_tensor &hh_in, const Sym_tensor &hata_in, const Scalar &trk_in, int depth_in=3)
Constructor from conformal decomposition.
Spacelike time slice of a 3+1 spacetime.
Values and coefficients of a (real-value) function.
Tensor field of valence 1.
Map(const Mg3d &)
Constructor from a multi-domain 3D grid.