Skip to content

Releases: caalh/owen

OWEN 1.0.2 — Input Builder integrated lattice editor

Choose a tag to compare

@caalh caalh released this 09 Jul 02:28

Patch release after 1.0.1 — integrated visual lattice editor inside Input Builder.

Changed

  • Input Builder — integrated Lattice tab: full visual grid editor (paint pin types, W 17×17 / BWR presets, editable identifiers) inside Snippet Wizards → Lattice. Preview, validation, and insert use the same pipeline as other wizards.
  • owen.openLatticeBuilder now opens Input Builder focused on the Lattice tab.
  • Full Deck lattice assembly uses the shared lattice map state from the integrated editor.

Install

  • VS Code Marketplace / Open VSX: search OWEN (belvoirdynamics.owen-neutronics) — maintainer publish pending.
  • Manual: download owen-neutronics-1.0.2.vsix below → Extensions → ... → Install from VSIX.

Built from caalh/BelvoirDynamics monorepo owen/ at v1.0.2.

OWEN 1.0.1 — Input Builder wizards + MCNP workspace validation

Choose a tag to compare

@caalh caalh released this 08 Jul 23:10

OWEN 1.0.1

Patch release after 1.0.0 — Input Builder snippet wizards and MCNP cross-file workspace validation.

Added

  • Input Builder wizards — material, surface, cell, lattice, source, and settings snippet wizards with validation preview; Ctrl+Shift+I
  • MCNP workspace validation — set project root; validate cells/surfaces/materials/universes across read/copy includes; Problems panel diagnostics
  • Shared packages/mcnp-workspace bundled into the language server

Install: download the VSIX below, then code --install-extension owen-neutronics-1.0.1.vsix

OWEN 1.0.0 — stable release

Choose a tag to compare

@caalh caalh released this 06 Jul 23:02

OWEN 1.0.0

First stable release. MCNP↔OpenMC converter graduates from beta (BEAVRS-validated). Serpent/SCONE converter targets remain experimental.

Highlights

  • MC Language Server (diagnostics, hover, defs, refs, symbols)
  • High-fidelity MCNP↔OpenMC converter (stable)
  • Render/Verify with OpenMC, Results Viewer, Doppler Studio
  • PNNL-15870 Rev. 2 materials (411), prebuilt models, sweep dashboard
  • 496 tests

Install: download the VSIX below, then code --install-extension owen-neutronics-1.0.0.vsix

OWEN 0.3.10 — marketplace metadata refresh

Choose a tag to compare

@caalh caalh released this 03 Jul 02:56

Marketplace metadata refresh — no code changes. This VSIX packages an accurate description, README.md, and keyword set covering the current feature set (MC Language Server, 3D BEAVRS preview, Render/Verify with OpenMC, Results Viewer, sweep dashboard, MCNP<->OpenMC converter beta, Lattice/Input Builders with the 411-material PNNL-15870 compendium, ALLEN + Doppler Studio). Publishing this VSIX to the VS Code Marketplace and Open VSX is what updates the stale 0.3.1 public listings.

Changed

  • package.json description rewritten to the 0.3.x feature set; keywords 9 -> 16.
  • README restructured into Write / Build / Visualize & verify / Run & analyze, adding every feature that post-dated the last pass; all 19 commands listed; demo GIFs unchanged.

SHA256 (owen-neutronics-0.3.10.vsix): D181D54BAEB253147F1DDE130E25F228168CC03FD007B1CB282F20570D263021

OWEN v0.3.9 - PNNL-15870 Rev. 2 materials compendium

Choose a tag to compare

@caalh caalh released this 03 Jul 02:44

PNNL-15870 Rev. 2 materials compendium (411 materials)

