LORENE
Lorene::Connection_fcart Class Reference

Class Connection_fcart. More...

#include <connection.h>

Inheritance diagram for Lorene::Connection_fcart:
Lorene::Connection_flat Lorene::Connection

Public Member Functions

 Connection_fcart (const Map &, const Base_vect_cart &)
 Contructor from a Cartesian flat-metric-orthonormal basis.
 
 Connection_fcart (const Connection_fcart &)
 Copy constructor.
 
virtual ~Connection_fcart ()
 destructor
 
void operator= (const Connection_fcart &)
 Assignment to another Connection_fcart.
 
virtual Tensor * p_derive_cov (const Tensor &tens) const
 Computes the covariant derivative $\nabla T$ of a tensor $T$ (with respect to the current connection).
 
virtual Tensor * p_divergence (const Tensor &tens) const
 Computes the divergence of a tensor $T$ (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.
 
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 $\Delta^i_{\ jk}$ which defines the connection with respect to the flat one: $\Delta^i_{\ jk}$ is the difference between the connection coefficients $\Gamma^i_{\ jk}$ and the connection coefficients ${\bar \Gamma}^i_{\ jk}$ of the flat connection.
 

Protected Member Functions

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 $(e_i)$ with respect to which the connection coefficients are defined.
 
Tensor_sym delta
 Tensor $\Delta^i_{\ jk}$ which defines the connection with respect to the flat one: $\Delta^i_{\ jk}$ is the difference between the connection coefficients $\Gamma^i_{\ jk}$ and the connection coefficients ${\bar \Gamma}^i_{\ jk}$ 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 $\Delta^i_{\ jk}$ 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 $\Delta^i_{\ jk}$ (member delta ) is defined.
 

Detailed Description

Class Connection_fcart.

()

Class for connections associated with a flat metric and given onto an orthonormal Cartesian triad.

Definition at line 546 of file connection.h.

Constructor & Destructor Documentation

◆ Connection_fcart() [1/2]

Lorene::Connection_fcart::Connection_fcart ( const Map &  mpi,
const Base_vect_cart &  bi 
)

Contructor from a Cartesian flat-metric-orthonormal basis.

Definition at line 109 of file connection_fcart.C.

◆ Connection_fcart() [2/2]

Lorene::Connection_fcart::Connection_fcart ( const Connection_fcart &  ci)

Copy constructor.

Definition at line 115 of file connection_fcart.C.

◆ ~Connection_fcart()

Lorene::Connection_fcart::~Connection_fcart ( )
virtual

destructor

Definition at line 126 of file connection_fcart.C.

Member Function Documentation

◆ del_deriv()

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

Deletes all the derived quantities.

Definition at line 205 of file connection.C.

References Lorene::Connection::p_ricci, and Lorene::Connection::set_der_0x0().

◆ fait_delta()

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

Computes the difference $\Delta^i_{\ jk}$ 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(), Lorene::Connection::delta, Lorene::Tensor_sym::derive_cov(), Lorene::Connection::flat_met, and Lorene::Tensor::set().

◆ get_delta()

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

Returns the tensor $\Delta^i_{\ jk}$ which defines the connection with respect to the flat one: $\Delta^i_{\ jk}$ is the difference between the connection coefficients $\Gamma^i_{\ jk}$ and the connection coefficients ${\bar \Gamma}^i_{\ jk}$ of the flat connection.

The connection coefficients with respect to the triad $(e_i)$ are defined according to the MTW convention:

\[
 \Gamma^i_{\ jk} := \langle e^i, \nabla_{e_k} \, e_j \rangle
\]

Note that $\Delta^i_{\ jk}$ is symmetric with respect to the indices j and k.

Returns
delta}(i,j,k) = $\Delta^i_{\ jk}$

Definition at line 271 of file connection.h.

References Lorene::Connection::delta.

◆ get_mp()

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

Returns the mapping.

Definition at line 253 of file connection.h.

References Lorene::Connection::mp.

◆ operator=()

void Lorene::Connection_fcart::operator= ( const Connection_fcart &  )

Assignment to another Connection_fcart.

Definition at line 136 of file connection_fcart.C.

◆ p_derive_cov()

Tensor * Lorene::Connection_fcart::p_derive_cov ( const Tensor &  tens) const
virtual

