conspire 0.6.0

The Rust interface to conspire.
Documentation
use crate::{
    math::Scalar,
    physics::{
        BOLTZMANN_CONSTANT, ROOM_TEMPERATURE,
        molecular::single_chain::{Ensemble, ExtensibleFreelyRotatingChain, MonteCarloExtensible},
    },
};

const STIFFNESS: Scalar = 5.0 * BOLTZMANN_CONSTANT * ROOM_TEMPERATURE;

#[test]
fn monte_carlo() {
    let model = ExtensibleFreelyRotatingChain {
        link_angle: 0.4363323129985824,
        link_length: 1.0,
        link_stiffness: STIFFNESS,
        number_of_links: 3,
        ensemble: Ensemble::Isometric(ROOM_TEMPERATURE),
    };
    let (gamma, g) =
        MonteCarloExtensible::nondimensional_radial_distribution(&model, 0.0, 333, 10_000, 1, 3.0);
    gamma
        .into_iter()
        .zip(g)
        .for_each(|(gamma_i, g_i)| println!("[{gamma_i}, {g_i}],"))
}