time_slice.h
/*
* Definition of Lorene class Time_slice
*
*/
/*
* Copyright (c) 2004 Eric Gourgoulhon, Jose Luis Jaramillo & Jerome Novak
*
* This file is part of LORENE.
*
* LORENE is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation.
*
* LORENE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LORENE; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef __TIME_SLICE_H_
#define __TIME_SLICE_H_
/*
* $Id: time_slice.h,v 1.32 2014/10/13 08:52:37 j_novak Exp $
* $Log: time_slice.h,v $
* Revision 1.32 2014/10/13 08:52:37 j_novak
* Lorene classes and functions now belong to the namespace Lorene.
*
* Revision 1.31 2012/02/06 12:59:07 j_novak
* Correction of some errors.
*
* Revision 1.30 2010/10/20 07:58:09 j_novak
* Better implementation of the explicit time-integration. Not fully-tested yet.
*
* Revision 1.29 2008/12/04 18:22:49 j_novak
* Enhancement of the dzpuis treatment + various bug fixes.
*
* Revision 1.28 2008/12/02 15:02:21 j_novak
* Implementation of the new constrained formalism, following Cordero et al. 2009
* paper. The evolution eqs. are solved as a first-order system. Not tested yet!
*
* Revision 1.27 2008/08/19 06:41:59 j_novak
* Minor modifications to avoid warnings with gcc 4.3. Most of them concern
* cast-type operations, and constant strings that must be defined as const char*
*
* Revision 1.26 2007/11/06 14:47:06 j_novak
* New constructor from a rotating star in Dirac gauge (class Star_rot_Dirac).
* Evolution can take into account matter terms.
*
* Revision 1.25 2007/04/25 15:20:59 j_novak
* Corrected an error in the initialization of tildeB in
* Tslice_dirac_max::initial_dat_cts. + New method for solve_hij_AB.
*
* Revision 1.24 2007/03/21 14:51:48 j_novak
* Introduction of potentials A and tilde(B) of h^{ij} into Tslice_dirac_max.
*
* Revision 1.23 2005/03/28 19:44:00 f_limousin
* Function tgam() is now virtual.
*
* Revision 1.22 2004/06/24 20:36:07 e_gourgoulhon
* Class Time_slice_conf: added method check_psi_dot.
*
* Revision 1.21 2004/06/14 20:46:35 e_gourgoulhon
* Added argument method_poisson to Tslice_dirac_max::solve_hij.
*
* Revision 1.20 2004/05/31 20:28:20 e_gourgoulhon
* -- Class Time_slice : added inline functions get_latest_j() and
* get_time()
* -- Class Tslice_dirac_max: method hh_det_one takes now a time step
* as argument, to compute h^{ij} from khi and mu at an arbitrary
* time step and not only the latest one.
*
* Revision 1.19 2004/05/27 15:22:28 e_gourgoulhon
* Added functions save and sauve, as well as constructors from file.
*
* Revision 1.18 2004/05/20 20:30:37 e_gourgoulhon
* Added arguments check_mod and save_mod to method Tsclice_dirac_max::evolve.
*
* Revision 1.17 2004/05/17 19:52:16 e_gourgoulhon
* -- Method initial_data_cts: added arguments graph_device and
* method_poisson_vect.
* -- Method Tslice_dirac_max::solve_beta : added argument method
* -- Method Tslice_dirac_max::solve_hij : added argument graph_device
* -- Method Tslice_dirac_max::evolve : added arguments
* method_poisson_vect, nopause and graph_device.
*
* Revision 1.16 2004/05/12 15:16:25 e_gourgoulhon
* Added #include "metric.h" before #include "evolution.h".
*
* Revision 1.15 2004/05/09 20:56:09 e_gourgoulhon
* Added member adm_mass_evol and corresponding virtual method adm_mass().
*
* Revision 1.14 2004/05/06 15:23:10 e_gourgoulhon
* initial_data_cts is know a virtual function of class Time_slice_conf
* and is implemented also for class Tslice_dirac_max.
*
* Revision 1.13 2004/05/03 14:46:11 e_gourgoulhon
* Class Tslice_dirac_max: -- changed prototype of method solve_hij
* -- added new method evolve
*
* Revision 1.12 2004/04/30 14:36:15 j_novak
* Added the method Tslice_dirac_max::solve_hij(...)
* NOT READY YET!!!
*
* Revision 1.11 2004/04/30 10:51:38 e_gourgoulhon
* Class Tslice_dirac_max: added methods solve_n, solve_q and solve_beta
* for resolution of the elliptic part of Einstein equations.
*
* Revision 1.10 2004/04/29 17:07:27 e_gourgoulhon
* Added argument pdt to Time_slice_conf::initial_data_cts.
*
* Revision 1.9 2004/04/08 16:42:11 e_gourgoulhon
* Many changes:
* -- class Time_slice_conf: added methods set_*, changed argument list of
* method initial_data_cts.
* -- class Tslice_dirac_max: added methods set_* and hh_det_one().
*
* Revision 1.8 2004/04/05 21:21:51 e_gourgoulhon
* class Time_slice_conf: added method initial_data_cts (computation of
* initial data from conformally thin sandwich method).
* classes Time_slice_conf and Tslice_dirac_max: added constructor as
* standard time slice of Minkowski spacetime.
*
* Revision 1.7 2004/04/01 16:09:01 j_novak
* Trace of K_ij is now member of Time_slice (it was member of Time_slice_conf).
* Added new methods for checking 3+1 Einstein equations (preliminary).
*
* Revision 1.6 2004/03/30 14:00:30 j_novak
* New class Tslide_dirac_max (first version).
*
* Revision 1.5 2004/03/29 11:58:53 e_gourgoulhon
* Many modif. to class Time_slice_conf.
* Minor modif. to class Time_slice.
*
* Revision 1.4 2004/03/28 21:33:14 e_gourgoulhon
* Constructor Time_slice::Time_slice(int depth_in) declared "explicit".
*
* Revision 1.3 2004/03/28 21:27:57 e_gourgoulhon
* Class Time_slice: - renamed the Evolution_std with suffix "_evol".
* - added protected constructor for derived classes
* Added class Time_slice_conf.
*
* Revision 1.2 2004/03/26 13:33:02 j_novak
* New methods for accessing/updating members (nn(), beta(), gam_uu(), k_uu(), ...)
*
* Revision 1.1 2004/03/24 14:56:18 e_gourgoulhon
* First version
*
*
* $Header: /cvsroot/Lorene/C++/Include/time_slice.h,v 1.32 2014/10/13 08:52:37 j_novak Exp $
*
*/
#include "star_rot_dirac.h"
#include "evolution.h"
//---------------------------//
// class Time_slice //
//---------------------------//
namespace Lorene {
class Time_slice {
// Data :
// -----
protected:
int depth ;
int scheme_order ;
int jtime ;
Evolution_std<double> the_time ;
mutable Evolution_std<Sym_tensor> gam_dd_evol ;
mutable Evolution_std<Sym_tensor> gam_uu_evol ;
mutable Evolution_std<Sym_tensor> k_dd_evol ;
mutable Evolution_std<Sym_tensor> k_uu_evol ;
mutable Evolution_std<Scalar> n_evol ;
mutable Evolution_std<Vector> beta_evol ;
mutable Evolution_std<Scalar> trk_evol ;
mutable Evolution_full<Tbl> adm_mass_evol ;
// Derived data :
// ------------
protected:
mutable Metric* p_gamma ;
// Constructors - Destructor
// -------------------------
public:
Time_slice(const Scalar& lapse_in, const Vector& shift_in,
const Sym_tensor& gamma_in, const Sym_tensor& kk_in,
int depth_in = 3) ;
Time_slice(const Scalar& lapse_in, const Vector& shift_in,
const Evolution_std<Sym_tensor>& gamma_in) ;
Time_slice(const Map& mp, const Base_vect& triad, int depth_in = 3) ;
Time_slice(const Map& mp, const Base_vect& triad, FILE* fich,
bool partial_read, int depth_in = 3) ;
Time_slice(const Time_slice& ) ;
protected:
explicit Time_slice(int depth_in) ;
public:
virtual ~Time_slice() ;
// Memory management
// -----------------
protected:
virtual void del_deriv() const ;
void set_der_0x0() const ;
// Mutators / assignment
// ---------------------
public:
void operator=(const Time_slice&) ;
void set_scheme_order(int ord) {
assert ((0<= ord)&&(ord < 4)) ;
scheme_order = ord ; } ;
// Accessors
// ---------
public:
int get_scheme_order() const { return scheme_order ; } ;
int get_latest_j() const {return jtime; } ;
const Evolution_std<double>& get_time() const {return the_time; } ;
virtual const Scalar& nn() const ;
virtual const Vector& beta() const ;
const Metric& gam() const ;
virtual const Sym_tensor& gam_dd() const ;
virtual const Sym_tensor& gam_uu() const ;
virtual const Sym_tensor& k_dd() const ;
virtual const Sym_tensor& k_uu() const ;
virtual const Scalar& trk() const ;
// Computational functions
// -----------------------
public:
Tbl check_hamiltonian_constraint(const Scalar* energy_density = 0x0,
ostream& ost = cout, bool verb=true) const ;
Tbl check_momentum_constraint(const Vector* momentum_density = 0x0,
ostream& ost = cout, bool verb=true) const ;
Tbl check_dynamical_equations(const Sym_tensor* strain_tensor = 0x0,
const Scalar* energy_density = 0x0,
ostream& ost = cout, bool verb=true) const ;
virtual double adm_mass() const ;
// Outputs
// -------
protected:
virtual ostream& operator>>(ostream& ) const ;
friend ostream& operator<<(ostream& , const Time_slice& ) ;
public:
void save(const char* rootname) const ;
protected:
virtual void sauve(FILE* fich, bool partial_save) const ;
};
ostream& operator<<(ostream& , const Time_slice& ) ;
//---------------------------//
// class Time_slice_conf //
//---------------------------//
class Time_slice_conf : public Time_slice {
// Data :
// -----
protected:
const Metric_flat& ff ;
mutable Evolution_std<Scalar> psi_evol ;
mutable Evolution_std<Scalar> npsi_evol ;
mutable Evolution_std<Sym_tensor> hh_evol ;
mutable Evolution_std<Sym_tensor> hata_evol ;
mutable Evolution_std<Scalar> A_hata_evol ;
mutable Evolution_std<Scalar> B_hata_evol ;
// Derived data :
// ------------
protected:
mutable Metric* p_tgamma ;
mutable Scalar* p_psi4 ;
mutable Scalar* p_ln_psi ;
mutable Vector* p_hdirac ;
mutable Vector* p_vec_X ;
// Constructors - Destructor
// -------------------------
public:
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) ;
Time_slice_conf(const Scalar& lapse_in, const Vector& shift_in,
const Sym_tensor& gamma_in, const Sym_tensor& kk_in,
const Metric_flat& ff_in, int depth_in = 3) ;
Time_slice_conf(const Map& mp, const Base_vect& triad,
const Metric_flat& ff_in, int depth_in = 3) ;
Time_slice_conf(const Map& mp, const Base_vect& triad,
const Metric_flat& ff_in, FILE* fich,
bool partial_read, int depth_in = 3) ;
Time_slice_conf(const Time_slice_conf& ) ;
virtual ~Time_slice_conf() ;
// Memory management
// -----------------
protected:
virtual void del_deriv() const ;
void set_der_0x0() const ;
// Mutators / assignment
// ---------------------
public:
void operator=(const Time_slice_conf&) ;
void operator=(const Time_slice&) ;
virtual void set_psi_del_npsi(const Scalar& psi_in) ;
virtual void set_psi_del_n(const Scalar& psi_in) ;
virtual void set_npsi_del_psi(const Scalar& npsi_in) ;
virtual void set_npsi_del_n(const Scalar& npsi_in) ;
virtual void set_hh(const Sym_tensor& hh_in) ;
virtual void set_hata(const Sym_tensor& hata_in) ;
virtual void set_hata_TT(const Sym_tensor_tt& hata_tt) ;
virtual void set_hata_from_XAB(Param* par_bc=0x0, Param* par_mat=0x0) ;
// Accessors
// ---------
public:
// Virtual functions from base class Time_slice:
// ---------------------------------------------
virtual const Scalar& nn() const ;
virtual const Sym_tensor& gam_dd() const ;
virtual const Sym_tensor& gam_uu() const ;
virtual const Sym_tensor& k_dd() const ;
virtual const Sym_tensor& k_uu() const ;
// Virtual functions from this class:
// ----------------------------------
virtual const Scalar& A_hata() const ;
virtual const Scalar& B_hata() const ;
virtual const Scalar& psi() const ;
const Scalar& psi4() const ;
const Scalar& ln_psi() const ;
virtual const Scalar& npsi() const ;
virtual const Metric& tgam() const ;
virtual const Sym_tensor& hh(Param* = 0x0, Param* = 0x0) const ;
virtual const Sym_tensor& hata() const ;
virtual Sym_tensor aa() const ;
virtual const Scalar& trk() const ;
virtual const Vector& hdirac() const ;
virtual const Vector& vec_X(int method_poisson=6) const ;
// Computational methods
// ---------------------
public:
void compute_X_from_momentum_constraint
(const Vector& hat_S, const Sym_tensor_tt& hata_tt,
int iter_max = 200, double precis = 1.e-12,
double relax = 0.8, int methode_poisson = 6) ;
virtual void set_AB_hata(const Scalar& A_in, const Scalar& B_in) ;
virtual void initial_data_cts(const Sym_tensor& uu, const Scalar& trk_in,
const Scalar& trk_point, double pdt, double precis = 1.e-12,
int method_poisson_vect = 6, const char* graph_device = 0x0,
const Scalar* ener_dens = 0x0, const Vector* mom_dens = 0x0,
const Scalar* trace_stress = 0x0 ) ;
virtual double adm_mass() const ;
void check_psi_dot(Tbl& tlnpsi_dot, Tbl& tdiff, Tbl& tdiff_rel) const ;
// Outputs
// -------
protected:
virtual ostream& operator>>(ostream& ) const ;
virtual void sauve(FILE* fich, bool partial_save) const ;
} ;
//----------------------------//
// class Tslice_dirac_max //
//----------------------------//
class Tslice_dirac_max : public Time_slice_conf {
// Data :
// -----
protected:
mutable Evolution_std<Scalar> A_hh_evol ;
mutable Evolution_std<Scalar> B_hh_evol ;
mutable Evolution_std<Scalar> source_A_hh_evol ;
mutable Evolution_std<Scalar> source_B_hh_evol ;
mutable Evolution_std<Scalar> source_A_hata_evol ;
mutable Evolution_std<Scalar> source_B_hata_evol ;
mutable Evolution_std<Scalar> trh_evol ;
// Constructors - Destructor
// -------------------------
public:
Tslice_dirac_max(const Scalar& lapse_in, const Vector& shift_in,
const Metric_flat& ff_in, const Scalar& psi_in,
const Sym_tensor_trans& hh_in, const Sym_tensor& hata_in,
int depth_in = 3) ;
Tslice_dirac_max(const Map& mp, const Base_vect& triad,
const Metric_flat& ff_in, int depth_in = 3) ;
Tslice_dirac_max(const Map& mp, const Base_vect& triad,
const Metric_flat& ff_in, FILE* fich,
bool partial_read, int depth_in = 3) ;
Tslice_dirac_max(const Star_rot_Dirac& star, double pdt, int depth_in = 3) ;
Tslice_dirac_max(const Tslice_dirac_max& ) ;
virtual ~Tslice_dirac_max() ;
// Mutators / assignment
// ---------------------
public:
void operator=(const Tslice_dirac_max&) ;
// Virtual functions from base class Time_slice_conf:
// -------------------------------------------------
virtual void set_hh(const Sym_tensor& hh_in) ;
virtual void initial_data_cts(const Sym_tensor& uu, const Scalar& trk_in,
const Scalar& trk_point, double pdt, double precis = 1.e-12,
int method_poisson_vect = 6, const char* graph_device = 0x0,
const Scalar* ener_dens = 0x0, const Vector* mom_dens = 0x0,
const Scalar* trace_stress = 0x0 ) ;
// Virtual functions from this class:
// ----------------------------------
virtual void set_khi_mu(const Scalar& khi_in, const Scalar& mu_in) ;
virtual void set_AB_hh(const Scalar& A_in, const Scalar& B_in) ;
virtual void set_trh(const Scalar& trh_in) ;
virtual Scalar solve_psi(const Scalar* ener_dens=0x0) const ;
virtual Scalar solve_npsi(const Scalar* ener_dens=0x0,
const Scalar* trace_stress=0x0) const ;
virtual Vector solve_beta(int method = 6) const ;
void evolve(double pdt, int nb_time_steps, int niter_elliptic,
double relax_elliptic, int check_mod, int save_mod,
int method_poisson_vect = 6, int nopause = 1,
const char* graph_device = 0x0, bool verbose=true,
const Scalar* ener_euler = 0x0,
const Vector* mom_euler = 0x0, const Scalar* s_euler = 0x0,
const Sym_tensor* strain_euler = 0x0) ;
virtual double adm_mass() const ;
protected:
void compute_sources(const Sym_tensor* strain_tensor = 0x0) const ;
void initialize_sources_copy() const ;
void hh_det_one(int j, Param* par_bc = 0x0, Param* par_mat = 0x0) const ;
void hh_det_one(const Sym_tensor_tt& hijtt, Param* par_mat = 0x0) const ;
// Accessors
// ---------
public:
// Virtual functions from base class Time_slice_conf:
// -------------------------------------------------
virtual const Sym_tensor& hh(Param* par_bc = 0x0, Param* par_mat = 0x0) const ;
virtual const Scalar& trk() const ;
virtual const Vector& hdirac() const ;
// Virtual functions from this class:
// ----------------------------------
virtual const Scalar& A_hh() const ;
virtual const Scalar& B_hh() const ;
virtual const Scalar& trh() const ;
// Outputs
// -------
protected:
virtual ostream& operator>>(ostream& ) const ;
virtual void sauve(FILE* fich, bool partial_save) const ;
};
}
#endif
Lorene::Base_vect
Vectorial bases (triads) with respect to which the tensorial components are defined.
Definition base_vect.h:105
Lorene::Evolution_full
Time evolution with full storage (*** under development ***).
Definition evolution.h:270
Lorene::Evolution_std
Time evolution with partial storage (*** under development ***).
Definition evolution.h:371
Lorene::Metric_flat
Flat metric for tensor calculation.
Definition metric.h:261
Lorene::Metric
Metric for tensor calculation.
Definition metric.h:90
Lorene::Param
Parameter storage.
Definition param.h:125
Lorene::Scalar
Tensor field of valence 0 (or component of a tensorial field).
Definition scalar.h:387
Lorene::Star_rot_Dirac
Class for relativistic rotating stars in Dirac gauge and maximal slicing.
Definition star_rot_dirac.h:46
Lorene::Sym_tensor_trans
Transverse symmetric tensors of rank 2.
Definition sym_tensor.h:608
Lorene::Sym_tensor_tt
Transverse and traceless symmetric tensors of rank 2.
Definition sym_tensor.h:938
Lorene::Sym_tensor
Class intended to describe valence-2 symmetric tensors.
Definition sym_tensor.h:223
Lorene::Tbl
Basic array class.
Definition tbl.h:161
Lorene::Time_slice_conf::npsi
virtual const Scalar & npsi() const
Factor at the current time step (jtime ).
Definition time_slice_conf.C:732
Lorene::Time_slice_conf::hh_evol
Evolution_std< Sym_tensor > hh_evol
Values at successive time steps of the components .
Definition time_slice.h:530
Lorene::Time_slice_conf::~Time_slice_conf
virtual ~Time_slice_conf()
Destructor.
Definition time_slice_conf.C:337
Lorene::Time_slice_conf::set_der_0x0
void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
Definition time_slice_conf.C:361
Lorene::Time_slice_conf::gam_dd
virtual const Sym_tensor & gam_dd() const
Induced metric (covariant components ) at the current time step (jtime ).
Definition time_slice_conf.C:608
Lorene::Time_slice_conf::hh
virtual const Sym_tensor & hh(Param *=0x0, Param *=0x0) const
Deviation of the conformal metric from the flat metric : .
Definition time_slice_conf.C:758
Lorene::Time_slice_conf::set_psi_del_n
virtual void set_psi_del_n(const Scalar &psi_in)
Sets the conformal factor relating the physical metric to the conformal one: .
Definition time_slice_conf.C:428
Lorene::Time_slice_conf::set_hata_TT
virtual void set_hata_TT(const Sym_tensor_tt &hata_tt)
Sets the TT part of (see member hata_evol ).
Definition time_slice_conf.C:546
Lorene::Time_slice_conf::k_dd
virtual const Sym_tensor & k_dd() const
Extrinsic curvature tensor (covariant components ) at the current time step (jtime ).
Definition time_slice_conf.C:630
Lorene::Time_slice_conf::set_npsi_del_psi
virtual void set_npsi_del_psi(const Scalar &npsi_in)
Sets the factor at the current time step (jtime ) and deletes the value of .
Definition time_slice_conf.C:453
Lorene::Time_slice_conf::nn
virtual const Scalar & nn() const
Lapse function N at the current time step (jtime ).
Definition time_slice_conf.C:591
Lorene::Time_slice_conf::set_psi_del_npsi
virtual void set_psi_del_npsi(const Scalar &psi_in)
Sets the conformal factor relating the physical metric to the conformal one: .
Definition time_slice_conf.C:404
Lorene::Time_slice_conf::hata
virtual const Sym_tensor & hata() const
Conformal representation of the traceless part of the extrinsic curvature: .
Definition time_slice_conf.C:772
Lorene::Time_slice_conf::k_uu
virtual const Sym_tensor & k_uu() const
Extrinsic curvature tensor (contravariant components ) at the current time step (jtime ).
Definition time_slice_conf.C:643
Lorene::Time_slice_conf::ln_psi
const Scalar & ln_psi() const
Logarithm of at the current time step (jtime ).
Definition time_slice_conf.C:719
Lorene::Time_slice_conf::hata_evol
Evolution_std< Sym_tensor > hata_evol
Values at successive time steps of the components .
Definition time_slice.h:542
Lorene::Time_slice_conf::hdirac
virtual const Vector & hdirac() const
Vector which vanishes in Dirac gauge.
Definition time_slice_conf.C:815
Lorene::Time_slice_conf::A_hata
virtual const Scalar & A_hata() const
Returns the potential A of .
Definition time_slice_conf.C:664
Lorene::Time_slice_conf::vec_X
virtual const Vector & vec_X(int method_poisson=6) const
Vector representing the longitudinal part of .
Definition time_slice_conf.C:825
Lorene::Time_slice_conf::operator=
void operator=(const Time_slice_conf &)
Assignment to another Time_slice_conf.
Definition time_slice_conf.C:376
Lorene::Time_slice_conf::psi
virtual const Scalar & psi() const
Conformal factor relating the physical metric to the conformal one: .
Definition time_slice_conf.C:693
Lorene::Time_slice_conf::p_tgamma
Metric * p_tgamma
Pointer on the conformal metric at the current time step (jtime).
Definition time_slice.h:560
Lorene::Time_slice_conf::B_hata
virtual const Scalar & B_hata() const
Returns the potential of .
Definition time_slice_conf.C:678
Lorene::Time_slice_conf::del_deriv
virtual void del_deriv() const
Deletes all the derived quantities.
Definition time_slice_conf.C:347
Lorene::Time_slice_conf::npsi_evol
Evolution_std< Scalar > npsi_evol
Values at successive time steps of the factor .
Definition time_slice.h:522
Lorene::Time_slice_conf::p_vec_X
Vector * p_vec_X
Pointer on the vector representing the longitudinal part of .
Definition time_slice.h:577
Lorene::Time_slice_conf::aa
virtual Sym_tensor aa() const
Conformal representation of the traceless part of the extrinsic curvature: .
Definition time_slice_conf.C:765
Lorene::Time_slice_conf::set_hata
virtual void set_hata(const Sym_tensor &hata_in)
Sets the conformal representation of the traceless part of the extrinsic curvature: .
Definition time_slice_conf.C:534
Lorene::Time_slice_conf::p_hdirac
Vector * p_hdirac
Pointer on the vector (which vanishes in Dirac gauge), at the current time step (jtime).
Definition time_slice.h:571
Lorene::Time_slice_conf::psi4
const Scalar & psi4() const
Factor at the current time step (jtime ).
Definition time_slice_conf.C:707
Lorene::Time_slice_conf::set_npsi_del_n
virtual void set_npsi_del_n(const Scalar &npsi_in)
Sets the factor at the current time step (jtime ) and deletes the value of N.
Definition time_slice_conf.C:478
Lorene::Time_slice_conf::psi_evol
Evolution_std< Scalar > psi_evol
Values at successive time steps of the conformal factor relating the physical metric to the conform...
Definition time_slice.h:517
Lorene::Time_slice_conf::set_hata_from_XAB
virtual void set_hata_from_XAB(Param *par_bc=0x0, Param *par_mat=0x0)
Sets the conformal representation of the traceless part of the extrinsic curvature from its potentia...
Definition time_slice_conf.C:566
Lorene::Time_slice_conf::tgam
virtual const Metric & tgam() const
Conformal metric Returns the value at the current time step (jtime ).
Definition time_slice_conf.C:747
Lorene::Time_slice_conf::Time_slice_conf
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.
Definition time_slice_conf.C:118
Lorene::Time_slice_conf::gam_uu
virtual const Sym_tensor & gam_uu() const
Induced metric (contravariant components ) at the current time step (jtime ).
Definition time_slice_conf.C:619
Lorene::Time_slice_conf::A_hata_evol
Evolution_std< Scalar > A_hata_evol
Potential A associated with the symmetric tensor .
Definition time_slice.h:547
Lorene::Time_slice_conf::ff
const Metric_flat & ff
Pointer on the flat metric with respect to which the conformal decomposition is performed.
Definition time_slice.h:507
Lorene::Time_slice_conf::compute_X_from_momentum_constraint
void compute_X_from_momentum_constraint(const Vector &hat_S, const Sym_tensor_tt &hata_tt, int iter_max=200, double precis=1.e-12, double relax=0.8, int methode_poisson=6)
Computes the vector from the conformally-rescaled momentum , using the momentum constraint.
Definition time_slice_conf.C:837
Lorene::Time_slice_conf::p_ln_psi
Scalar * p_ln_psi
Pointer on the logarithm of at the current time step (jtime).
Definition time_slice.h:566
Lorene::Time_slice_conf::B_hata_evol
Evolution_std< Scalar > B_hata_evol
Potential associated with the symmetric tensor .
Definition time_slice.h:552
Lorene::Time_slice_conf::set_hh
virtual void set_hh(const Sym_tensor &hh_in)
Sets the deviation of the conformal metric from the flat metric : .
Definition time_slice_conf.C:489
Lorene::Time_slice_conf::trk
virtual const Scalar & trk() const
Trace K of the extrinsic curvature at the current time step (jtime ).
Definition time_slice_conf.C:796
Lorene::Time_slice_conf::p_psi4
Scalar * p_psi4
Pointer on the factor at the current time step (jtime).
Definition time_slice.h:563
Lorene::Time_slice
Spacelike time slice of a 3+1 spacetime.
Definition time_slice.h:173
Lorene::Time_slice::k_dd
virtual const Sym_tensor & k_dd() const
Extrinsic curvature tensor (covariant components ) at the current time step (jtime ).
Definition time_slice_access.C:135
Lorene::Time_slice::jtime
int jtime
Time step index of the latest slice.
Definition time_slice.h:190
Lorene::Time_slice::trk_evol
Evolution_std< Scalar > trk_evol
Values at successive time steps of the trace K of the extrinsic curvature.
Definition time_slice.h:224
Lorene::Time_slice::p_gamma
Metric * p_gamma
Pointer on the induced metric at the current time step (jtime).
Definition time_slice.h:239
Lorene::Time_slice::k_dd_evol
Evolution_std< Sym_tensor > k_dd_evol
Values at successive time steps of the covariant components of the extrinsic curvature tensor .
Definition time_slice.h:208
Lorene::Time_slice::sauve
virtual void sauve(FILE *fich, bool partial_save) const
Total or partial saves in a binary file.
Definition time_slice.C:507
Lorene::Time_slice::operator=
void operator=(const Time_slice &)
Assignment to another Time_slice.
Definition time_slice.C:388
Lorene::Time_slice::adm_mass_evol
Evolution_full< Tbl > adm_mass_evol
ADM mass at each time step, since the creation of the slice.
Definition time_slice.h:233
Lorene::Time_slice::trk
virtual const Scalar & trk() const
Trace K of the extrinsic curvature at the current time step (jtime ).
Definition time_slice_access.C:177
Lorene::Time_slice::nn
virtual const Scalar & nn() const
Lapse function N at the current time step (jtime ).
Definition time_slice_access.C:79
Lorene::Time_slice::save
void save(const char *rootname) const
Saves in a binary file.
Definition time_slice.C:461
Lorene::Time_slice::gam_dd
virtual const Sym_tensor & gam_dd() const
Induced metric (covariant components ) at the current time step (jtime ).
Definition time_slice_access.C:107
Lorene::Time_slice::set_der_0x0
void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
Definition time_slice.C:377
Lorene::Time_slice::gam_dd_evol
Evolution_std< Sym_tensor > gam_dd_evol
Values at successive time steps of the covariant components of the induced metric .
Definition time_slice.h:198
Lorene::Time_slice::check_hamiltonian_constraint
Tbl check_hamiltonian_constraint(const Scalar *energy_density=0x0, ostream &ost=cout, bool verb=true) const
Checks the level at which the hamiltonian constraint is verified.
Definition tslice_check_einstein.C:79
Lorene::Time_slice::gam_uu_evol
Evolution_std< Sym_tensor > gam_uu_evol
Values at successive time steps of the contravariant components of the induced metric .
Definition time_slice.h:203
Lorene::Time_slice::scheme_order
int scheme_order
Order of the finite-differences scheme for the computation of time derivatives.
Definition time_slice.h:187
Lorene::Time_slice::beta
virtual const Vector & beta() const
shift vector at the current time step (jtime )
Definition time_slice_access.C:87
Lorene::Time_slice::~Time_slice
virtual ~Time_slice()
Destructor.
Definition time_slice.C:357
Lorene::Time_slice::del_deriv
virtual void del_deriv() const
Deletes all the derived quantities.
Definition time_slice.C:367
Lorene::Time_slice::get_latest_j
int get_latest_j() const
Gets the latest value of time step index.
Definition time_slice.h:343
Lorene::Time_slice::gam
const Metric & gam() const
Induced metric at the current time step (jtime ).
Definition time_slice_access.C:95
Lorene::Time_slice::k_uu
virtual const Sym_tensor & k_uu() const
Extrinsic curvature tensor (contravariant components ) at the current time step (jtime ).
Definition time_slice_access.C:157
Lorene::Time_slice::depth
int depth
Number of stored time slices.
Definition time_slice.h:179
Lorene::Time_slice::get_time
const Evolution_std< double > & get_time() const
Gets the time coordinate t at successive time steps.
Definition time_slice.h:346
Lorene::Time_slice::n_evol
Evolution_std< Scalar > n_evol
Values at successive time steps of the lapse function N.
Definition time_slice.h:216
Lorene::Time_slice::gam_uu
virtual const Sym_tensor & gam_uu() const
Induced metric (contravariant components ) at the current time step (jtime ).
Definition time_slice_access.C:122
Lorene::Time_slice::adm_mass
virtual double adm_mass() const
Returns the ADM mass (geometrical units) at the current step.
Definition tslice_adm_mass.C:74
Lorene::Time_slice::Time_slice
Time_slice(const Scalar &lapse_in, const Vector &shift_in, const Sym_tensor &gamma_in, const Sym_tensor &kk_in, int depth_in=3)
General constructor (Hamiltonian-like).
Definition time_slice.C:112
Lorene::Time_slice::get_scheme_order
int get_scheme_order() const
Gets the order of the finite-differences scheme.
Definition time_slice.h:340
Lorene::Time_slice::the_time
Evolution_std< double > the_time
Time label of each slice.
Definition time_slice.h:193
Lorene::Time_slice::operator>>
virtual ostream & operator>>(ostream &) const
Operator >> (virtual function called by the operator<<).
Definition time_slice.C:411
Lorene::Time_slice::k_uu_evol
Evolution_std< Sym_tensor > k_uu_evol
Values at successive time steps of the contravariant components of the extrinsic curvature tensor .
Definition time_slice.h:213
Lorene::Time_slice::operator<<
friend ostream & operator<<(ostream &, const Time_slice &)
Display.
Definition time_slice.C:453
Lorene::Time_slice::check_dynamical_equations
Tbl check_dynamical_equations(const Sym_tensor *strain_tensor=0x0, const Scalar *energy_density=0x0, ostream &ost=cout, bool verb=true) const
Checks the level at which the dynamical equations are verified.
Definition tslice_check_einstein.C:139
Lorene::Time_slice::set_scheme_order
void set_scheme_order(int ord)
Sets the order of the finite-differences scheme.
Definition time_slice.h:331
Lorene::Time_slice::beta_evol
Evolution_std< Vector > beta_evol
Values at successive time steps of the shift vector .
Definition time_slice.h:219
Lorene::Time_slice::check_momentum_constraint
Tbl check_momentum_constraint(const Vector *momentum_density=0x0, ostream &ost=cout, bool verb=true) const
Checks the level at which the momentum constraints are verified.
Definition tslice_check_einstein.C:109
Lorene::Tslice_dirac_max::trh
virtual const Scalar & trh() const
Computes the trace h, with respect to the flat metric ff , of .
Definition tslice_dirac_max.C:547
Lorene::Tslice_dirac_max::adm_mass
virtual double adm_mass() const
Returns the ADM mass at (geometrical units) the current step.
Definition tslice_adm_mass.C:143
Lorene::Tslice_dirac_max::hh
virtual const Sym_tensor & hh(Param *par_bc=0x0, Param *par_mat=0x0) const
Deviation of the conformal metric from the flat metric : .
Definition tslice_dirac_max.C:474
Lorene::Tslice_dirac_max::solve_psi
virtual Scalar solve_psi(const Scalar *ener_dens=0x0) const
Solves the elliptic equation for the conformal factor $\Psi$ (Hamiltonian constraint).
Definition tslice_dirac_max_solve.C:172
Lorene::Tslice_dirac_max::source_B_hh_evol
Evolution_std< Scalar > source_B_hh_evol
The potential of the source of equation for .
Definition time_slice.h:995
Lorene::Tslice_dirac_max::source_A_hh_evol
Evolution_std< Scalar > source_A_hh_evol
The A potential of the source of equation for .
Definition time_slice.h:989
Lorene::Tslice_dirac_max::evolve
void evolve(double pdt, int nb_time_steps, int niter_elliptic, double relax_elliptic, int check_mod, int save_mod, int method_poisson_vect=6, int nopause=1, const char *graph_device=0x0, bool verbose=true, const Scalar *ener_euler=0x0, const Vector *mom_euler=0x0, const Scalar *s_euler=0x0, const Sym_tensor *strain_euler=0x0)
Time evolution by resolution of Einstein equations.
Definition tslice_dirac_max_evolve.C:120
Lorene::Tslice_dirac_max::B_hh
virtual const Scalar & B_hh() const
Returns the potential of .
Definition tslice_dirac_max.C:536
Lorene::Tslice_dirac_max::initial_data_cts
virtual void initial_data_cts(const Sym_tensor &uu, const Scalar &trk_in, const Scalar &trk_point, double pdt, double precis=1.e-12, int method_poisson_vect=6, const char *graph_device=0x0, const Scalar *ener_dens=0x0, const Vector *mom_dens=0x0, const Scalar *trace_stress=0x0)
Computes valid initial data by solving the constraint equations in the conformal thin-sandwich approa...
Definition tslice_dirac_max.C:352
Lorene::Tslice_dirac_max::A_hh_evol
Evolution_std< Scalar > A_hh_evol
The A potential of .
Definition time_slice.h:977
Lorene::Tslice_dirac_max::~Tslice_dirac_max
virtual ~Tslice_dirac_max()
Destructor.
Definition tslice_dirac_max.C:314
Lorene::Tslice_dirac_max::trk
virtual const Scalar & trk() const
Trace K of the extrinsic curvature at the current time step (jtime ).
Definition tslice_dirac_max.C:491
Lorene::Tslice_dirac_max::hh_det_one
void hh_det_one(int j, Param *par_bc=0x0, Param *par_mat=0x0) const
Computes from the values of A and and using the condition , which fixes the trace of .
Definition tslice_dirac_max_setAB.C:109
Lorene::Tslice_dirac_max::source_B_hata_evol
Evolution_std< Scalar > source_B_hata_evol
The potential of the source of equation for .
Definition time_slice.h:1007
Lorene::Tslice_dirac_max::set_hh
virtual void set_hh(const Sym_tensor &hh_in)
Sets the deviation of the conformal metric from the flat metric : .
Definition tslice_dirac_max.C:336
Lorene::Tslice_dirac_max::compute_sources
void compute_sources(const Sym_tensor *strain_tensor=0x0) const
Computes the sources source_A_XXX_evol and source_B_XXX_evol , for the solution of the evolution equa...
Definition tslice_dirac_max_setAB.C:219
Lorene::Tslice_dirac_max::solve_npsi
virtual Scalar solve_npsi(const Scalar *ener_dens=0x0, const Scalar *trace_stress=0x0) const
Solves the elliptic equation for (maximal slicing condition + Hamiltonian constraint).
Definition tslice_dirac_max_solve.C:118
Lorene::Tslice_dirac_max::set_khi_mu
virtual void set_khi_mu(const Scalar &khi_in, const Scalar &mu_in)
Sets the potentials and of the TT part of (see the documentation of Sym_tensor_tt for details).
Definition tslice_dirac_max.C:408
Lorene::Tslice_dirac_max::sauve
virtual void sauve(FILE *fich, bool partial_save) const
Total or partial saves in a binary file.
Definition tslice_dirac_max.C:587
Lorene::Tslice_dirac_max::set_trh
virtual void set_trh(const Scalar &trh_in)
Sets the trace, with respect to the flat metric ff , of .
Definition tslice_dirac_max.C:437
Lorene::Tslice_dirac_max::A_hh
virtual const Scalar & A_hh() const
Returns the potential A of .
Definition tslice_dirac_max.C:525
Lorene::Tslice_dirac_max::hdirac
virtual const Vector & hdirac() const
Vector which vanishes in Dirac gauge.
Definition tslice_dirac_max.C:507
Lorene::Tslice_dirac_max::solve_beta
virtual Vector solve_beta(int method=6) const
Solves the elliptic equation for the shift vector from (Eq.
Definition tslice_dirac_max_solve.C:224
Lorene::Tslice_dirac_max::Tslice_dirac_max
Tslice_dirac_max(const Scalar &lapse_in, const Vector &shift_in, const Metric_flat &ff_in, const Scalar &psi_in, const Sym_tensor_trans &hh_in, const Sym_tensor &hata_in, int depth_in=3)
Constructor from conformal decomposition.
Definition tslice_dirac_max.C:149
Lorene::Tslice_dirac_max::set_AB_hh
virtual void set_AB_hh(const Scalar &A_in, const Scalar &B_in)
Sets the potentials A and of the TT part of (see the documentation of Sym_tensor for details).
Definition tslice_dirac_max_setAB.C:84
Lorene::Tslice_dirac_max::B_hh_evol
Evolution_std< Scalar > B_hh_evol
The potential of .
Definition time_slice.h:983
Lorene::Tslice_dirac_max::source_A_hata_evol
Evolution_std< Scalar > source_A_hata_evol
The potential A of the source of equation for .
Definition time_slice.h:1001
Lorene::Vector
Tensor field of valence 1.
Definition vector.h:188
Lorene
Lorene prototypes.
Definition app_hor.h:64
Lorene::Map
Map(const Mg3d &)
Constructor from a multi-domain 3D grid.
Definition map.C:139
Lorene::operator>>
virtual ostream & operator>>(ostream &) const =0
Operator >>.