KADATH
Kadath::Metric Class Reference

Purely abstract class for metric handling. More...

#include <metric.hpp>

Inheritance diagram for Kadath::Metric:
Kadath::Metric_AADS Kadath::Metric_ADS Kadath::Metric_cfc Kadath::Metric_conf Kadath::Metric_conf_factor Kadath::Metric_flat Kadath::Metric_flat_nophi Kadath::Metric_general Kadath::Metric_nophi Kadath::Metric_nophi_AADS

Public Member Functions

 Metric (const Metric &)
 Copy constructor. More...
 
virtual ~Metric ()
 Destructor. More...
 
virtual void update ()
 Updates the derived quantities (Christoffels etc..) This is done only for the ones that are needed, i.e. More...
 
virtual void update (int dd)
 Updates the derived quantities (Christoffels etc..) in a given Domain This is done only for the ones that are needed, i.e. More...
 
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. More...
 
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). More...
 
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). More...
 
virtual Term_eq derive_flat (int typeder, char nameder, const Term_eq &so) const
 Computes the covariant flat derivative of a Term_eq. More...
 
virtual const Metricget_background () const
 Returns a pointer on the background metric, if it exists. More...
 
virtual int give_type (int) const
 Returns the type of tensorial basis of the covariant representation, in a given Domain. More...
 
const Term_eqgive_term (int typemet, int dd) const
 Gives one representation of the metric, in a Domain. More...
 
const Term_eqgive_christo (int dd) const
 Gives the Christoffel symbols, in a Domain. More...
 
const Term_eqgive_riemann (int dd) const
 Gives the Riemann tensor, in a Domain. More...
 
const Term_eqgive_ricci_tensor (int dd) const
 Gives the Ricci tensor, in a Domain. More...
 
const Term_eqgive_ricci_scalar (int dd) const
 Gives the Ricci scalar, in a Domain. More...
 
const Term_eqgive_dirac (int dd) const
 Gives the potential of the Dirac gauge, in a Domain. More...
 
const Term_eqgive_det_cov (int dd) const
 Gives the determinant of the covariant metric, in a Domain. More...
 

Protected Member Functions

 Metric (const Space &)
 Constructor from a Space only (internal use only). More...
 
virtual void compute_con (int) const
 Computes the contravariant representation, in a given Domain. More...
 
virtual void compute_cov (int) const
 Computes the covariant representation, in a given Domain. More...
 
virtual void compute_christo (int) const
 Computes the Christoffel symbols, in a given Domain. More...
 
virtual void compute_riemann (int) const
 Computes the Riemann tensor, in a given Domain. More...
 
virtual void compute_ricci_tensor (int) const
 Computes the Ricci tensor, in a given Domain. More...
 
virtual void compute_ricci_scalar (int) const
 Computes the Ricci scalar, in a given Domain. More...
 
virtual void compute_dirac (int) const
 Computes the Dirac gauge term, in a given Domain. More...
 
virtual void compute_det_cov (int) const
 Computes the determinant of the covariant representation, in a given Domain. More...
 

Protected Attributes

const Spaceespace
 The associated Space. More...
 
const System_of_eqssyst
 Pointer of the system of equations where the metric is used (only one for now). More...
 
MMPtr_array< Term_eqp_met_cov
 Array of pointers on various Term_eq. More...
 
MMPtr_array< Term_eqp_met_con
 Array of pointers on various Term_eq. More...
 
MMPtr_array< Term_eqp_christo
 Array of pointers on various Term_eq. More...
 
MMPtr_array< Term_eqp_riemann
 Array of pointers on various Term_eq. More...
 
MMPtr_array< Term_eqp_ricci_tensor
 Array of pointers on various Term_eq. More...
 
MMPtr_array< Term_eqp_ricci_scalar
 Array of pointers on various Term_eq. More...
 
MMPtr_array< Term_eqp_dirac
 Array of pointers on various Term_eq. More...
 
MMPtr_array< Term_eqp_det_cov
 Array of pointers on various Term_eq. More...
 
int type_tensor
 States if one works in the CON or COV representation. More...
 

Friends

class System_of_eqs
 
class Metric_flat
 
class Metric_dirac
 
class Metric_conf
 
class Domain_nucleus
 
class Domain_shell
 
class Domain_compact
 
class Domain_bispheric_rect
 
class Domain_bispheric_chi_first
 
