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
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.