22 #include "metric_tensor.hpp"
39 class Metric :
public Memory_mapped {
111 virtual void update(
int dd) ;
348 virtual void update(
int) ;
Describes the tensorial basis used by the various tensors.
Class for bispherical coordinates with a symmetry with respect to the plane .
Class for bispherical coordinates with a symmetry with respect to the plane .
Class for bispherical coordinates with a symmetry with respect to the plane .
Class for a spherical compactified domain and a symmetry with respect to the plane and a quadrant sy...
Class for a spherical compactified domain and a symmetry with respect to the plane .
Class for a spherical domain containing the origin a symmetry with respect to the plane and an quadr...
Class for a spherical domain containing the origin and a symmetry with respect to the plane .
Class for a spherical-like domain, having a symmetry with respect to the plane .
Class for a spherical-like domain, having a symmetry with respect to the plane .
Class for a spherical shell and a symmetry with respect to the plane and an quadrant symmetry wrt .
Class for a spherical shell and a symmetry with respect to the plane .
Class to deal with a metric with a conformaly flat metric.
int place_syst
Gives the location of the metric amongst the various unknowns of the associated System_of_eqs.
virtual void compute_christo(int) const
Computes the Christoffel symbols, in a given Domain.
virtual void set_system(System_of_eqs &syst, const char *name)
Associate the metric to a given system of equations.
const Base_tensor & basis
The tensorial basis used.
virtual void compute_ricci_tensor(int) const
Computes the Ricci tensor, in a given Domain.
Scalar * p_conf
Pointer on the Scalar being the conformal factor.
Metric_flat fmet
Associated flat metric.
virtual void compute_riemann(int) const
Computes the Riemann tensor, in a given Domain.
virtual void compute_cov(int) const
Computes the covariant representation, in a given Domain.
virtual int give_type(int) const
Returns the type of tensorial basis of the covariant representation, in a given Domain.
virtual void compute_con(int) const
Computes the contravariant representation, in a given Domain.
Metric_cfc(Scalar &, const Base_tensor &)
Constructor from a Metric_tensor.
virtual Term_eq derive(int, char, const Term_eq &) const
Computes the covariant derivative of a Term_eq (assumes Cartesian basis of decomposition).
virtual Term_eq derive_flat(int, char, const Term_eq &) const
Computes the covariant flat derivative of a Term_eq.
virtual void set_system(System_of_eqs &syst, const char *name)
Associate the metric to a given system of equations.
virtual void compute_cov(int) const
Computes the covariant representation, in a given Domain.
virtual void compute_con(int) const
Computes the contravariant representation, in a given Domain.
Metric_conf_factor_const(Metric_tensor &, const Scalar &conf)
Constructor from a Metric_tensor and a conformal factor.
Class to deal with a metric with a conformal decomposition (mainly used for AADS spacetimes) The true...
virtual Term_eq derive(int, char, const Term_eq &) const
Computes the covariant derivative of a Term_eq (assumes Cartesian basis of decomposition).
Metric_flat fmet
Associated flat metric.
virtual void compute_ricci_tensor(int) const
Computes the Ricci tensor, in a given Domain.
Vector grad_conf
flat gradient of the conformal factor
Metric_conf_factor(Metric_tensor &, const Scalar &conf)
Constructor from a Metric_tensor and a conformal factor.
Metric_tensor * p_met
Pointer on the Metric_tensor describing the coformal metric.
virtual void compute_christo(int) const
Computes the Christoffel symbols, in a given Domain.
virtual void set_system(System_of_eqs &syst, const char *name)
Associate the metric to a given system of equations.
int place_syst
Gives the location of the metric amongst the various unknowns of the associated System_of_eqs.
virtual void compute_cov(int) const
Computes the covariant representation, in a given Domain.
virtual void compute_riemann(int) const
Computes the Riemann tensor, in a given Domain.
virtual Term_eq derive_flat(int, char, const Term_eq &) const
Computes the covariant flat derivative of a Term_eq.
virtual void compute_con(int) const
Computes the contravariant representation, in a given Domain.
Scalar conformal
The conformal factor (must be a purely radial function)
virtual int give_type(int) const
Returns the type of tensorial basis of the covariant representation, in a given Domain.
const Base_tensor & basis
The tensorial basis used.
Class to deal with a metric which determinant is 1.
virtual int give_type(int) const
Returns the type of tensorial basis of the covariant representation, in a given Domain.
virtual void compute_con(int) const
Computes the contravariant representation, in a given Domain.
virtual Term_eq derive_flat(int, char, const Term_eq &) const
Computes the covariant flat derivative of a Term_eq.
Metric_flat fmet
Associated flat metric.
virtual void compute_riemann(int) const
Computes the Riemann tensor, in a given Domain.
Metric_tensor * p_met
Pointer on the Metric_tensor describing the metric.
virtual void compute_dirac(int) const
Computes the Dirac gauge term, in a given Domain.
const Base_tensor & basis
The tensorial basis used.
int place_syst
Gives the location of the metric amongst the various unknowns of the associated System_of_eqs.
virtual Term_eq derive(int, char, const Term_eq &) const
Computes the covariant derivative of a Term_eq (assumes Cartesian basis of decomposition).
virtual void compute_ricci_tensor(int) const
Computes the Ricci tensor, in a given Domain.
virtual void compute_cov(int) const
Computes the covariant representation, in a given Domain.
virtual void set_system(System_of_eqs &syst, const char *name)
Associate the metric to a given system of equations.
virtual void compute_christo(int) const
Computes the Christoffel symbols, in a given Domain.
Class to deal with arbitrary type of metric but that is constant.
virtual void compute_cov(int) const
Computes the covariant representation, in a given Domain.
virtual void set_system(System_of_eqs &syst, const char *name)
Associate the metric to a given system of equations.
virtual void compute_con(int) const
Computes the contravariant representation, in a given Domain.
Metric_const(Metric_tensor &)
Constructor from a Metric_tensor.
Class to deal with a conformal metric in the Dirac gauge.
virtual void set_system(System_of_eqs &syst, const char *name)
Associate the metric to a given system of equations.
virtual void compute_con(int) const
Computes the contravariant representation, in a given Domain.
virtual void compute_cov(int) const
Computes the covariant representation, in a given Domain.
Metric_dirac_const(Metric_tensor &)
Constructor from a Metric_tensor.
Class to deal with a conformal metric in the Dirac gauge.
virtual void compute_ricci_tensor(int) const
Computes the Ricci tensor, in a given Domain.
virtual void compute_ricci_scalar(int) const
Computes the Ricci scalar, in a given Domain.
const Metric_flat & get_fmet() const
Class that deals with flat metric.
virtual void compute_cov(int) const
Computes the covariant representation, in a given Domain.
virtual Term_eq derive_partial(int, char, const Term_eq &) const
Computes the partial derivative of a Term_eq (assumes Cartesian basis of decomposition).
Term_eq derive_partial_cart(int tder, char indder, const Term_eq &so) const
Computes the partial derivative part of the covariant derivative, in Cartesian coordinates.
Term_eq derive_partial_spher(int tder, char indder, const Term_eq &so) const
Computes the partial derivative part of the covariant derivative, in orthonormal spherical coordinate...
Term_eq derive_spher(int tder, char indder, const Term_eq &so) const
Computes the flat covariant derivative, in orthonormal spherical coordinates.
Term_eq derive_with_other(int tder, char indder, const Term_eq &so, const Metric *othermet) const
Computes the flat covariant derivative.
Term_eq derive_mtz(int tder, char indder, const Term_eq &so) const
Computes the flat covariant derivative, in orthonormal coordinates where the constant radii sections ...
const Base_tensor & basis
The tensorial basis used.
virtual int give_type(int) const
Returns the type of tensorial basis of the covariant representation, in a given Domain.
virtual void compute_ricci_tensor(int) const
Computes the Ricci tensor, in a given Domain.
Term_eq derive_with_other_cart(int tder, char indder, const Term_eq &so, const Metric *othermet) const
Computes the flat covariant derivative, in Cartesian coordinates.
virtual void update()
Updates the derived quantities (Christoffels etc..) This is done only for the ones that are needed,...
Term_eq derive_partial_mtz(int tder, char indder, const Term_eq &so) const
Computes the partial derivative part of the covariant derivative, in orthonormal coordinates where th...
virtual void set_system(System_of_eqs &syst, const char *name)
Associate the metric to a given system of equations.
virtual void manipulate_ind(Term_eq &, int) const
Uses the Metric to manipulate one of the index of a Term_eq (i.e.
virtual void compute_christo(int) const
Computes the Christoffel symbols, in a given Domain.
virtual Term_eq derive(int, char, const Term_eq &) const
Computes the covariant derivative of a Term_eq (assumes Cartesian basis of decomposition).
Term_eq derive_with_other_mtz(int tder, char indder, const Term_eq &so, const Metric *othermet) const
Computes the flat covariant derivative, in orthonormal coordinates where the constant radii sections ...
Term_eq derive_cart(int tder, char indder, const Term_eq &so) const
Computes the flat covariant derivative, in Cartesian coordinates.
virtual void compute_ricci_scalar(int) const
Computes the Ricci scalar, in a given Domain.
Term_eq derive_with_other_spher(int tder, char indder, const Term_eq &so, const Metric *othermet) const
Computes the flat covariant derivative, in orthonormal spherical coordinates.
virtual void compute_con(int) const
Computes the contravariant representation, in a given Domain.
Class to deal with arbitrary type of metric.
virtual void compute_dirac(int) const
Computes the Dirac gauge term, in a given Domain.
Metric_tensor * p_met
Pointer on the Metric_tensor describing the metric.
Metric_general(Metric_tensor &)
Constructor from a Metric_tensor.
virtual void compute_ricci_tensor(int) const
Computes the Ricci tensor, in a given Domain.
Metric_flat fmet
Associated flat metric.
virtual void compute_christo(int) const
Computes the Christoffel symbols, in a given Domain.
virtual int give_type(int) const
Returns the type of tensorial basis of the covariant representation, in a given Domain.
virtual void set_system(System_of_eqs &syst, const char *name)
Associate the metric to a given system of equations.
virtual void compute_cov(int) const
Computes the covariant representation, in a given Domain.
virtual void compute_riemann(int) const
Computes the Riemann tensor, in a given Domain.
int place_syst
Gives the location of the metric amongst the various unknowns of the associated System_of_eqs.
const Base_tensor & basis
The tensorial basis used.
virtual Term_eq derive_flat(int, char, const Term_eq &) const
Computes the covariant flat derivative of a Term_eq.
virtual Term_eq derive(int, char, const Term_eq &) const
Computes the covariant derivative of a Term_eq (assumes Cartesian basis of decomposition).
virtual void compute_con(int) const
Computes the contravariant representation, in a given Domain.
Class to deal with a metric in the spatial harmonic gauge.
const Metric_flat & get_fmet() const
virtual void compute_det_cov(int) const
Computes the determinant of the covariant representation, in a given Domain.
Metric_harmonic(Metric_tensor &)
Constructor from a Metric_tensor.
virtual void compute_ricci_scalar(int) const
Computes the Ricci scalar, in a given Domain.
virtual void compute_ricci_tensor(int) const
Computes the Ricci tensor, in a given Domain.
Particular type of Tensor, dedicated to the desription of metrics.
Purely abstract class for metric handling.
virtual void compute_det_cov(int) const
Computes the determinant of the covariant representation, in a given Domain.
const Term_eq * give_riemann(int dd) const
Gives the Riemann tensor, in a Domain.
int type_tensor
States if one works in the CON or COV representation.
const Term_eq * give_christo(int dd) const
Gives the Christoffel symbols, in a Domain.
const Term_eq * give_det_cov(int dd) const
Gives the determinant of the covariant metric, in a Domain.
MMPtr_array< Term_eq > p_ricci_tensor
Array of pointers on various Term_eq.
const Term_eq * give_term(int typemet, int dd) const
Gives one representation of the metric, in a Domain.
virtual Term_eq derive_partial(int typeder, char nameder, const Term_eq &so) const
Computes the partial derivative of a Term_eq (assumes Cartesian basis of decomposition).
const Term_eq * give_dirac(int dd) const
Gives the potential of the Dirac gauge, in a Domain.
virtual Term_eq derive(int typeder, char nameder, const Term_eq &so) const
Computes the covariant derivative of a Term_eq (assumes Cartesian basis of decomposition).
virtual void compute_dirac(int) const
Computes the Dirac gauge term, in a given Domain.
const Term_eq * give_ricci_scalar(int dd) const
Gives the Ricci scalar, in a Domain.
const Term_eq * give_ricci_tensor(int dd) const
Gives the Ricci tensor, in a Domain.
virtual void compute_con(int) const
Computes the contravariant representation, in a given Domain.
virtual void compute_ricci_tensor(int) const
Computes the Ricci tensor, in a given Domain.
virtual void update()
Updates the derived quantities (Christoffels etc..) This is done only for the ones that are needed,...
virtual const Metric * get_background() const
Returns a pointer on the background metric, if it exists.
const Space & espace
The associated Space.
MMPtr_array< Term_eq > p_met_cov
Array of pointers on various Term_eq.
MMPtr_array< Term_eq > p_met_con
Array of pointers on various Term_eq.
virtual void manipulate_ind(Term_eq &so, int ind) const
Uses the Metric to manipulate one of the index of a Term_eq (i.e.
virtual void compute_ricci_scalar(int) const
Computes the Ricci scalar, in a given Domain.
MMPtr_array< Term_eq > p_dirac
Array of pointers on various Term_eq.
MMPtr_array< Term_eq > p_riemann
Array of pointers on various Term_eq.
MMPtr_array< Term_eq > p_christo
Array of pointers on various Term_eq.
virtual void compute_christo(int) const
Computes the Christoffel symbols, in a given Domain.
MMPtr_array< Term_eq > p_ricci_scalar
Array of pointers on various Term_eq.
MMPtr_array< Term_eq > p_det_cov
Array of pointers on various Term_eq.
virtual ~Metric()
Destructor.
Metric(const Space &)
Constructor from a Space only (internal use only).
const System_of_eqs * syst
Pointer of the system of equations where the metric is used (only one for now).
virtual void compute_riemann(int) const
Computes the Riemann tensor, in a given Domain.
virtual int give_type(int) const
Returns the type of tensorial basis of the covariant representation, in a given Domain.
virtual void compute_cov(int) const
Computes the covariant representation, in a given Domain.
virtual Term_eq derive_flat(int typeder, char nameder, const Term_eq &so) const
Computes the covariant flat derivative of a Term_eq.
The class Scalar does not really implements scalars in the mathematical sense but rather tensorial co...
The Space class is an ensemble of domains describing the whole space of the computation.
Class used to describe and solve a system of equations.
This class is intended to describe the manage objects appearing in the equations.
A class derived from Tensor to deal specificaly with objects of valence 1 (and so also 1-forms).