The full PNNL Compendium of Material Composition Data for Radiation Transport Modeling (Rev. 2, April 2021, DOI 10.2172/1782721) is now a second material source alongside the curated featured set:

  • Input Builder — searchable "PNNL Compendium" section in the Materials step (search by name, formula, acronym, or element symbol). Selected materials flow through deck generation for all four codes.
  • OWEN: Insert Material — compendium entries in the QuickPick, rendered for the detected deck language.
  • Per-code generation — MCNP/Serpent isotopic ZAIDs with negative weight fractions (carbon stays elemental 6000); OpenMC add_element/add_nuclide with percent_type='wo'; SCONE atom densities with .03/temp 300. S(α,β) thermal scattering is attached only to hydrogenous moderators (light/heavy water, polyethylene) — never to fuels or metals.
  • Dataset ships as a lazy-loaded data/pnnl-materials.json (~600 KB) — never injected into the webview or the extension bundle.
  • Citation shown wherever the data appears. Dataset derived from the PyNE materials-compendium export (BSD-2-Clause), spot-verified against the official PDF tables.

Also widens two load-sensitive test timing budgets. Suite: 496 passing.

Install: download the VSIX below, then code --install-extension owen-neutronics-0.3.9.vsix (or Cursor: cursor --install-extension owen-neutronics-0.3.9.vsix).

SHA256 (VSIX): 54CFF9E7E5B23E064836974ABA62AB117A1F754ABED2AC12400356BF61049E63

OWEN 0.3.8 — high-fidelity MCNP<->OpenMC converter (beta)

Choose a tag to compare

@caalh caalh released this 03 Jul 02:27

MCNP <-> OpenMC converter rewritten — graduates to beta

Both directions rewritten from scratch and validated against the bundled BEAVRS full core in real OpenMC (0.15.3). Serpent/SCONE targets remain experimental.

MCNP -> OpenMC

  • Full boolean region AST: intersections, unions, #cell / #() complements, nested parentheses
  • All common surfaces: planes (incl. three-point), spheres, cylinders, cones (one/two-sided), tori, GQ/SQ -> openmc.Quadric, and macrobodies RPP/RCC/BOX/RHP -> openmc.model composites
  • Multi-level universes; lat=1 -> RectLattice and lat=2 -> HexLattice (fill arrays with nR repeats, 3D arrays, self-fill, outer= heuristic)
  • trcl=/fill transforms -> translation/rotation; tmp= -> cell temperature
  • Graveyard (imp:n=0) elimination -> boundary_type='vacuum'; */+ surfaces -> reflective/periodic
  • Materials split per cell density, add_element for natural ZAIDs, official OpenMC S(a,b) names, metastable ZAIDs
  • kcode/multi-point ksrc -> Settings/IndependentSource; FMESH + F4/F6/F7 tallies

OpenMC -> MCNP

  • New architecture: static parser for flat scripts + a pure-Python trace harness (no OpenMC install needed) for procedural scripts (loops/functions, e.g. native BEAVRS) -> JSON IR -> MCNP emitter
  • De Morgan region normalization, synthesized lattice windows + graveyard, S(a,b) -> mt, temperatures -> tmp=

Validation (BEAVRS gauntlet)

  • Forward: converted full core loads in OpenMC — 327 cells / 62 universes / 16 lattices / 13 materials; 4000-point material sampling vs the native deck: 0 mismatches; transport smoke test runs
  • Reverse: native procedural BEAVRS script traced -> MCNP; extractor instance parity +0.004%, validator zero Errors
  • Round-trips (pin cell, 17x17 assembly) preserve materials, S(a,b), lattices, settings
  • 52 new converter tests; suite total 483

Fixed

  • beavrs_fullcore_mcnp.i: root cells 300/303-307 illegally reused pin-cell ids — renumbered 343-348

Known gaps (TODO-marked, never silently dropped)

  • Tallies beyond FMESH type-4 and F4/F6/F7; sdef beyond point sources; surface TR transforms flagged but not applied

OWEN 0.3.7 — adversarial-audit hardening

Choose a tag to compare

