Lorene::Time_slice Class Reference
Time evolution (<em><strong>under development</strong></em>)

Spacelike time slice of a 3+1 spacetime. More...

`#include <time_slice.h>`

Inheritance diagram for Lorene::Time_slice:

## Public Member Functions

| 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).
| Time_slice (const Scalar &lapse_in, const Vector &shift_in, const Evolution_std< Sym_tensor > &gamma_in)
| General constructor (Lagrangian-like).
| Time_slice (const Map &mp, const Base_vect &triad, int depth_in=3)
| Constructor as standard time slice of flat spacetime (Minkowski).
| Time_slice (const Map &mp, const Base_vect &triad, FILE *fich, bool partial_read, int depth_in=3)
| Constructor from binary file.
| Time_slice (const Time_slice &)
| Copy constructor.
virtual | ~Time_slice ()
| Destructor.
void | operator= (const Time_slice &)
| Assignment to another `Time_slice`.
void | set_scheme_order (int ord)
| Sets the order of the finite-differences scheme.
int | get_scheme_order () const
| Gets the order of the finite-differences scheme.
int | get_latest_j () const
| Gets the latest value of time step index.
const Evolution_std< double > & | get_time () const
| Gets the time coordinate t at successive time steps.
virtual const Scalar & | nn () const
| Lapse function N at the current time step (`jtime` ).
virtual const Vector & | beta () const
| shift vector at the current time step (`jtime` )
const Metric & | gam () const
| Induced metric at the current time step (`jtime` ).
virtual const Sym_tensor & | gam_dd () const
| Induced metric (covariant components ) at the current time step (`jtime` ).
virtual const Sym_tensor & | gam_uu () const
| Induced metric (contravariant components ) at the current time step (`jtime` ).
virtual const Sym_tensor & | k_dd () const
| Extrinsic curvature tensor (covariant components ) at the current time step (`jtime` ).
virtual const Sym_tensor & | k_uu () const
| Extrinsic curvature tensor (contravariant components ) at the current time step (`jtime` ).
virtual const Scalar & | trk () const
| Trace K of the extrinsic curvature at the current time step (`jtime` ).
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.
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.
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.
virtual double | adm_mass () const
| Returns the ADM mass (geometrical units) at the current step.
void | save (const char *rootname) const
| Saves in a binary file.

## Protected Member Functions

| Time_slice (int depth_in)
| Special constructor for derived classes.
virtual void | del_deriv () const
| Deletes all the derived quantities.
void | set_der_0x0 () const
| Sets to `0x0` all the pointers on derived quantities.
virtual ostream & | operator>> (ostream &) const
| Operator >> (virtual function called by the operator<<).
virtual void | sauve (FILE *fich, bool partial_save) const
| Total or partial saves in a binary file.

## Protected Attributes

int | depth
| Number of stored time slices.
int | scheme_order
| Order of the finite-differences scheme for the computation of time derivatives.
int | jtime
| Time step index of the latest slice.
Evolution_std< double > | the_time
| Time label of each slice.
Evolution_std< Sym_tensor > | gam_dd_evol
| Values at successive time steps of the covariant components of the induced metric .
Evolution_std< Sym_tensor > | gam_uu_evol
| Values at successive time steps of the contravariant components of the induced metric .
Evolution_std< Sym_tensor > | k_dd_evol
| Values at successive time steps of the covariant components of the extrinsic curvature tensor .
Evolution_std< Sym_tensor > | k_uu_evol
| Values at successive time steps of the contravariant components of the extrinsic curvature tensor .
Evolution_std< Scalar > | n_evol
| Values at successive time steps of the lapse function N.
Evolution_std< Vector > | beta_evol
| Values at successive time steps of the shift vector .
Evolution_std< Scalar > | trk_evol
| Values at successive time steps of the trace K of the extrinsic curvature.
Evolution_full< Tbl > | adm_mass_evol
| ADM mass at each time step, since the creation of the slice.
Metric * | p_gamma
| Pointer on the induced metric at the current time step (`jtime`).

## Friends

ostream & | operator<< (ostream &flux, const Time_slice &sigma)
| Display.

## Detailed Description

Spacelike time slice of a 3+1 spacetime.

()

Definition at line 173 of file time_slice.h.

## Constructor & Destructor Documentation

## Time_slice() [1/6]

Lorene::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).

