Developer guide
Use the table to locate the component that owns a change. Read its architecture contract before editing.
| Change |
Start here |
Continue with |
Verify with |
| Python declaration or validation |
packages/foamnordic/foamnordic/core/ |
packages/foamnordic/foamnordic/execution/ |
test_graph.py, test_plan.py |
| Closure or equation boundary |
src/foamnordic/openfoam/closureHook.H |
src/foamnordic/openfoam/models/ |
Python contract tests, OpenFOAM build, solver smoke test |
| Generic field transform |
src/foamnordic/openfoam/fjordExchange.C |
fieldBridge.C, operations/ |
test_graph.py, test_plan.py, tests/openfoam/ |
| Observation |
src/foamnordic/backend/adapter/observation.hpp |
fieldProgramObservation.C |
tests/backend/adapter/, test_run.py |
| Exchange or data plane |
src/foamnordic/backend/communication/ |
src/foamnordic/backend/adapter/exchange.cpp |
tests/backend/communication/, tests/backend/adapter/ |
| ModelHost execution |
src/foamnordic/backend/inference/ |
packages/bindnordic/ |
tests/backend/inference/, packages/bindnordic/tests/native/ |
| FNOM or scaler semantics |
packages/bindnordic/src/bindnordic/ |
packages/foamnordic/foamnordic/export.py |
BindNordic native and Python artefact tests |
| Launch or placement |
packages/foamnordic/foamnordic/execution/ |
src/foamnordic/runtime/ |
test_launch.py, test_slurm.py, tests/runtime/ |
Change route
- Locate the owning component and read its local README and architecture contract.
- Change that component and add relevant behavioural coverage; avoid duplicating numerical or lifecycle logic.
- Follow the verification guide and update affected API or usage documentation.
Stable boundaries
Keep equations in OpenFOAM, model execution in ModelHost and BindNordic, exchange in Fjord and Harbor, and orchestration in Longship. Observations remain non-blocking. The architecture principles define these boundaries.
Guides
| Guide |
Use it for |
| Field programmes and OpenFOAM |
Closures, transforms, native algebra, observations and external solver adapters |
| OpenFOAM source style |
Formatting and reviewing OpenFOAM-linked C++ without changing runtime design |
| Native runtime |
Rune, Fjord, Harbor, ModelHost, Smedja, BindNordic and connectors |
| Verification |
Selecting the smallest sufficient local, OpenFOAM, MPI and Roihu checks |
| Documentation site |
Building and publishing the Zensical site on GitHub Pages |