Computes the covariant derivative $\nabla T$ of a tensor $T$ (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. 

Implements Lorene::Connection_flat.

Definition at line 152 of file connection_fcart.C.

References Lorene::Tensor::get_index_type(), Lorene::Tensor::get_n_comp(), Lorene::Tensor::get_triad(), Lorene::Tensor::get_valence(), Lorene::Tensor::indices(), Lorene::Connection::mp, Lorene::Tensor::set(), Lorene::Itbl::set(), Lorene::Tensor_sym::sym_index1(), Lorene::Tensor_sym::sym_index2(), and Lorene::Connection::triad.

◆ p_divergence()

Tensor * Lorene::Connection_fcart::p_divergence ( const Tensor &  tens) const
virtual

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

The divergence is taken with respect of the last index of $T$ which thus must be contravariant. For instance if $T$ is a twice contravariant tensor, whose components w.r.t. the triad $e_i$ are $T^{ij}$: $T = T^{ij} \; e_i \otimes e_j$, the divergence of $T$ is the vector

\[
      {\rm div} T = \nabla_k T^{ik} \; e_i
    \]

where $\nabla$ denotes the current connection.

Parameters
tenstensor $T$
Returns
pointer on the divergence of $T$ ; this pointer is polymorphe, i.e. its is a pointer on a Scalar if $T$ is a Vector , on a Vector if $T$ 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.

Implements Lorene::Connection_flat.

Definition at line 238 of file connection_fcart.C.

References Lorene::Tensor::get_index_type(), Lorene::Tensor::get_n_comp(), Lorene::Tensor::get_triad(), Lorene::Tensor::get_valence(), Lorene::Tensor::indices(), Lorene::Connection::mp, Lorene::Tensor::set(), Lorene::Itbl::set(), Lorene::Scalar::set_etat_zero(), Lorene::Tensor_sym::sym_index1(), Lorene::Tensor_sym::sym_index2(), and Lorene::Connection::triad.

◆ ricci()

const Tensor & Lorene::Connection_flat::ricci ( ) const
virtualinherited

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

Reimplemented from Lorene::Connection.

Definition at line 121 of file connection_flat.C.

References Lorene::Connection::mp, Lorene::Connection::p_ricci, Lorene::Tensor::set_etat_zero(), and Lorene::Connection::triad.

◆ set_der_0x0()

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

Sets to 0x0 all the pointers on derived quantities.

Definition at line 213 of file connection.C.

References Lorene::Connection::p_ricci.

◆ update() [1/2]

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

Update the connection when it is associated with a metric.

Parameters
metMetric to which the connection is associated

Definition at line 255 of file connection.C.

References Lorene::Connection::assoc_metric, Lorene::Connection::del_deriv(), Lorene::Connection::fait_delta(), and Lorene::Connection::flat_met.

◆ update() [2/2]

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

Update the connection when it is defined ab initio.

Parameters
delta_itensor $\Delta^i_{\ jk}$ which defines the connection with respect to the flat one: $\Delta^i_{\ jk}$ is the difference between the connection coefficients $\Gamma^i_{\ jk}$ and the connection coefficients ${\bar \Gamma}^i_{\ jk}$ of the flat connection. $\Delta^i_{\ jk}$ must be symmetric with respect to the indices j and k.

Definition at line 235 of file connection.C.

References Lorene::Connection::assoc_metric, Lorene::Connection::del_deriv(), Lorene::Connection::delta, Lorene::Connection::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
protectedinherited

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
protectedinherited

Tensor $\Delta^i_{\ jk}$ which defines the connection with respect to the flat one: $\Delta^i_{\ jk}$ is the difference between the connection coefficients $\Gamma^i_{\ jk}$ and the connection coefficients ${\bar \Gamma}^i_{\ jk}$ of the flat connection.

The connection coefficients with respect to the triad $(e_i)$ are defined according to the MTW convention:

\[
 \Gamma^i_{\ jk} := \langle e^i, \nabla_{e_k} \, e_j \rangle
\]

Note that $\Delta^i_{\ jk}$ 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
privateinherited

Flat metric with respect to which $\Delta^i_{\ jk}$ (member delta ) is defined.

Definition at line 156 of file connection.h.

◆ mp

const Map* const Lorene::Connection::mp
protectedinherited

Reference mapping.

Definition at line 119 of file connection.h.

◆ p_ricci

Tensor* Lorene::Connection::p_ricci
mutableprotectedinherited

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
protectedinherited

Triad $(e_i)$ 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: