use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PimcConfig {
pub n_particles: usize,
pub n_slices: usize,
pub beta: f64,
pub mass: f64,
pub dimension: usize,
pub n_steps: usize,
pub n_thermalize: usize,
pub max_displacement: f64,
pub estimator_interval: usize,
pub seed: u64,
}
impl Default for PimcConfig {
fn default() -> Self {
Self {
n_particles: 1,
n_slices: 32,
beta: 1.0,
mass: 1.0,
dimension: 1,
n_steps: 10_000,
n_thermalize: 1_000,
max_displacement: 0.5,
estimator_interval: 10,
seed: 42,
}
}
}
#[derive(Debug, Clone, Default)]
pub struct PimcResult {
pub energy_mean: f64,
pub energy_std: f64,
pub kinetic_mean: f64,
pub potential_mean: f64,
pub n_accepted: u64,
pub n_total: u64,
pub acceptance_rate: f64,
}