Skip to content

Christoffel Symbols (Struct)

Ludicrous edited this page Aug 9, 2022 · 4 revisions

Christoffel Symbols describe how spacetime basis vectors change along coordinates (i.e. the covariant derivative of basis vectors).

image image

This change is useful in order to correct for non-straight coordinates in spacetime, either due to coordinate curvature, or spatio-temporal curvature.

Such a change can also be expressed in terms of derivatives of the Metric Tensor in this equation below:

image

Within G.R.M, the Christoffel struct contains:

  • 4x4x4 float array of components in the pseudo tensor corresponding to christoffel[alpha direction, mu vector, nu direction]
  • Christoffel(Metric[] neighbours, Metric curr, float del) => neighbours = neighbouring values of the metric tensor around a position, inching by dx (del) in t, x, y, and z direction. curr = the current metric at position. del = your dx.

Constructor Example:

Metric currentMetric = spacetime.GetMetric(position);
Metric[] derivatives = new Metric[4];
derivatives[0] = spacetime.GetMetric(position + new Vector4(0,0,0,0.01f)); // dW = 0.01;
derivatives[1] = spacetime.GetMetric(position + new Vector4(0.01f,0,0,0)); // dX = 0.01;
derivatives[2] = spacetime.GetMetric(position + new Vector4(0,0.01f,0,0)); // dY = 0.01;
derivatives[3] = spacetime.GetMetric(position + new Vector4(0,0,0.01f,0)); // dZ = 0.01;
Christoffel symbols = new Christoffel(derivatives, currentMetric, 0.01f); // Instantiation.```
Clone this wiki locally