Geometry
cartan-geo provides higher-level geometric tools built on top of the Manifold
trait: parameterized geodesic curves, curvature queries, and Jacobi field
integration. These complement the per-point operations in cartan-core with
global and curve-level geometry.
Modules
| Module | Struct / function | Purpose |
|---|---|---|
geodesic | Geodesic<M> | Parameterized geodesic curve; eval, sample, length |
curvature | CurvatureQuery<M> | Sectional, Ricci, scalar, Riemann curvature at a point |
jacobi | integrate_jacobi | RK4 Jacobi field integration; conjugate point detection |
Quick Example
use cartan::prelude::*;
use cartan::manifolds::Sphere;
use cartan_geo::{Geodesic, CurvatureQuery};
let s2 = Sphere::<3>;
let mut rng = rand::rng();
let p = s2.random_point(&mut rng);
let q = s2.random_point(&mut rng);
// Geodesic from p to q
let geo = Geodesic::from_two_points(&s2, p, &q).unwrap();
let mid = geo.midpoint();
let samples = geo.sample(10);
// Curvature at p
let u = s2.random_tangent(&p, &mut rng);
let v = s2.random_tangent(&p, &mut rng);
let cq = CurvatureQuery::new(&s2, p);
let k = cq.sectional(&u, &v); // K = 1 on S²