class Domain_bispheric_eta_first
 
class Domain_shell_outer_adapted
 
class Domain_shell_inner_adapted
 
class Domain_nucleus_symphi
 
class Domain_shell_symphi
 
class Domain_compact_symphi
 

Detailed Description

Purely abstract class for metric handling.

Can not be instanciated directly. One must use the various derived classes.

Definition at line 39 of file metric.hpp.

Constructor & Destructor Documentation

◆ Metric() [1/2]

Kadath::Metric::Metric ( const Space sp)
protected

Constructor from a Space only (internal use only).

Definition at line 29 of file metric.cpp.

References espace, Kadath::Space::get_nbr_domains(), p_christo, p_det_cov, p_dirac, p_met_con, p_met_cov, p_ricci_scalar, p_ricci_tensor, and p_riemann.

◆ Metric() [2/2]

Kadath::Metric::Metric ( const Metric so)

◆ ~Metric()

Kadath::Metric::~Metric ( )
virtual

Member Function Documentation

◆ compute_christo()

◆ compute_con()

◆ compute_cov()

◆ compute_det_cov()

void Kadath::Metric::compute_det_cov ( int  ) const
protectedvirtual

Computes the determinant of the covariant representation, in a given Domain.

Reimplemented in Kadath::Metric_harmonic.

Definition at line 750 of file metric.cpp.

◆ compute_dirac()

void Kadath::Metric::compute_dirac ( int  ) const
protectedvirtual

Computes the Dirac gauge term, in a given Domain.

Reimplemented in Kadath::Metric_conf, and Kadath::Metric_general.

Definition at line 745 of file metric.cpp.

◆ compute_ricci_scalar()

void Kadath::Metric::compute_ricci_scalar ( int  dd) const
protectedvirtual

◆ compute_ricci_tensor()

◆ compute_riemann()

◆ derive()

Term_eq Kadath::Metric::derive ( int  typeder,
char  nameder,
const Term_eq so 
) const
virtual

Computes the covariant derivative of a Term_eq (assumes Cartesian basis of decomposition).

The index corresponding to the derivation is given a name. If need be inner summation is performed.

Parameters
typeder: the result is either $D_i$ or $D^i$
nameder: the name given as the derivation index.
so: the Term_eq to be derived.
Returns
: the covariant derivative.

Reimplemented in Kadath::Metric_nophi_AADS, Kadath::Metric_nophi, Kadath::Metric_flat_nophi, Kadath::Metric_cfc, Kadath::Metric_conf_factor, Kadath::Metric_conf, Kadath::Metric_general, Kadath::Metric_flat, Kadath::Metric_AADS, and Kadath::Metric_ADS.

Definition at line 290 of file metric.cpp.

References compute_christo(), Kadath::Term_eq::der_t, derive_partial(), Kadath::Tensor::do_summation_one_dom(), Kadath::Term_eq::get_dom(), Kadath::Tensor::get_index_type(), Kadath::Tensor::get_name_ind(), Kadath::Tensor::get_valence(), manipulate_ind(), p_christo, Kadath::Tensor::set_name_affected(), Kadath::Tensor::set_name_ind(), and Kadath::Term_eq::val_t.

◆ derive_flat()

Term_eq Kadath::Metric::derive_flat ( int  typeder,
char  nameder,
const Term_eq so 
) const
virtual

Computes the covariant flat derivative of a Term_eq.

The index corresponding to the derivation is given a name. If need be inner summation is performed.

Parameters
typeder: the result is either $\bar{D}_i$ or $\bar{D}^i$
nameder: the name given as the derivation index.
so: the Term_eq to be derived.
Returns
: the covariant flat derivative.

Reimplemented in Kadath::Metric_nophi_AADS, Kadath::Metric_nophi, Kadath::Metric_cfc, Kadath::Metric_conf_factor, Kadath::Metric_conf, and Kadath::Metric_general.

Definition at line 402 of file metric.cpp.

◆ derive_partial()

Term_eq Kadath::Metric::derive_partial ( int  typeder,
char  nameder,
const Term_eq so 
) const
virtual

Computes the partial derivative of a Term_eq (assumes Cartesian basis of decomposition).

The index corresponding to the derivation is given a name. If need be inner summation is performed.

Parameters
typeder: the result is either $\partial_i$ or $\partial^i$
nameder: the name given as the derivation index.
so: the Term_eq to be derived.
Returns
: the derivative.

