Tensorium
Loading...
Searching...
No Matches
tensorium_RG::RiemannTensor< T > Class Template Reference

Computes the 4D Riemann curvature tensor \( R^\rho_{\ \sigma\mu\nu} \). More...

#include <RiemannTensor.hpp>

Collaboration diagram for tensorium_RG::RiemannTensor< T >:

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} \).
 

Detailed Description

template<typename T>
class tensorium_RG::RiemannTensor< T >

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} \]

Member Typedef Documentation

◆ Tensor2D

template<typename T >
using tensorium_RG::RiemannTensor< T >::Tensor2D = tensorium::Tensor<T, 2>

◆ Tensor4D

template<typename T >
using tensorium_RG::RiemannTensor< T >::Tensor4D = tensorium::Tensor<T, 4>

◆ VectorT

template<typename T >
using tensorium_RG::RiemannTensor< T >::VectorT = tensorium::Vector<T>

Member Function Documentation

◆ compute()

template<typename T >
static Tensor4D tensorium_RG::RiemannTensor< T >::compute ( const VectorT & X,
T h,
const Metric< T > & metric )
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} \]

Template Parameters
TScalar type (e.g., float or double)
Parameters
XCoordinate vector \( X^\mu \) (4D)
hSpacing for finite difference approximations
metricA callable metric object (e.g. Kerr, Schwarzschild) implementing operator()(X, g)
Returns
A 4th-rank tensor \( R^\rho_{\ \sigma\mu\nu} \) stored as a Tensor4D object

References tensorium::Tensor< K, Rank >::fill(), lambda, mu, nu, rho, tensorium::richardson_derivative(), sigma, and X().

Referenced by tensorium::compute_riemann_tensor().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ print()

template<typename T >
static void tensorium_RG::RiemannTensor< T >::print ( const Tensor4D & R,
const std::string & name = "Riemann" )
inlinestatic

References mu, nu, rho, and sigma.

◆ print_componentwise()

template<typename T >
static void tensorium_RG::RiemannTensor< T >::print_componentwise ( const Tensor4D & R,
T threshold = 1e-12 )
inlinestatic

References lambda, mu, nu, and rho.

Referenced by tensorium::print_riemann_tensor().

Here is the caller graph for this function:

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