@caalh caalh released this 02 Jul 06:11

Hardening release: all 15 bugs found by an adversarial test audit (run against v0.3.4) are fixed, and the audit's adversarial suite (~180 tests) now ships in the test suite.

Fixed

Crash-level (extension-host OOM/hang from one malformed deck)

  • MCNP repeat expansion (fill= 1 2000000000r) capped at 1M entries in both the 3D-preview extractor and the references index (the latter rebuilds on every edit, so this was reachable just by typing).
  • Self- and mutually-referential lattices (u=5 filled with 5, or 5<->6) no longer recurse exponentially — cycle detection in the MCNP and Serpent universe walkers.
  • SCONE shape (100000 100000 1) and Serpent giant lat headers no longer allocate unbounded grids (5M-cell cap; Serpent rows capped to actual data).

Wrong-result

  • mcnp.material-sign no longer fires false Errors on valid decks (including bundled BEAVRS): ZAID tokens like 40000.80c are no longer partially matched as fractions, and the material context is cleared when any new card starts.
  • Cells with negative universe IDs (u=-5) are keyed by abs so fill=5 finds them in the 3D preview.
  • OpenMC pitch detection ignores # comments.
  • Results parsers and sweep k-eff scrapers require proper numeric tokens — no more k-eff = NaN from KEFF = ... or silently truncated 1.2.3; non-finite samples are dropped.
  • Input Builder: no more fill=undefined Python on empty material selection; custom material names with quotes/backslashes no longer break the generated script.

Cosmetic

  • ALLEN Bondarenko shielding factor no longer exceeds 1 for tiny sigma0/sigma (log1p + [0,1] clamp, plot config + webview).
  • src/test/fixtures/sample_openmc.log renamed to .log.txt so fresh clones pass the test suite (*.log is gitignored).

Added

  • Adversarial test suite in src/test/suite/adv.*.test.ts — extractor edge cases for all four codes, validator regressions (zero-Errors sweep over every bundled prebuilt deck), results-parser garbage inputs, hostile input-builder names, ALLEN plot math, measurement math, LOD budget, and bounded hang-bomb repros. Full suite: 423 passing.

Install: download the VSIX below, then code --install-extension owen-neutronics-0.3.7.vsix

OWEN 0.3.6 - Prebuilt-model audit + Reflected Pin Cell teaching decks

Choose a tag to compare

@caalh caalh released this 02 Jul 06:03

Prebuilt-model quality release

Every bundled prebuilt model audited for syntax and physics correctness, plus a new Reflected UO2 Pin Cell teaching model in all four codes.

Added

  • Reflected UO2 Pin Cell (MCNP, OpenMC, Serpent, SCONE): the classic "hello world" — one BEAVRS-spec 3.1 wt% fuel pin (pellet 0.39218 / clad 0.40005–0.45720 cm, pitch 1.26 cm) in 975 ppm borated water, reflective on all six faces → k-inf. All four decks are true cross-code twins using the verified BEAVRS number densities. The OpenMC deck is run-verified: k-inf 1.2256 ± 0.0010 (OpenMC 0.15.3, ENDF/B-VIII.0, 600 K neutron data); the others document that reference honestly as spec-derived.
  • Headless extractor render tests for all pin-cell and 17×17 assembly decks.

Fixed

  • Both MCNP decks: fatal ksrc — the initial source point sat in instrument-tube air; moved into a fuel pin.
  • MCNP lines over 80 columns reformatted (fixed-format limit).
  • Serpent 17×17 assembly: invalid therm lwtr 600 lwj3.11t (interpolation form needs two libraries) → direct form.
  • OpenMC 17×17 assembly: placed only 21 of the advertised 25 guide/instrument tubes and had water-only guide tubes; fixed (also in the omc_assembly_script snippet) with Zr tube walls.
  • All decks normalized to LF line endings (SCONE requires UNIX newlines) and pinned via .gitattributes.

