Skip to main content

EddSimulation

Trait EddSimulation 

Source
pub trait EddSimulation:
    GoverningEquation
    + FalsifiableSimulation
    + Reproducible
    + YamlConfigurable {
    // Required methods
    fn emc(&self) -> &EquationModelCard;
    fn verify_against_emc(&self) -> VerificationResult;

    // Provided methods
    fn simulation_name(&self) -> &str { ... }
    fn simulation_version(&self) -> &str { ... }
}
Expand description

Core EDD trait bundle.

Every simulation in simular MUST implement this trait, which combines:

  • GoverningEquation: Mathematical foundation
  • FalsifiableSimulation: Active falsification search
  • Reproducible: Deterministic seeding
  • YamlConfigurable: Declarative configuration

§EDD Compliance

Implementing this trait ensures the simulation complies with all four pillars of EDD:

  1. Prove It: Via GoverningEquation (EMC reference)
  2. Fail It: Via FalsifiableSimulation (falsification criteria)
  3. Seed It: Via Reproducible (deterministic RNG)
  4. Falsify It: Via verify_against_emc() (active testing)

§Example

pub struct HarmonicOscillator {
    omega: f64,
    emc: EquationModelCard,
    seed: u64,
}

impl EddSimulation for HarmonicOscillator {
    fn emc(&self) -> &EquationModelCard {
        &self.emc
    }

    fn verify_against_emc(&self) -> VerificationResult {
        // Run EMC verification tests
    }
}

Required Methods§

Source

fn emc(&self) -> &EquationModelCard

Get the associated Equation Model Card.

Source

fn verify_against_emc(&self) -> VerificationResult

Verify implementation against EMC test cases.

Runs all verification tests defined in the EMC and returns a detailed result showing which tests passed or failed.

Provided Methods§

Source

fn simulation_name(&self) -> &str

Get simulation name from EMC.

Source

fn simulation_version(&self) -> &str

Get simulation version from EMC.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§