use acoustic_engine::{AcousticSolver2D, Waveform};
use std::{fs::File, io::Write};
fn main() -> std::io::Result<()> {
let mut s = AcousticSolver2D::new(300, 300, 0.5, 0.5, 1.2, 340.0);
s.set_absorbing_boundary(25, 0.1);
s.add_source(150, 150, Waveform::Ricker { freq: 100.0 }, 1.0);
let rx = s.add_receiver(210, 150);
let dt = s.stable_dt(0.9);
let steps = (0.25 / dt) as usize; for _ in 0..steps {
s.step(dt);
}
let mut f = File::create("receiver.csv")?;
writeln!(f, "t_s,pression")?;
for (i, p) in s.receiver(rx).iter().enumerate() {
writeln!(f, "{:e},{:e}", (i + 1) as f32 * dt, p)?;
}
println!("{steps} échantillons écrits dans receiver.csv (dt = {dt:e} s)");
Ok(())
}