openmupro Dependency Audit#
Last updated: 2026-05-24
This audit records the post-migration dependency state after removing openmupro from the active build graph. It does not claim that every solver is fully modernized; it identifies what has been migrated, what is clean, and what remains deferred.
Audit Scope#
Active source/config paths: repository root,
library/,license/,docs/,.github/,.vscode/,scripts/,examples/, and app submodule working trees where readable.Excluded raw/history paths:
inbox/,reference/,not_used/,library/out/,license/out/, and.git/.Desktop code is explicitly out of scope and was not migrated.
Evidence Commands#
The following checks were used as the active-state baseline:
rg --hidden -n "find_package\\s*\\(\\s*openmupro|openmupro_DIR|mupro::openmupro|openmupro" \
--glob '!library/out/**' --glob '!license/out/**' --glob '!reference/**' \
--glob '!not_used/**' --glob '!inbox/**' --glob '!TASK.md' --glob '!.git/**' .
git submodule status --recursive
Result:
No active
openmuproreferences were found by the search command..gitmodulesno longer contains anopenmuprosubmodule.Current submodules are app modules only:
apps/muEffProp,apps/muFerro,apps/muMagn, andapps/muPREDICT.
CMake Dependency State#
ID |
Previous concern |
Current state |
|---|---|---|
DEP-AUD-001 |
|
No active usage found. |
DEP-AUD-002 |
|
No active usage found outside historical notes. |
DEP-AUD-003 |
|
No active usage found. |
DEP-AUD-004 |
|
Removed from |
DEP-AUD-005 |
App developer-mode references |
Cleaned locally in |
The active library/CMakeLists.txt now owns the runtime stack directly:
Always adds
L0_Base,L0_Log,L0_FFT,L1_PostProcess,L1_Transform,L1_Utilities,L1_IO,L1_StructureGenerator,L1_MaterialGenerator, andL1_Film.Adds solver layers only when
MUPRO_BUILD_SOLVERS=ON.Links
mupro::math_backend,mupro::license, MPI, and local library sources instead of an externalopenmupropackage.
Migrated Module Map#
Former package area |
Current SDK location |
Public modules |
Notes |
|---|---|---|---|
|
|
|
Size, precision, MPI, TOML, expression parser, constants. |
|
|
|
Message and formatted print helpers. |
|
|
|
FFT context and MPI FFT wrappers; backend selected by CMake. |
|
|
|
Free-format, JSON, serial/MPI I/O, VTK, time-dependent parsing. |
|
|
|
Rotation, symmetry, tensor transform utilities. |
|
|
|
Allocation, conversion, tensor/data/FDM helpers, error handling. |
Additional common modules |
|
|
Domain processing and BMP visualization. |
Additional common modules |
|
|
Structure/slab generation helpers. |
Additional common modules |
|
|
Material and tensor generation helpers. |
Additional common modules |
|
|
Film geometry/helpers used by higher-level solvers. |
|
|
Downstream |
Kept and migrated into the SDK examples tree. |
|
Not migrated |
N/A |
Deferred by decision; future desktop work belongs to separate software. |
Current Public Wrapper Definitions#
The active SDK defines these migrated L0/L1 wrapper modules:
Module |
Source |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Consumer Summary#
The main consumer pattern is now local to library/:
Consumer group |
Modules used |
Notes |
|---|---|---|
L0/L1 internals |
|
Local implementation modules depend on each other directly inside |
L2/L3 solvers |
|
Solver logic still uses internal |
SDK examples |
|
|
App submodules |
|
|
Observed usage counts from active source scan:
Module family |
Count |
|---|---|
|
47 |
|
21 |
|
13 |
|
42 |
|
18 |
Other |
1-9 each |
Deferred Issues#
ID |
Issue |
Location |
Disposition |
|---|---|---|---|
DEP-AUD-RISK-001 |
Legacy names such as |
|
Defer to solver/test modernization; do not patch scientific code in this audit. |
DEP-AUD-RISK-002 |
App submodule cleanup is local and not committed in the app repositories. |
|
Defer to app refactor and future repository consolidation decision. |
DEP-AUD-RISK-003 |
L2/L3 test CMake files still contain some ad hoc external link assumptions such as direct |
Solver test directories |
Address in solver-focused build/test cleanup. |
Audit Conclusion#
The active SDK build graph no longer depends on a prebuilt openmupro package or submodule. The migrated L0/L1 runtime code is now owned by library/, and examples/demo1 is owned by examples/. Remaining work belongs to later solver/app modernization and benchmark setup, not to the openmupro package removal itself.