Expand description
DOVER — Deck-based Open-source Visualisation Engine for Reactors, the
low-fidelity counterpart of dhoby-ghaut.
§What is here
One worked low-fidelity case, run from a TOML deck, headless: steam methane reforming in a continuous stirred-tank reactor.
TOML deck ──► deck::Deck (validated) ──► smr::SmrCase
│
dwsim-libs Cstr ◄───────────┘
(Newton on the reaction extents)
│
▼
headless::run_deck ──► CSV on stdoutuse dover::headless::run_toml;
let csv = run_toml(&std::fs::read_to_string("decks/smr_cstr.toml").unwrap()).unwrap();
print!("{csv}");§What was reused rather than written
Almost all of it. The workspace’s “search before building” rule turned up
a complete reactor stack in outram-park-fork-dwsim-libs that this crate
composes rather than duplicates:
| needed | already existed |
|---|---|
| the CSTR itself | reactors::Cstr — damped Newton on reaction extents, tested against X = kτ/(1+kτ) |
| reversible rate law | reactions::Reaction::net_rate |
K_eq(T) from ΔH°/ΔS° | reactions::EquilibriumConstant::GibbsVantHoff |
| feed/outcome plumbing | reactors::{ReactorFeed, ReactorOutcome} |
| TOML + serde | already in the root [workspace.dependencies] |
What is genuinely new here is the deck reader (DOVER’s own
CLAUDE.md identified it as the missing piece), the species
thermochemistry (species — the workspace had critical constants for
three of the five species and no formation data at all), and the
thermodynamic-consistency derivation (smr::consistent_reverse)
that net_rate’s independent forward/reverse pairs leave to the caller.
§Status
Untrusted AI-assisted draft. No human V&V. Not declared mature.
Education, research and V&V only per the workspace RESPONSIBLE_USE.md —
never process design, plant operation or a safety case.
The model’s scope and its approximations are set out in smr, and
should be read before quoting any number it produces. In particular it is
isothermal and holds volumetric flow constant, neither of which a real
reformer does.