Expand description
§thermorust
A minimal thermodynamic neural-motif crate for Rust.
Treats computation as energy-driven state transitions with Landauer-style dissipation and Langevin/Metropolis noise baked in.
§Core abstractions
| Module | What it provides |
|---|---|
state | State – activation vector + dissipated-joules counter |
energy | EnergyModel trait, Ising, SoftSpin, Couplings |
dynamics | step_discrete (MH), step_continuous (Langevin), annealers |
noise | Langevin & Poisson spike noise sources |
metrics | Magnetisation, overlap, entropy, free energy, Trace |
motifs | Pre-wired ring / fully-connected / Hopfield / soft-spin motifs |
§Quick start
use thermorust::{motifs::IsingMotif, dynamics::{Params, anneal_discrete}};
use rand::SeedableRng;
let mut motif = IsingMotif::ring(16, 0.2);
let params = Params::default_n(16);
let mut rng = rand::rngs::StdRng::seed_from_u64(42);
let trace = anneal_discrete(&motif.model, &mut motif.state, ¶ms, 10_000, 100, &mut rng);
println!("Mean energy: {:.3}", trace.mean_energy());
println!("Heat shed: {:.3e} J", trace.total_dissipation());Re-exports§
pub use dynamics::Params;pub use dynamics::step_discrete;pub use dynamics::step_continuous;pub use dynamics::anneal_discrete;pub use dynamics::anneal_continuous;pub use energy::Couplings;pub use energy::EnergyModel;pub use energy::Ising;pub use energy::SoftSpin;pub use metrics::magnetisation;pub use metrics::overlap;pub use metrics::Trace;pub use state::State;
Modules§
- dynamics
- Stochastic dynamics: Metropolis-Hastings (discrete) and overdamped Langevin (continuous).
- energy
- Energy models: Ising/Hopfield Hamiltonian and the
EnergyModeltrait. - metrics
- Thermodynamic observables: magnetisation, entropy, free energy, overlap.
- motifs
- Pre-wired motif factories: ring, fully-connected, and Hopfield memory nets.
- noise
- Thermal noise sources: Gaussian (Langevin) and Poisson spike noise.
- state
- System state: continuous activations or binary spins with dissipation bookkeeping.