Parameters

  lapse_in | lapse function N
  shift_in | shift vector
  gamma_in | induced metric (covariant or contravariant components)
  kk_in | extrinsic curvature (covariant or contravariant components)
  depth_in | number of stored time slices; this parameter is used to set the `scheme_order` member with `scheme_order` = `depth_in` - 1. `scheme_order` can be changed afterwards by the method `set_scheme_order(int)`.

Definition at line 112 of file time_slice.C.

References adm_mass_evol, beta_evol, depth, gam_dd_evol, gam_uu_evol, Lorene::Tensor::get_index_type(), jtime, k_dd_evol, k_uu_evol, n_evol, p_gamma, scheme_order, set_der_0x0(), the_time, Lorene::Tensor::trace(), and trk_evol.

## Time_slice() [2/6]

Lorene::Time_slice::Time_slice | ( | const Scalar & | lapse_in,
|  | const Vector & | shift_in,
|  | const Evolution_std< Sym_tensor > & | gamma_in )

General constructor (Lagrangian-like).

Parameters

  lapse_in | lapse function N
  shift_in | shift vector
  gamma_in | induced metric (covariant or contravariant components) at various time steps; note that the `scheme_order` member is set to `gamma_in.size` - 1. `scheme_order` can be changed afterwards by the method `set_scheme_order(int)`.

Definition at line 155 of file time_slice.C.

References adm_mass_evol, beta_evol, depth, gam_dd_evol, gam_uu_evol, jtime, k_dd_evol, k_uu_evol, n_evol, scheme_order, set_der_0x0(), the_time, and trk_evol.

## Time_slice() [3/6]

Lorene::Time_slice::Time_slice | ( | const Map & | mp,
|  | const Base_vect & | triad,
|  | int | depth_in = 3 )

Constructor as standard time slice of flat spacetime (Minkowski).

Parameters

  mp | Mapping on which the various Lorene fields will be constructed
  triad | vector basis with respect to which the various tensor components will be defined
  depth_in | number of stored time slices; this parameter is used to set the `scheme_order` member with `scheme_order` = `depth_in` - 1. `scheme_order` can be changed afterwards by the method `set_scheme_order(int)`.

Definition at line 180 of file time_slice.C.

References adm_mass_evol, beta_evol, depth, gam_dd_evol, gam_uu_evol, jtime, k_dd_evol, k_uu_evol, Lorene::Map(), n_evol, scheme_order, set_der_0x0(), Lorene::Scalar::set_etat_one(), Lorene::Scalar::set_etat_zero(), Lorene::Tensor::set_etat_zero(), Lorene::Scalar::std_spectral_base(), the_time, and trk_evol.

## Time_slice() [4/6]

Lorene::Time_slice::Time_slice | ( | const Map & | mp,
|  | const Base_vect & | triad,
|  | FILE * | fich,
|  | bool | partial_read,
|  | int | depth_in = 3 )

Constructor from binary file.

The binary file must have been created by method `save`.

Parameters

  mp | Mapping on which the various Lorene fields will be constructed
  triad | vector basis with respect to which the various tensor components will be defined
  fich | file containing the saved `Time_slice`
  partial_read | indicates whether the full object must be read in file or whether the final construction is devoted to a constructor of a derived class
  depth_in | number of stored time slices; the given value must coincide with that stored in the file.

Definition at line 235 of file time_slice.C.

References adm_mass_evol, beta_evol, depth, Lorene::fread_be(), gam_dd_evol, gam_uu_evol, jtime, k_dd_evol, k_uu_evol, Lorene::Map(), n_evol, scheme_order, set_der_0x0(), the_time, and trk_evol.

## Time_slice() [5/6]

Lorene::Time_slice::Time_slice | ( | const Time_slice & | tin | ) |

Copy constructor.

Definition at line 314 of file time_slice.C.

References adm_mass_evol, beta_evol, depth, gam_dd_evol, gam_uu_evol, jtime, k_dd_evol, k_uu_evol, n_evol, scheme_order, set_der_0x0(), the_time, Time_slice(), and trk_evol.

## Time_slice() [6/6]

Lorene::Time_slice::Time_slice | ( | int | depth_in | ) |

explicit protected

Special constructor for derived classes.

Definition at line 333 of file time_slice.C.

References adm_mass_evol, beta_evol, depth, gam_dd_evol, gam_uu_evol, jtime, k_dd_evol, k_uu_evol, n_evol, scheme_order, set_der_0x0(), the_time, and trk_evol.

## ~Time_slice()

Lorene::Time_slice::~Time_slice | ( |  | ) |

