Tensorium
|
Computes the 4D Riemann curvature tensor \( R^\rho_{\ \sigma\mu\nu} \). More...
#include <RiemannTensor.hpp>
Public Types | |
using | Tensor4D = tensorium::Tensor<T, 4> |
using | Tensor2D = tensorium::Tensor<T, 2> |
using | VectorT = tensorium::Vector<T> |
Static Public Member Functions | |
static void | print_componentwise (const Tensor4D &R, T threshold=1e-12) |
static void | print (const Tensor4D &R, const std::string &name="Riemann") |
static Tensor4D | compute (const VectorT &X, T h, const Metric< T > &metric) |
Computes the 4D Riemann curvature tensor \( R^\rho_{\ \sigma\mu\nu} \). | |
Computes the 4D Riemann curvature tensor \( R^\rho_{\ \sigma\mu\nu} \).
The following expression is used:
\[ R^\rho_{\ \sigma\mu\nu} = \partial_\mu \Gamma^\rho_{\nu\sigma} - \partial_\nu \Gamma^\rho_{\mu\sigma} + \Gamma^\rho_{\mu\lambda} \Gamma^\lambda_{\nu\sigma} - \Gamma^\rho_{\nu\lambda} \Gamma^\lambda_{\mu\sigma} \]
using tensorium_RG::RiemannTensor< T >::Tensor2D = tensorium::Tensor<T, 2> |
using tensorium_RG::RiemannTensor< T >::Tensor4D = tensorium::Tensor<T, 4> |
using tensorium_RG::RiemannTensor< T >::VectorT = tensorium::Vector<T> |
|
inlinestatic |
Computes the 4D Riemann curvature tensor \( R^\rho_{\ \sigma\mu\nu} \).
This function numerically computes the full 4D Riemann tensor using finite difference approximations (via Richardson extrapolation) on the Christoffel symbols computed from the metric tensor.
The Riemann tensor is defined as:
\[ R^\rho_{\ \sigma\mu\nu} = \partial_\mu \Gamma^\rho_{\nu\sigma} - \partial_\nu \Gamma^\rho_{\mu\sigma} + \Gamma^\rho_{\mu\lambda} \Gamma^\lambda_{\nu\sigma} - \Gamma^\rho_{\nu\lambda} \Gamma^\lambda_{\mu\sigma} \]
T | Scalar type (e.g., float or double) |
X | Coordinate vector \( X^\mu \) (4D) |
h | Spacing for finite difference approximations |
metric | A callable metric object (e.g. Kerr, Schwarzschild) implementing operator()(X, g) |
References tensorium::Tensor< K, Rank >::fill(), lambda, mu, nu, rho, tensorium::richardson_derivative(), sigma, and X().
Referenced by tensorium::compute_riemann_tensor().
|
inlinestatic |
|
inlinestatic |
References lambda, mu, nu, and rho.
Referenced by tensorium::print_riemann_tensor().