ifarup/colourlab

data: find a way to compute and represent Christoffel symbols (not tensors!)

Closed this issue · 3 comments

data: find a way to compute and represent Christoffel symbols (not tensors!)

Seemingly simplest solution: create a function (in colour.tensor?), christoffel (or christoffel_numerical?) that takes the following arguments:

  • colour space (in which to compute the Christoffel symbols)
  • tensor function (for which to compute the Christoffel symbols)
  • colour data points (at which to compute the Christoffel symbols)
  • du (discretisation step for the colour coordinates)

Colour data points are in general M x ... x N x 3, tensor data M x ... x N x 3 x 3. Christoffel symbols will be M x ... x N x 3 x 3 x 3.

Use numerical differentiation for the derivatives of the metric tensor coefficients with respect to the colour coordinates.

Another argument for having the colour.tensor.christoffel as a function returning an array instead of having it as a colour.data class: the transformations of Christoffel symbols under coordinate transformations require access to the second order derivatives (Hessian) of the coordinate transform. These are in general not available in the current structure, and it will require a quite major effort to include it.

Tested and correct for cylindrical coordinates