virtual

Destructor.

Definition at line 357 of file time_slice.C.

References del_deriv().

## Member Function Documentation

## adm_mass()

double Lorene::Time_slice::adm_mass | ( |  | ) | const

virtual

Returns the ADM mass (geometrical units) at the current step.

Moreover this method updates `adm_mass_evol` if necessary.

Reimplemented in Lorene::Tslice_dirac_max.

Definition at line 74 of file tslice_adm_mass.C.

References adm_mass_evol, Lorene::Tensor::derive_con(), Lorene::Tensor_sym::derive_con(), Lorene::Vector::flux(), gam_dd(), Lorene::Tensor::get_mp(), Lorene::Tbl::get_taille(), jtime, Lorene::Map(), Lorene::Tbl::set(), Lorene::Tbl::set_etat_qcq(), the_time, Lorene::Tensor::trace(), and Lorene::Tensor::up().

## beta()

const Vector & Lorene::Time_slice::beta | ( |  | ) | const

virtual

shift vector at the current time step (`jtime` )

Definition at line 87 of file time_slice_access.C.

References beta_evol, and jtime.

## check_dynamical_equations()

Tbl Lorene::Time_slice::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.

Parameters

  strain_tensor | : a pointer on the strain_tensor measured by the Eulerian observer of 4-velocity ; if this is the null pointer, it is assumed that = 0 (vacuum).
  energy_density | : a pointer on the energy density E (see `check_hamiltonian_constraint`)
  ost | : output stream for a formatted output of the result

Returns
  Tbl 3D of size the number of domains times 3 times 3 (corresponding to the rank-2 tensor, with the symmetry in the components) containing the absolute ( if = 0 ) or the relative (in presence of matter) error in max version.

Definition at line 139 of file tslice_check_einstein.C.

References Lorene::Tensor::annule_domain(), Lorene::Tbl::annule_hard(), beta(), Lorene::contract(), Lorene::Scalar::derive_con(), Lorene::Tensor::derive_con(), Lorene::Sym_tensor::derive_lie(), gam(), Lorene::Tbl::get_dim(), Lorene::Tensor::get_mp(), jtime, k_dd(), k_dd_evol, k_uu(), Lorene::maxabs(), nn(), Lorene::Tensor_sym::position(), Lorene::Metric::ricci(), scheme_order, Lorene::Itbl::set(), Lorene::Tbl::set(), Lorene::Tensor::trace(), trk(), and Lorene::Tensor::up_down().

## check_hamiltonian_constraint()

Tbl Lorene::Time_slice::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.

Parameters

  energy_density | : a pointer on the energy density E measured by the Eulerian observer of 4-velocity ; if this is the null pointer, it is assumed that E = 0 (vacuum).
  ost | : output stream for a formatted output of the result

Returns
  Tbl of size the number of domains containing the absolute ( if E = 0 ) or the relative (in presence of matter) error in max version.

Definition at line 79 of file tslice_check_einstein.C.

References Lorene::contract(), Lorene::Scalar::dec_dzpuis(), gam(), k_dd(), k_uu(), Lorene::maxabs(), Lorene::Metric::ricci_scal(), and trk().

## check_momentum_constraint()

Tbl Lorene::Time_slice::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.

Parameters

  momentum_density | : a pointer on the momentum density measured by the Eulerian observer of 4-velocity ; if this is the null pointer, it is assumed that = 0 (vacuum).
  ost | : output stream for a formatted output of the result

Returns
  Tbl 2D of size the number of domains times 3 (components)containing the absolute ( if = 0 ) or the relative (in presence of matter) error in max version.

Definition at line 109 of file tslice_check_einstein.C.

References Lorene::Scalar::derive_con(), Lorene::Sym_tensor::divergence(), gam(), Lorene::Tensor::get_index_type(), k_uu(), Lorene::maxabs(), and trk().

## del_deriv()

void Lorene::Time_slice::del_deriv | ( |  | ) | const

protected virtual

Deletes all the derived quantities.

Reimplemented in Lorene::Time_slice_conf.

Definition at line 367 of file time_slice.C.

References adm_mass_evol, jtime, p_gamma, and set_der_0x0().

## gam()

const Metric & Lorene::Time_slice::gam | ( |  | ) | const

Induced metric at the current time step (`jtime` ).

Definition at line 95 of file time_slice_access.C.

References gam_dd(), and p_gamma.

## gam_dd()

