Tensorium
Loading...
Searching...
No Matches
tensorium_RG::ExtrinsicCurvature< K > Class Template Reference

Computes the extrinsic curvature tensor \( K_{ij} \) from BSSN variables. More...

#include <BSSNextrinTensor.hpp>

Collaboration diagram for tensorium_RG::ExtrinsicCurvature< K >:

Public Types

using Vec = tensorium::Vector<K>
 
using Mat = tensorium::Tensor<K, 2>
 

Public Member Functions

template<typename T >
tensorium::Tensor< T, 2 > compute_Kij (const tensorium::Tensor< T, 2 > &dgt, const tensorium::Tensor< T, 2 > &gamma, const tensorium::Vector< T > &beta, const tensorium::Tensor< T, 2 > &partial_beta, const tensorium::Tensor< T, 3 > &christoffel, const T alpha)
 Computes the extrinsic curvature tensor \( K_{ij} \).
 

Detailed Description

template<typename K>
class tensorium_RG::ExtrinsicCurvature< K >

Computes the extrinsic curvature tensor \( K_{ij} \) from BSSN variables.

The extrinsic curvature is computed from the Lie derivative of the metric with respect to the shift vector and the lapse function according to the BSSN equation:

\[ K_{ij} = -\frac{1}{2\alpha} \left( \partial_t \gamma_{ij} - \nabla_i \beta_j - \nabla_j \beta_i \right) \]

where:

  • \( \gamma_{ij} \) is the spatial metric
  • \( \alpha \) is the lapse function
  • \( \beta^i \) is the shift vector
  • \( \nabla_i \beta_j = \partial_i \beta_j - \Gamma^k_{ij} \beta_k \)

The implementation uses:

  • dgt = \( \partial_t \gamma_{ij} \)
  • partial_beta(i, j) = \( \partial_i \beta_j \)
  • christoffel(i, j, k) = \( \Gamma^k_{ij} \)
Template Parameters
KThe scalar type used (e.g., double)

Member Typedef Documentation

◆ Mat

template<typename K >
using tensorium_RG::ExtrinsicCurvature< K >::Mat = tensorium::Tensor<K, 2>

◆ Vec

template<typename K >
using tensorium_RG::ExtrinsicCurvature< K >::Vec = tensorium::Vector<K>

Member Function Documentation

◆ compute_Kij()

template<typename K >
template<typename T >
tensorium::Tensor< T, 2 > tensorium_RG::ExtrinsicCurvature< K >::compute_Kij ( const tensorium::Tensor< T, 2 > & dgt,
const tensorium::Tensor< T, 2 > & gamma,
const tensorium::Vector< T > & beta,
const tensorium::Tensor< T, 2 > & partial_beta,
const tensorium::Tensor< T, 3 > & christoffel,
const T alpha )
inline

Computes the extrinsic curvature tensor \( K_{ij} \).

\[ K_{ij} = -\frac{1}{2\alpha} \left( \partial_t \gamma_{ij} - (\partial_i \beta_j + \partial_j \beta_i - 2 \Gamma^k_{ij} \beta_k) \right) \]

The result is symmetrized to ensure \( K_{ij} = K_{ji} \).

Parameters
dgtTime derivative \( \partial_t \gamma_{ij} \)
gammaThe 3×3 spatial metric \( \gamma_{ij} \)
betaThe shift vector \( \beta^i \)
partial_betaThe partial derivatives \( \partial_i \beta_j \)
christoffelThe 3D Christoffel symbols \( \Gamma^k_{ij} \)
alphaThe lapse function \( \alpha \)
Returns
The extrinsic curvature tensor \( K_{ij} \)

References alpha, and beta.


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