Install: download the VSIX below, then code --install-extension owen-neutronics-0.3.6.vsix.
Test suite: 232 passing.

OWEN 0.3.5 — Language Server, Convert Deck, Verify Geometry, Sweep Dashboard

Choose a tag to compare

@caalh caalh released this 02 Jul 04:08

Four roadmap items in one release. Built and verified locally; Marketplace/Open VSX publish deferred to the maintainer (latest published version remains 0.3.1).

MC Language Server (LSP)

  • Real-time diagnostics for MCNP, Serpent, and SCONE (all previous validator rules, MCNP line length, and new cross-reference checks: undefined surface/material/universe/transform = error, unused definitions = faded hint).
  • Hover, go-to-definition, find-references, occurrence highlight, and a grouped document outline (Cells / Surfaces / Materials / Universes / Transforms / Tallies).
  • Ships as a self-contained out/server.js; other editors (Sublime LSP, Neovim) can run it with node out/server.js --stdio. See AI_MAINTAINER_GUIDE.md.

OWEN: Convert Deck… (Experimental)

  • The previously hidden MCNP<->OpenMC converter is now a visible command with a source->target picker, plus new MCNP->Serpent and MCNP->SCONE targets for the cleanly-mappable subset.
  • Unconvertible constructs emit clearly marked TODO comments instead of being dropped.
  • Results open in a Rosetta diff view: source and converted deck side-by-side with aligned sections and TODO highlights.

OWEN: Verify Geometry with OpenMC

  • Runs your OpenMC model through the locally installed OpenMC: overlap scan (slice plots with show_overlaps=True at sampled planes) and a short lost-particle probe run.
  • Reuses 0.3.4 interpreter discovery (explicit setting -> ms-python -> PATH -> WSL) with graceful fallback when OpenMC is absent.

OWEN: View Sweep Results

  • Dashboard for completed parameter sweeps: k-eff vs swept parameter with error bars, per-run convergence small-multiples, and a run table.

Install

Download the VSIX below, then: code --install-extension owen-neutronics-0.3.5.vsix

SHA256(owen-neutronics-0.3.5.vsix) = 73186BA478CDD3FEAF6D7AD28B2CE539D362185953DA78C6B6AB1FF450216C4C

OWEN v0.3.4 — Render with OpenMC (authoritative)

Choose a tag to compare

@caalh caalh released this 02 Jul 03:24

Render with OpenMC (authoritative)

New command OWEN: Render with OpenMC (authoritative) — runs your OpenMC Python model through your locally installed OpenMC and shows its native slice plots inside the editor. Ground truth straight from OpenMC's geometry kernel: ideal for verifying OWEN's built-in 3D preview or debugging geometry.

  • Basis (xy/xz/yz), origin, width, material/cell coloring — each change re-runs OpenMC (spinner shown; not real-time)
  • Optional 3D ray trace when the installed OpenMC supports it (>= 0.15)
  • Automatic interpreter discovery: explicit owen.openmc.pythonExecutable -> ms-python active interpreter -> python/python3 on PATH -> WSL (conda-aware, wslpath translation)
  • Safe deck execution: openmc.run() / model.run() are no-op'd during the render pass, so decks that end in a transport run render instantly without starting one
  • Graceful fallback: if OpenMC isn't detected anywhere, OWEN says so and opens its built-in 3D Geometry Preview instead

Fixed

  • The VSIX now ships h5wasm, so the Results Viewer statepoint.h5 parser works in installed builds (0.3.3 silently fell back to stdout parsing).

Notes

  • 157 unit tests green; verified end-to-end on Windows with OpenMC 0.15.3 under WSL.
  • OWEN integrates with OpenMC (MIT License, (c) OpenMC contributors). OpenMC is not bundled.

Install: code --install-extension owen-neutronics-0.3.4.vsix (or Cursor: cursor --install-extension ...)