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 ;
1079 const Scalar& get_n_auto()
const ;
1082 const Scalar& get_n_comp()
const ;
1085 const Scalar& get_nn()
const ;
1088 const Scalar& get_psi_auto()
const ;
1091 const Scalar& get_psi_comp()
const ;
1094 const Scalar& get_psi()
const ;
1097 const Scalar& get_psi4()
const ;
1100 const Vector& get_dn()
const ;
1104 const Vector& get_dpsi()
const ;
1107 const Vector& get_beta_auto()
const ;
1110 const Vector& get_beta_comp()
const ;
1113 const Vector& get_beta()
const ;
1137 const Metric& get_gam()
const ;
1157 void n_comp_import (
const Single_hor& comp) ;
1166 void psi_comp_import (
const Single_hor& comp) ;
1173 void beta_comp_import (
const Single_hor& comp) ;
1221 void set_psi_auto(
const Scalar& psi_in) ;
1224 void set_n_auto(
const Scalar& nn_in) ;
1227 void set_beta_auto(
const Scalar& shift_in) ;
1230 void set_aa_auto(
const Scalar& aa_auto_in) ;
1233 void set_aa_comp(
const Scalar& aa_comp_in) ;
1236 void set_aa(
const Scalar& aa_in) ;
1287 const Valeur boundary_nn_Neu(
double aa)
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] ;} ;
1413 public:
const Single_hor& operator()(
int i)
const 1418 { assert( (i==1) || (i==2) );
1419 return *holes[i-1] ;} ;
1432 void init_bin_hor() ;
1440 double viriel()
const ;
1446 void extrinsic_curvature () ;
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,
1560 void import_bh (
const Bin_hor& bin) ;
1571 double komar_mass()
const ;
1590 double proper_distance(
const int nr = 65)
const ;
1607 void set_hh_Samaya() ;
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.
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 .
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 .
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 .
Evolution_std< Scalar > psi_comp_evol
Values at successive time steps of the lapse function .
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 .
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_nn_Dir_lapl(int mer=1) const
Dirichlet boundary condition for N fixing the divergence of the connection form . ...
const Valeur boundary_nn_Dir_eff(double aa) const
Dirichlet boundary condition for N (effectif) .
virtual void del_deriv() const
Deletes all the derived quantities.
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.
Scalar decouple
Function used to construct from the total .
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.
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 .
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 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.
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 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.
double omega_hor() const
Orbital velocity.
virtual const Vector & dnn() const
Covariant derivative of the lapse function at the current time step jtime.
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.
const Scalar darea_hor() const
Element of area of the horizon.
virtual const Sym_tensor & aa_comp() const
Conformal representation of the traceless part of the extrinsic curvature: Returns the value at the ...
Metric * p_gam
Spatial metric .
Map_af & mp
Affine mapping.
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 .
Scalar psi
Conformal factor .
Scalar expansion() const
Expansion of the outgoing null normal ( )
Scalar trK
Trace of the extrinsic curvature.
double regul
Intensity of the correction on the shift vector.
Sym_tensor * p_k_dd
Components of the extrinsic curvature:
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: .
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.
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
double get_radius() const
Returns the radius of the horizon.
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.
Spacelike time slice of a 3+1 spacetime with conformal decomposition.
const Vector source_beta() const
Source for .
virtual const Scalar & aa_quad() const
Conformal representation .
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 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 radius_hor() const
Radius of the horizon.
const Scalar get_decouple() const
Returns the function used to construct tkij_auto from tkij_tot .
virtual double adm_mass() const
Returns the ADM mass (geometrical units) at the current step.
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.
Scalar trK_point
Time derivative of the trace of the extrinsic curvature.
double get_radius() const
Returns the radius of 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 set_radius(double rad)
Sets the radius of the horizon to rad .
virtual const Metric & tgam() const
Conformal metric Returns the value at the current time step (jtime ).
Binary black holes system.
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.
void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
double get_omega() const
Returns the angular velocity.
Scalar psi_comp
Conformal factor .
Map_af & mp
Affine mapping.
const Valeur boundary_b_tilde_Dir() const
Dirichlet boundary condition for b_tilde.
virtual void sauve(FILE *fich, bool partial_save) const
Total or partial saves in a binary file.
virtual ostream & operator>>(ostream &) const
Operator >> (virtual function called by the operator<<).
void set_omega(double ome)
Sets the angular velocity to ome .
Sym_tensor gamt_point
Time derivative of the 3-metric tilde.
const Valeur boundary_psi_Neu_spat() const
Neumann boundary condition for (spatial)
Evolution_std< Sym_tensor > aa_auto_evol
Values at successive time steps of the components of the conformal representation of the traceless p...
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 .
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 .
virtual const Scalar & psi_auto() const
Conformal factor at the current time step jtime.
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.
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 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 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.
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)
virtual const Scalar & n_comp() const
Lapse function at the current time step jtime.
virtual const Scalar & nn() const
Lapse function N at the current time step (jtime )