Tensorium
|
Computes the extrinsic curvature tensor \( K_{ij} \) from BSSN variables. More...
#include <BSSNextrinTensor.hpp>
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} \). | |
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:
The implementation uses:
dgt
= \( \partial_t \gamma_{ij} \)partial_beta(i, j)
= \( \partial_i \beta_j \)christoffel(i, j, k)
= \( \Gamma^k_{ij} \)K | The scalar type used (e.g., double) |
using tensorium_RG::ExtrinsicCurvature< K >::Mat = tensorium::Tensor<K, 2> |
using tensorium_RG::ExtrinsicCurvature< K >::Vec = tensorium::Vector<K> |
|
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} \).
dgt | Time derivative \( \partial_t \gamma_{ij} \) |
gamma | The 3×3 spatial metric \( \gamma_{ij} \) |
beta | The shift vector \( \beta^i \) |
partial_beta | The partial derivatives \( \partial_i \beta_j \) |
christoffel | The 3D Christoffel symbols \( \Gamma^k_{ij} \) |
alpha | The lapse function \( \alpha \) |