General Relativity

Einstein's Masterpiece: Gravity is the curvature of spacetime. Mass-energy tells spacetime how to curve, and spacetime tells mass-energy how to move.

Chapter 4: Connection and Covariant Derivative

The connection defines how to parallel transport vectors and enables differentiation of tensor fields in curved spacetime. The Christoffel symbols are the connection coefficients derived from the metric.

Christoffel Symbols

The Levi-Civita connection is the unique torsion-free connection compatible with the metric:

\( \Gamma^\rho_{\mu\nu} = \frac{1}{2} g^{\rho\sigma} \left( \partial_\mu g_{\nu\sigma} + \partial_\nu g_{\mu\sigma} - \partial_\sigma g_{\mu\nu} \right) \)

40 independent components in 4D (symmetric in lower indices)

Metric Compatibility

\( \nabla_\rho g_{\mu\nu} = 0 \)

Lengths preserved under parallel transport

Torsion-Free

\( \Gamma^\rho_{\mu\nu} = \Gamma^\rho_{\nu\mu} \)

Symmetric in lower indices

Covariant Derivative

The covariant derivative extends ordinary differentiation to curved spaces, producing tensors from tensors:

Of a Scalar

\( \nabla_\mu \phi = \partial_\mu \phi \)

Of a Vector

\( \nabla_\mu V^\nu = \partial_\mu V^\nu + \Gamma^\nu_{\mu\rho} V^\rho \)

Of a Covector

\( \nabla_\mu \omega_\nu = \partial_\mu \omega_\nu - \Gamma^\rho_{\mu\nu} \omega_\rho \)

Of a (1,1) Tensor

\( \nabla_\mu T^\nu_{\;\rho} = \partial_\mu T^\nu_{\;\rho} + \Gamma^\nu_{\mu\sigma} T^\sigma_{\;\rho} - \Gamma^\sigma_{\mu\rho} T^\nu_{\;\sigma} \)

Key Properties

Leibniz Rule

\( \nabla(AB) = (\nabla A)B + A(\nabla B) \)

Linearity

\( \nabla(aA + bB) = a\nabla A + b\nabla B \)

Commutation with Contraction

\( \nabla_\mu (A^\nu B_\nu) = (\nabla_\mu A^\nu) B_\nu + A^\nu (\nabla_\mu B_\nu) \)

Non-Commutativity

\( [\nabla_\mu, \nabla_\nu] V^\rho = R^\rho_{\;\sigma\mu\nu} V^\sigma \)

Measures curvature!

Python: Christoffel Symbols for Schwarzschild

Python
christoffel_schwarzschild.py89 lines

Click Run to execute the Python code

Code will be executed with Python 3 on the server

Fortran: Numerical Christoffel Calculation

Fortran
christoffel_numerical.f90141 lines

Click Run to execute the Fortran code

Code will be compiled with gfortran and executed on the server