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

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.

Loading content...

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.

Loading content...

Implementors

Loading content...