Reimplemented in Kadath::Metric_flat_nophi, and Kadath::Metric_flat.

Definition at line 172 of file metric.cpp.

References compute_con(), compute_cov(), Kadath::Term_eq::der_t, Kadath::Tensor::do_summation_one_dom(), espace, Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Term_eq::get_dom(), Kadath::Tensor::get_index_type(), Kadath::Tensor::get_name_ind(), Kadath::Term_eq::get_type_data(), Kadath::Tensor::get_valence(), Kadath::Index::inc(), Kadath::Tensor::is_name_affected(), manipulate_ind(), p_met_con, p_met_cov, Kadath::Tensor::set(), Kadath::Array< T >::set(), Kadath::Index::set(), Kadath::Scalar::set_domain(), Kadath::Tensor::set_name_affected(), Kadath::Tensor::set_name_ind(), type_tensor, and Kadath::Term_eq::val_t.

◆ get_background()

const Metric * Kadath::Metric::get_background ( ) const
virtual

Returns a pointer on the background metric, if it exists.

Reimplemented in Kadath::Metric_AADS.

Definition at line 167 of file metric.cpp.

◆ give_christo()

const Term_eq * Kadath::Metric::give_christo ( int  dd) const

Gives the Christoffel symbols, in a Domain.

This is the Term_eq version.

Parameters
dd: in which Domain.
Returns
: pointer on the result (being a Term_eq).

Definition at line 124 of file metric.cpp.

References compute_christo(), espace, Kadath::Space::get_nbr_domains(), and p_christo.

◆ give_det_cov()

const Term_eq * Kadath::Metric::give_det_cov ( int  dd) const

Gives the determinant of the covariant metric, in a Domain.

This is the Term_eq version.

Parameters
dd: in which Domain.
Returns
: pointer on the result (being a Term_eq).

Definition at line 159 of file metric.cpp.

References compute_det_cov(), espace, Kadath::Space::get_nbr_domains(), and p_det_cov.

◆ give_dirac()

const Term_eq * Kadath::Metric::give_dirac ( int  dd) const

Gives the potential of the Dirac gauge, in a Domain.

This is the Term_eq version.

Parameters
dd: in which Domain.
Returns
: pointer on the result (being a Term_eq).

Definition at line 152 of file metric.cpp.

References compute_dirac(), espace, Kadath::Space::get_nbr_domains(), and p_dirac.

◆ give_ricci_scalar()

const Term_eq * Kadath::Metric::give_ricci_scalar ( int  dd) const

Gives the Ricci scalar, in a Domain.

This is the Term_eq version.

Parameters
dd: in which Domain.
Returns
: pointer on the result (being a Term_eq).

Definition at line 145 of file metric.cpp.

References compute_ricci_scalar(), espace, Kadath::Space::get_nbr_domains(), and p_ricci_scalar.

◆ give_ricci_tensor()

const Term_eq * Kadath::Metric::give_ricci_tensor ( int  dd) const

Gives the Ricci tensor, in a Domain.

This is the Term_eq version.

Parameters
dd: in which Domain.
Returns
: pointer on the result (being a Term_eq).

Definition at line 138 of file metric.cpp.

References compute_ricci_tensor(), espace, Kadath::Space::get_nbr_domains(), and p_ricci_tensor.

◆ give_riemann()

const Term_eq * Kadath::Metric::give_riemann ( int  dd) const

Gives the Riemann tensor, in a Domain.

This is the Term_eq version.

Parameters
dd: in which Domain.
Returns
: pointer on the result (being a Term_eq).

Definition at line 131 of file metric.cpp.

References compute_riemann(), espace, Kadath::Space::get_nbr_domains(), and p_riemann.

◆ give_term()

const Term_eq * Kadath::Metric::give_term ( int  typemet,
int  dd 
) const

Gives one representation of the metric, in a Domain.

This is the Term_eq version.

Parameters
typemet: CON or COV.
dd: in which Domain.
Returns
: pointer on the result (being a Term_eq).

Definition at line 103 of file metric.cpp.

References compute_con(), compute_cov(), espace, Kadath::Space::get_nbr_domains(), p_met_con, and p_met_cov.

◆ give_type()

int Kadath::Metric::give_type ( int  dd) const
virtual

Returns the type of tensorial basis of the covariant representation, in a given Domain.