const Sym_tensor & Lorene::Time_slice::gam_dd | ( |  | ) | const

virtual

Induced metric (covariant components ) at the current time step (`jtime` ).

Reimplemented in Lorene::Time_slice_conf.

Definition at line 107 of file time_slice_access.C.

References gam_dd_evol, gam_uu_evol, jtime, p_gamma, and the_time.

## gam_uu()

const Sym_tensor & Lorene::Time_slice::gam_uu | ( |  | ) | const

virtual

Induced metric (contravariant components ) at the current time step (`jtime` ).

Reimplemented in Lorene::Time_slice_conf.

Definition at line 122 of file time_slice_access.C.

References gam(), gam_dd_evol, gam_uu_evol, jtime, and the_time.

## get_latest_j()

int Lorene::Time_slice::get_latest_j | ( |  | ) | const

inline

Gets the latest value of time step index.

Definition at line 343 of file time_slice.h.

References jtime.

## get_scheme_order()

int Lorene::Time_slice::get_scheme_order | ( |  | ) | const

inline

Gets the order of the finite-differences scheme.

Definition at line 340 of file time_slice.h.

References scheme_order.

## get_time()

const Evolution_std< double > & Lorene::Time_slice::get_time | ( |  | ) | const

inline

Gets the time coordinate t at successive time steps.

Definition at line 346 of file time_slice.h.

References the_time.

## k_dd()

const Sym_tensor & Lorene::Time_slice::k_dd | ( |  | ) | const

virtual

Extrinsic curvature tensor (covariant components ) at the current time step (`jtime` ).

Reimplemented in Lorene::Time_slice_conf.

Definition at line 135 of file time_slice_access.C.

References beta(), Lorene::Tensor::down(), gam(), gam_dd(), gam_dd_evol, jtime, k_dd_evol, nn(), Lorene::Vector::ope_killing(), scheme_order, and the_time.

## k_uu()

const Sym_tensor & Lorene::Time_slice::k_uu | ( |  | ) | const

virtual

Extrinsic curvature tensor (contravariant components ) at the current time step (`jtime` ).

Reimplemented in Lorene::Time_slice_conf.

Definition at line 157 of file time_slice_access.C.

References beta(), gam(), gam_uu(), gam_uu_evol, jtime, k_uu_evol, nn(), Lorene::Vector::ope_killing(), scheme_order, and the_time.

## nn()

const Scalar & Lorene::Time_slice::nn | ( |  | ) | const

virtual

Lapse function N at the current time step (`jtime` ).

Reimplemented in Lorene::Time_slice_conf.

Definition at line 79 of file time_slice_access.C.

References jtime, and n_evol.

## operator=()

void Lorene::Time_slice::operator= | ( | const Time_slice & | tin | ) |

Assignment to another `Time_slice`.

Definition at line 388 of file time_slice.C.

References beta_evol, del_deriv(), depth, gam_dd_evol, gam_uu_evol, jtime, k_dd_evol, k_uu_evol, n_evol, scheme_order, the_time, Time_slice(), and trk_evol.

## operator>>()

ostream & Lorene::Time_slice::operator>> | ( | ostream & | flux | ) | const

protected virtual

Operator >> (virtual function called by the operator<<).

Reimplemented in Lorene::Isol_hor.

Definition at line 411 of file time_slice.C.

References adm_mass(), adm_mass_evol, beta_evol, depth, gam_dd_evol, gam_uu_evol, jtime, k_dd_evol, k_uu_evol, Lorene::maxabs(), n_evol, p_gamma, scheme_order, the_time, and trk_evol.

## sauve()

void Lorene::Time_slice::sauve | ( | FILE * | fich,
|  | bool | partial_save ) const

protected virtual

Total or partial saves in a binary file.

This protected method is to be called either from public method `save` or from method `sauve` of a derived class.

Parameters

  fich | binary file
  partial_save | indicates whether the whole object must be saved.

Reimplemented in Lorene::Isol_hor, and Lorene::Tslice_dirac_max.

Definition at line 507 of file time_slice.C.

References beta(), beta_evol, depth, Lorene::fwrite_be(), jtime, n_evol, nn(), scheme_order, and the_time.

## save()

void Lorene::Time_slice::save | ( | const char * | rootname | ) | const

Saves in a binary file.

The saved data is sufficient to restore the whole time slice via the constructor from file.

Parameters

  rootname | root for the file name; the current time step index will be appended to it.

Definition at line 461 of file time_slice.C.

