|
| | ChristoffelSym (size_t dim) |
| | Construct a Christoffel symbol tensor.
|
| T & | operator() (size_t i, size_t j, size_t k, size_t l) |
| | Mutable access to component \( \Gamma^\lambda_{\mu\nu} \).
|
| const T & | operator() (size_t i, size_t j, size_t k, size_t l) const |
| | Const access to component \( \Gamma^\lambda_{\mu\nu} \).
|
| void | fill (T value) |
| | Fill all components with a constant value.
|
| void | print () const |
| | Print all non-zero Christoffel components to stdout.
|
| | __attribute__ ((always_inline, hot, flatten)) static inline ChristoffelSym< T > compute_christoffel(const tensorium |
| | Compute Christoffel symbols numerically from a metric.
|
template<typename T>
class tensorium_RG::ChristoffelSym< T >
Stores and computes Christoffel symbols \( \Gamma^\lambda_{\mu\nu} \).
This class represents a tensor of Christoffel symbols for a 4D metric and supports:
- Storage in a flattened aligned vector
- Numerical computation from the metric via centered finite differences
The Christoffel symbols are given by:
\[\Gamma^\lambda_{\mu\nu} =
\frac{1}{2} g^{\lambda\kappa} \left(
\partial_\mu g_{\nu\kappa} +
\partial_\nu g_{\mu\kappa} -
\partial_\kappa g_{\mu\nu}
\right)
\]
- Template Parameters
-
| T | Scalar type (e.g., float or double) |