Trait diffgeom::metric::MetricSystem [] [src]

pub trait MetricSystem: CoordinateSystem where Self::Dimension: Pow<U2> + Pow<U3>, Exp<Self::Dimension, U2>: ArrayLength<f64>, Exp<Self::Dimension, U3>: ArrayLength<f64> {
    fn g(point: &Point<Self>) -> TwoForm<Self>;

    fn inv_g(point: &Point<Self>) -> InvTwoForm<Self> { ... }
    fn dg(point: &Point<Self>) -> Tensor<Self, (CovariantIndex, (CovariantIndex, CovariantIndex))> { ... }
    fn covariant_christoffel(point: &Point<Self>) -> Tensor<Self, (CovariantIndex, (CovariantIndex, CovariantIndex))> { ... }
    fn christoffel(point: &Point<Self>) -> Tensor<Self, (ContravariantIndex, (CovariantIndex, CovariantIndex))> { ... }
}

Trait representing the metric properties of the coordinate system

Required Methods

fn g(point: &Point<Self>) -> TwoForm<Self>

Returns the metric tensor at a given point.

Provided Methods

fn inv_g(point: &Point<Self>) -> InvTwoForm<Self>

Returns the inverse metric tensor at a given point.

The default implementation calculates the metric and then inverts it. A direct implementation may be desirable for more performance.

fn dg(point: &Point<Self>) -> Tensor<Self, (CovariantIndex, (CovariantIndex, CovariantIndex))>

Returns the partial derivatives of the metric at a given point.

The default implementation calculates them numerically. A direct implementation may be desirable for performance.

fn covariant_christoffel(point: &Point<Self>) -> Tensor<Self, (CovariantIndex, (CovariantIndex, CovariantIndex))>

Returns the covariant Christoffel symbols (with three lower indices).

The default implementation calculates them from the metric. A direct implementation may be desirable for performance.

fn christoffel(point: &Point<Self>) -> Tensor<Self, (ContravariantIndex, (CovariantIndex, CovariantIndex))>

Returns the Christoffel symbols.

The default implementation calculates them from the metric. A direct implementation may be desirable for performance.

Implementors