///|
fn main {
println("moonbit-lbm: reusable D2Q9 lattice Boltzmann solver")
let reports = @lbm.run_benchmark_suite()
println("-- benchmark suite --")
println(@lbm.benchmark_suite_csv(reports[:]))
println(
"stable_cases=\{@lbm.stable_benchmark_count(reports[:])}/\{reports.length()}",
)
let simulation = @lbm.Simulation::new(
size=@lbm.Size::new(width=24, height=12),
options=@lbm.SimulationOptions::new(
model=@lbm.CollisionModel::bgk(omega=1.0),
boundary=@lbm.BoundaryMode::Periodic,
force_x=0.000001,
),
)
simulation.set_uniform(rho=1.0, ux=0.0, uy=0.0)
simulation.run(20)
println("-- reusable simulation --")
println(simulation.state_summary())
println("checkpoint_bytes=\{simulation.checkpoint_size()}")
}