References beta(), depth, Lorene::fwrite_be(), Lorene::Tensor::get_mp(), Lorene::Tensor::get_triad(), jtime, Lorene::Map(), nn(), Lorene::Base_vect::sauve(), Lorene::Mg3d::sauve(), and sauve().

## set_der_0x0()

void Lorene::Time_slice::set_der_0x0 | ( |  | ) | const

protected

Sets to `0x0` all the pointers on derived quantities.

Definition at line 377 of file time_slice.C.

References p_gamma.

## set_scheme_order()

void Lorene::Time_slice::set_scheme_order | ( | int | ord | ) |

inline

Sets the order of the finite-differences scheme.

Definition at line 331 of file time_slice.h.

References scheme_order.

## trk()

const Scalar & Lorene::Time_slice::trk | ( |  | ) | const

virtual

Trace K of the extrinsic curvature at the current time step (`jtime` ).

Reimplemented in Lorene::Time_slice_conf, and Lorene::Tslice_dirac_max.

Definition at line 177 of file time_slice_access.C.

References gam(), jtime, k_dd(), k_uu(), k_uu_evol, the_time, and trk_evol.

## Friends And Related Symbol Documentation

## operator<<

ostream & operator<< | ( | ostream & | flux,
|  | const Time_slice & | sigma )

friend

Display.

Definition at line 453 of file time_slice.C.

References operator<<, and Time_slice().

## Member Data Documentation

## adm_mass_evol

Evolution_full<Tbl> Lorene::Time_slice::adm_mass_evol

mutable protected

ADM mass at each time step, since the creation of the slice.

At a given time step `j`, `adm_mass_evol`[j] is a 1-D `Tbl` of size the number `nz` of domains, containing the "ADM mass" evaluated at the outer boundary of each domain. The true ADM mass is thus the last value, i.e. `adm_mass_evol`[j](nz-1).

Definition at line 233 of file time_slice.h.

## beta_evol

Evolution_std<Vector> Lorene::Time_slice::beta_evol

mutable protected

Values at successive time steps of the shift vector .

Definition at line 219 of file time_slice.h.

## depth

int Lorene::Time_slice::depth

protected

Number of stored time slices.

Definition at line 179 of file time_slice.h.

## gam_dd_evol

Evolution_std<Sym_tensor> Lorene::Time_slice::gam_dd_evol

mutable protected

Values at successive time steps of the covariant components of the induced metric .

Definition at line 198 of file time_slice.h.

## gam_uu_evol

Evolution_std<Sym_tensor> Lorene::Time_slice::gam_uu_evol

mutable protected

Values at successive time steps of the contravariant components of the induced metric .

Definition at line 203 of file time_slice.h.

## jtime

int Lorene::Time_slice::jtime

protected

Time step index of the latest slice.

Definition at line 190 of file time_slice.h.

## k_dd_evol

Evolution_std<Sym_tensor> Lorene::Time_slice::k_dd_evol

mutable protected

Values at successive time steps of the covariant components of the extrinsic curvature tensor .

Definition at line 208 of file time_slice.h.

## k_uu_evol

Evolution_std<Sym_tensor> Lorene::Time_slice::k_uu_evol

mutable protected

Values at successive time steps of the contravariant components of the extrinsic curvature tensor .

Definition at line 213 of file time_slice.h.

## n_evol

Evolution_std<Scalar> Lorene::Time_slice::n_evol

mutable protected

Values at successive time steps of the lapse function N.

Definition at line 216 of file time_slice.h.

## p_gamma

Metric* Lorene::Time_slice::p_gamma

mutable protected

Pointer on the induced metric at the current time step (`jtime`).

Definition at line 239 of file time_slice.h.

## scheme_order

int Lorene::Time_slice::scheme_order

protected

Order of the finite-differences scheme for the computation of time derivatives.

This order is not constant and can be adjusted via `set_scheme_order()` .

Definition at line 187 of file time_slice.h.

## the_time

Evolution_std<double> Lorene::Time_slice::the_time

protected

Time label of each slice.

Definition at line 193 of file time_slice.h.

## trk_evol

Evolution_std<Scalar> Lorene::Time_slice::trk_evol

mutable protected

Values at successive time steps of the trace K of the extrinsic curvature.

Definition at line 224 of file time_slice.h.

The documentation for this class was generated from the following files:

- time_slice.h
- time_slice.C
- time_slice_access.C
- tslice_adm_mass.C
- tslice_check_einstein.C