Reimplemented in Kadath::Metric_nophi_AADS, Kadath::Metric_nophi, Kadath::Metric_flat_nophi, Kadath::Metric_cfc, Kadath::Metric_conf_factor, Kadath::Metric_conf, Kadath::Metric_general, and Kadath::Metric_flat.

Definition at line 118 of file metric.cpp.

References compute_cov(), and p_met_cov.

◆ manipulate_ind()

◆ update() [1/2]

void Kadath::Metric::update ( )
virtual

Updates the derived quantities (Christoffels etc..) This is done only for the ones that are needed, i.e.

for the ones that have already been computed.

Reimplemented in Kadath::Metric_flat_nophi, Kadath::Metric_AADS, Kadath::Metric_ADS, and Kadath::Metric_flat.

Definition at line 99 of file metric.cpp.

References espace, and Kadath::Space::get_nbr_domains().

◆ update() [2/2]

void Kadath::Metric::update ( int  dd)
virtual

Updates the derived quantities (Christoffels etc..) in a given Domain This is done only for the ones that are needed, i.e.

for the ones that have already been computed.

Parameters
dd: the index of the Domain.

Reimplemented in Kadath::Metric_flat_nophi, Kadath::Metric_flat, Kadath::Metric_AADS, and Kadath::Metric_ADS.

Definition at line 82 of file metric.cpp.

References compute_christo(), compute_con(), compute_cov(), compute_det_cov(), compute_dirac(), compute_ricci_scalar(), compute_ricci_tensor(), compute_riemann(), p_christo, p_det_cov, p_dirac, p_met_con, p_met_cov, p_ricci_scalar, p_ricci_tensor, p_riemann, and type_tensor.

Member Data Documentation

◆ espace

const Space& Kadath::Metric::espace
protected

The associated Space.

Definition at line 42 of file metric.hpp.

◆ p_christo

MMPtr_array<Term_eq> Kadath::Metric::p_christo
mutableprotected

Array of pointers on various Term_eq.

Each one points onto one component of the Christoffel symbols, in a given Domain.

Definition at line 60 of file metric.hpp.

◆ p_det_cov

MMPtr_array<Term_eq> Kadath::Metric::p_det_cov
mutableprotected

Array of pointers on various Term_eq.

Each one points onto determinant of the covariant representation, in a given Domain.

Definition at line 85 of file metric.hpp.

◆ p_dirac

MMPtr_array<Term_eq> Kadath::Metric::p_dirac
mutableprotected

Array of pointers on various Term_eq.

Each one points onto the potential of the Dirac gauge, in a given Domain.

Definition at line 80 of file metric.hpp.

◆ p_met_con

MMPtr_array<Term_eq> Kadath::Metric::p_met_con
mutableprotected

Array of pointers on various Term_eq.

Each one points onto one component of the contravariant representation of the Metric, in a given Domain.

Definition at line 55 of file metric.hpp.

◆ p_met_cov

MMPtr_array<Term_eq> Kadath::Metric::p_met_cov
mutableprotected

Array of pointers on various Term_eq.

Each one points onto one component of the covariant representation of the Metric, in a given Domain.

Definition at line 50 of file metric.hpp.

◆ p_ricci_scalar

MMPtr_array<Term_eq> Kadath::Metric::p_ricci_scalar
mutableprotected

Array of pointers on various Term_eq.

Each one points onto the Ricci scalar, in a given Domain.

Definition at line 75 of file metric.hpp.

◆ p_ricci_tensor

MMPtr_array<Term_eq> Kadath::Metric::p_ricci_tensor
mutableprotected

Array of pointers on various Term_eq.

Each one points onto one component of the Ricci tensor, in a given Domain.

Definition at line 70 of file metric.hpp.

◆ p_riemann

MMPtr_array<Term_eq> Kadath::Metric::p_riemann
mutableprotected

Array of pointers on various Term_eq.

Each one points onto one component of the Riemann tensor, in a given Domain.

Definition at line 65 of file metric.hpp.

◆ syst

const System_of_eqs* Kadath::Metric::syst
protected

Pointer of the system of equations where the metric is used (only one for now).

Definition at line 44 of file metric.hpp.

◆ type_tensor

int Kadath::Metric::type_tensor
protected

States if one works in the CON or COV representation.

Definition at line 86 of file metric.hpp.


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