Skip to main content

parallel_transport_kernel

Function parallel_transport_kernel 

Source
pub fn parallel_transport_kernel<T>(
    initial_vector: &[T],
    path: &[Vec<T>],
    christoffel: &CausalTensor<T>,
) -> Result<Vec<T>, PhysicsError>
where T: Field + Float + From<f64> + Copy,
Expand description

Parallel transports a vector along a discrete path using Christoffel symbols.

Solves: $\frac{Dv^\mu}{d\lambda} = \frac{dv^\mu}{d\lambda} + \Gamma^\mu_{\nu\rho} \frac{dx^\nu}{d\lambda} v^\rho = 0$

Uses Euler method for simplicity along discretized path segments.

§Arguments

  • initial_vector - Vector $v_0^\mu$ to transport.
  • path - List of positions along the path (each position is a slice of coordinates).
  • christoffel - Christoffel symbols $\Gamma^\mu_{\nu\rho}$ (Rank 3 tensor [dim, dim, dim]).

§Returns

  • Ok(Vec<T>) - The parallel-transported vector at the end of the path.