Expand description
§cartan
Riemannian geometry, manifold optimisation, and geodesic computation in Rust.
This is the facade crate. It re-exports the family under short aliases so a downstream user needs one dependency:
cartan = "0.8"§Three regimes
One trait system spans geometry at points, at fields, and along paths:
| regime | crates | what it does |
|---|---|---|
| points | manifolds, optim, geo | exp, log, transport, optimisation |
| fields | dec, remesh, io | discrete exterior calculus, bundles, export |
| paths | stochastic | frame bundle, horizontal lift, development |
§Features
The default is std plus dec. Everything else is opt-in, so a user who
wants exp and log does not compile a sparse solver.
| feature | brings in | needs |
|---|---|---|
alloc | core, manifolds, optim, geo | no_std with an allocator |
std | the above, with std | std |
dec (default) | cartan-dec | std |
remesh | cartan-remesh | dec |
stochastic | cartan-stochastic | std |
homog | cartan-homog mean-field schemes | alloc |
full-field | cartan-homog cell-problem solver | homog, remesh, std |
io | cartan-io VTK and Blender export | dec |
maxwell | cartan-maxwell | io |
full | all of the above | std |
§Embedded and no_std
cartan = { version = "0.8", default-features = false, features = ["alloc"] }That gives the point-geometry stack and, by adding homog, the mean-field
homogenisation schemes. CI builds this configuration for
thumbv7em-none-eabihf on every run.
§Prelude
use cartan::prelude::*; brings the geometry traits into scope, so .exp(),
.log() and .inner() are callable on any manifold without naming each
trait.
§Guide
See guide for worked chapters. Every code block there is a doctest.
Re-exports§
pub use cartan_core as traits;pub use cartan_geo as geo;pub use cartan_manifolds as manifolds;pub use cartan_optim as optim;pub use cartan_dec as dec;decpub use cartan_remesh as remesh;remeshpub use cartan_stochastic as stochastic;stochasticpub use cartan_homog as homog;homogpub use cartan_io as io;iopub use cartan_maxwell as maxwell;maxwell