SpECTRE  v2022.05.05
Special Relativity

Contains functions used in special relativity calculations. More...

## Namespaces

namespace  sr
Holds functions related to special relativity.

template<size_t SpatialDim>
tnsr::Ab< double, SpatialDim, Frame::NoFramesr::lorentz_boost_matrix (const tnsr::I< double, SpatialDim, Frame::NoFrame > &velocity)
Computes the matrix for a Lorentz boost from a single velocity vector (i.e., not a velocity field). More...

template<size_t SpatialDim>
void sr::lorentz_boost_matrix (gsl::not_null< tnsr::Ab< double, SpatialDim, Frame::NoFrame > * > boost_matrix, const tnsr::I< double, SpatialDim, Frame::NoFrame > &velocity)
Computes the matrix for a Lorentz boost from a single velocity vector (i.e., not a velocity field). More...

## Detailed Description

Contains functions used in special relativity calculations.

## ◆ lorentz_boost_matrix() [1/2]

template<size_t SpatialDim>
 tnsr::Ab< double, SpatialDim, Frame::NoFrame > sr::lorentz_boost_matrix ( const tnsr::I< double, SpatialDim, Frame::NoFrame > & velocity )

Computes the matrix for a Lorentz boost from a single velocity vector (i.e., not a velocity field).

### Details

Given a spatial velocity vector $$v^i$$ (with $$c=1$$), compute the matrix $$\Lambda^{a}{}_{\bar{a}}$$ for a Lorentz boost with that velocity [e.g. Eq. (2.38) of ]:

\begin{align} \Lambda^t{}_{\bar{t}} &= \gamma, \\ \Lambda^t{}_{\bar{i}} = \Lambda^i{}_{\bar{t}} &= \gamma v^i, \\ \Lambda^i{}_{\bar{j}} = \Lambda^j{}_{\bar{i}} &= [(\gamma - 1)/v^2] v^i v^j + \delta^{ij}. \end{align}

Here $$v = \sqrt{\delta_{ij} v^i v^j}$$, $$\gamma = 1/\sqrt{1-v^2}$$, and $$\delta^{ij}$$ is the Kronecker delta. Note that this matrix boosts a one-form from the unbarred to the barred frame, and its inverse (obtained via $$v \rightarrow -v$$) boosts a vector from the barred to the unbarred frame.

Note that while the Lorentz boost matrix is symmetric, the returned boost matrix is of type tnsr::Ab, because Tensor does not support symmetric tensors unless both indices have the same valence.

## ◆ lorentz_boost_matrix() [2/2]

template<size_t SpatialDim>
 void sr::lorentz_boost_matrix ( gsl::not_null< tnsr::Ab< double, SpatialDim, Frame::NoFrame > * > boost_matrix, const tnsr::I< double, SpatialDim, Frame::NoFrame > & velocity )

Computes the matrix for a Lorentz boost from a single velocity vector (i.e., not a velocity field).

### Details

Given a spatial velocity vector $$v^i$$ (with $$c=1$$), compute the matrix $$\Lambda^{a}{}_{\bar{a}}$$ for a Lorentz boost with that velocity [e.g. Eq. (2.38) of ]:

\begin{align} \Lambda^t{}_{\bar{t}} &= \gamma, \\ \Lambda^t{}_{\bar{i}} = \Lambda^i{}_{\bar{t}} &= \gamma v^i, \\ \Lambda^i{}_{\bar{j}} = \Lambda^j{}_{\bar{i}} &= [(\gamma - 1)/v^2] v^i v^j + \delta^{ij}. \end{align}

Here $$v = \sqrt{\delta_{ij} v^i v^j}$$, $$\gamma = 1/\sqrt{1-v^2}$$, and $$\delta^{ij}$$ is the Kronecker delta. Note that this matrix boosts a one-form from the unbarred to the barred frame, and its inverse (obtained via $$v \rightarrow -v$$) boosts a vector from the barred to the unbarred frame.

Note that while the Lorentz boost matrix is symmetric, the returned boost matrix is of type tnsr::Ab, because Tensor does not support symmetric tensors unless both indices have the same valence.