Lorene::Connection Class Reference
Tensorial fields

Class Connection. More...

`#include <connection.h>`

Inheritance diagram for Lorene::Connection:

## Public Member Functions

| Connection (const Tensor_sym &delta_i, const Metric_flat &flat_met_i)
| Standard constructor ab initio.
| Connection (const Metric &met, const Metric_flat &flat_met_i)
| Standard constructor for a connection associated with a metric.
| Connection (const Connection &)
| Copy constructor.
virtual | ~Connection ()
| Destructor.
void | operator= (const Connection &)
| Assignment to another `Connection`.
void | update (const Tensor_sym &delta_i)
| Update the connection when it is defined ab initio.
void | update (const Metric &met)
| Update the connection when it is associated with a metric.
const Map & | get_mp () const
| Returns the mapping.
const Tensor_sym & | get_delta () const
| Returns the tensor which defines the connection with respect to the flat one: is the difference between the connection coefficients and the connection coefficients of the flat connection.
virtual Tensor * | p_derive_cov (const Tensor &tens) const
| Computes the covariant derivative of a tensor (with respect to the current connection).
virtual Tensor * | p_divergence (const Tensor &tens) const
| Computes the divergence of a tensor (with respect to the current connection).
virtual const Tensor & | ricci () const
| Computes (if not up to date) and returns the Ricci tensor associated with the current connection.

## Protected Member Functions

| Connection (const Map &, const Base_vect &)
| Constructor for derived classes.
void | del_deriv () const
| Deletes all the derived quantities.
void | set_der_0x0 () const
| Sets to `0x0` all the pointers on derived quantities.

## Protected Attributes

const Map *const | mp
| Reference mapping.
const Base_vect *const | triad
| Triad with respect to which the connection coefficients are defined.
Tensor_sym | delta
| Tensor which defines the connection with respect to the flat one: is the difference between the connection coefficients and the connection coefficients of the flat connection.
bool | assoc_metric
| Indicates whether the connection is associated with a metric (in which case the Ricci tensor is symmetric, i.e.
Tensor * | p_ricci
| Pointer of the Ricci tensor associated with the connection.

## Private Member Functions

void | fait_delta (const Metric &)
| Computes the difference between the connection coefficients and that a the flat connection in the case where the current connection is associated with a metric.

## Private Attributes

const Metric_flat * | flat_met
| Flat metric with respect to which (member `delta` ) is defined.

## Detailed Description

Class Connection.

()

This class deals only with torsion-free connections.

Note that we use the MTW convention for the indices of the connection coefficients with respect to a given triad :

Definition at line 113 of file connection.h.

## Constructor & Destructor Documentation

## Connection() [1/4]

Lorene::Connection::Connection | ( | const Tensor_sym & | delta_i,
|  | const Metric_flat & | flat_met_i )

Standard constructor ab initio.

Parameters

  delta_i | tensor which defines the connection with respect to the flat one: is the difference between the connection coefficients and the connection coefficients of the flat connection. The connection coefficients with respect to the triad are defined according to the MTW convention: must be symmetric with respect to the indices j and k.
  flat_met_i | flat metric with respect to which is defined

Definition at line 129 of file connection.C.

References assoc_metric, delta, flat_met, Lorene::Tensor::get_index_type(), get_mp(), Lorene::Tensor::get_valence(), mp, set_der_0x0(), Lorene::Tensor_sym::sym_index1(), Lorene::Tensor_sym::sym_index2(), and triad.

## Connection() [2/4]

Lorene::Connection::Connection | ( | const Metric & | met,
|  | const Metric_flat & | flat_met_i )

Standard constructor for a connection associated with a metric.

Parameters

  met | Metric to which the connection will be associated
  flat_met_i | flat metric to define the representation of the connection

Definition at line 150 of file connection.C.

References assoc_metric, delta, fait_delta(), flat_met, get_mp(), mp, set_der_0x0(), and triad.

## Connection() [3/4]

Lorene::Connection::Connection | ( | const Connection & | conn_i | ) |

Copy constructor.

Definition at line 166 of file connection.C.

References assoc_metric, Connection(), delta, flat_met, mp, set_der_0x0(), and triad.

## Connection() [4/4]

Lorene::Connection::Connection | ( | const Map & | mpi,
|  | const Base_vect & | bi )

protected

Constructor for derived classes.

Definition at line 179 of file connection.C.

References assoc_metric, delta, flat_met, Lorene::Map(), mp, set_der_0x0(), and triad.

## ~Connection()

Lorene::Connection::~Connection | ( |  | ) |

virtual

Destructor.

Definition at line 195 of file connection.C.

References del_deriv().

## Member Function Documentation

## del_deriv()

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

protected

Deletes all the derived quantities.

Definition at line 205 of file connection.C.

References p_ricci, and set_der_0x0().

## fait_delta()

void Lorene::Connection::fait_delta | ( | const Metric & | gam | ) |

private

Computes the difference between the connection coefficients and that a the flat connection in the case where the current connection is associated with a metric.

Definition at line 278 of file connection.C.

References Lorene::Metric::con(), Lorene::Metric::cov(), delta, Lorene::Tensor_sym::derive_cov(), and flat_met.

## get_delta()

const Tensor_sym & Lorene::Connection::get_delta | ( |  | ) | const

inline

Returns the tensor which defines the connection with respect to the flat one: is the difference between the connection coefficients and the connection coefficients of the flat connection.

The connection coefficients with respect to the triad are defined according to the MTW convention:

Note that is symmetric with respect to the indices j and k.

Returns
  `delta}`(i,j,k) =

Definition at line 271 of file connection.h.

References delta.

## get_mp()

const Map & Lorene::Connection::get_mp | ( |  | ) | const

inline

Returns the mapping.

Definition at line 253 of file connection.h.

References Lorene::Map(), and mp.

## operator=()

void Lorene::Connection::operator= | ( | const Connection & | ci | ) |

Assignment to another `Connection`.

Definition at line 225 of file connection.C.

References Connection(), del_deriv(), delta, flat_met, and triad.

## p_derive_cov()

Tensor * Lorene::Connection::p_derive_cov | ( | const Tensor & | tens | ) | const

virtual

Computes the covariant derivative of a tensor (with respect to the current connection).

    The extra index (with respect to the indices of \f$T\f$)
    of \f$\nabla T\f$ is chosen to be the \b last  one.
    This convention agrees with that of MTW (see Eq. (10.17) of MTW).
    For instance, if \f$T\f$ is a 1-form, whose components
    w.r.t. the triad \f$e^i\f$ are \f$T_i\f$: \f$T=T_i \; e^i\f$,
    then the covariant derivative of \f$T\f$ is the bilinear form
    \f$\nabla T\f$ whose components \f$\nabla_j T_i\f$ are
    such that
    \f[
     \nabla T = \nabla_j T_i \; e^i \otimes e^j
    \f]

    @param tens tensor \f$T\f$
    @return pointer on the covariant derivative \f$\nabla T\f$ ;
    this pointer is
    polymorphe, i.e. it is a pointer on a \c Vector
    if the argument is a \c Scalar , and on a \c Tensor  otherwise.
    NB: The corresponding memory is allocated by the method
    \c p_derive_cov()  and
    must be deallocated by the user afterwards.

Reimplemented in Lorene::Connection_fcart, Lorene::Connection_flat, and Lorene::Connection_fspher.

Definition at line 307 of file connection.C.

References Lorene::Scalar::dec_dzpuis(), delta, Lorene::Tensor::derive_cov(), flat_met, Lorene::Tensor::get_index_type(), Lorene::Tensor::get_n_comp(), Lorene::Tensor::get_triad(), Lorene::Tensor::get_valence(), Lorene::Tensor::indices(), mp, Lorene::Itbl::set(), Lorene::Tensor::set(), Lorene::Tensor_sym::sym_index1(), Lorene::Tensor_sym::sym_index2(), and triad.

## p_divergence()

Tensor * Lorene::Connection::p_divergence | ( | const Tensor & | tens | ) | const

virtual

Computes the divergence of a tensor (with respect to the current connection).

The divergence is taken with respect of the last index of which thus must be contravariant. For instance if is a twice contravariant tensor, whose components w.r.t. the triad are : , the divergence of is the vector

where denotes the current connection.

Parameters

  tens | tensor

Returns
  pointer on the divergence of ; this pointer is polymorphe, i.e. its is a pointer on a `Scalar` if is a `Vector` , on a `Vector` if is a tensor of valence 2, and on a `Tensor` otherwise. NB: The corresponding memory is allocated by the method `p_divergence()` and must be deallocated by the user afterwards.

Reimplemented in Lorene::Connection_fcart, Lorene::Connection_flat, and Lorene::Connection_fspher.

Definition at line 463 of file connection.C.

References Lorene::Scalar::dec_dzpuis(), delta, Lorene::Tensor::divergence(), flat_met, Lorene::Tensor::get_index_type(), Lorene::Tensor::get_n_comp(), Lorene::Tensor::get_triad(), Lorene::Tensor::get_valence(), Lorene::Tensor::indices(), mp, Lorene::Itbl::set(), Lorene::Tensor::set(), Lorene::Tensor_sym::sym_index1(), Lorene::Tensor_sym::sym_index2(), and triad.

## ricci()

const Tensor & Lorene::Connection::ricci | ( |  | ) | const

virtual

Computes (if not up to date) and returns the Ricci tensor associated with the current connection.

Reimplemented in Lorene::Connection_flat.

Definition at line 662 of file connection.C.

References assoc_metric, Lorene::Scalar::dec_dzpuis(), delta, flat_met, mp, p_ricci, Lorene::Scalar::set_etat_zero(), and triad.

## set_der_0x0()

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

protected

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

Definition at line 213 of file connection.C.

References p_ricci.

## update() [1/2]

void Lorene::Connection::update | ( | const Metric & | met | ) |

Update the connection when it is associated with a metric.

Parameters

  met | Metric to which the connection is associated

Definition at line 255 of file connection.C.

References assoc_metric, del_deriv(), fait_delta(), and flat_met.

## update() [2/2]

void Lorene::Connection::update | ( | const Tensor_sym & | delta_i | ) |

Update the connection when it is defined ab initio.

Parameters

  delta_i | tensor which defines the connection with respect to the flat one: is the difference between the connection coefficients and the connection coefficients of the flat connection. must be symmetric with respect to the indices j and k.

Definition at line 235 of file connection.C.

References assoc_metric, del_deriv(), delta, flat_met, Lorene::Tensor::get_index_type(), Lorene::Tensor::get_valence(), Lorene::Tensor_sym::sym_index1(), and Lorene::Tensor_sym::sym_index2().

## Member Data Documentation

## assoc_metric

bool Lorene::Connection::assoc_metric

protected

Indicates whether the connection is associated with a metric (in which case the Ricci tensor is symmetric, i.e.

the actual type of `p_ricci` is a `Sym_tensor` )

Definition at line 147 of file connection.h.

## delta

Tensor_sym Lorene::Connection::delta

protected

Tensor which defines the connection with respect to the flat one: is the difference between the connection coefficients and the connection coefficients of the flat connection.

The connection coefficients with respect to the triad are defined according to the MTW convention:

Note that is symmetric with respect to the indices j and k.

Definition at line 141 of file connection.h.

## flat_met

const Metric_flat* Lorene::Connection::flat_met

private

Flat metric with respect to which (member `delta` ) is defined.

Definition at line 156 of file connection.h.

## mp

const Map* const Lorene::Connection::mp

protected

Reference mapping.

Definition at line 119 of file connection.h.

## p_ricci

Tensor* Lorene::Connection::p_ricci

mutable protected

Pointer of the Ricci tensor associated with the connection.

Definition at line 164 of file connection.h.

## triad

const Base_vect* const Lorene::Connection::triad

protected

Triad with respect to which the connection coefficients are defined.

Definition at line 124 of file connection.h.

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

- connection.h
- connection.C