Skip to content

Use one NetCDF/HDF5 link stack#497

Closed
krystophny wants to merge 12 commits into
agent/spectre-valid-crossings-cleanfrom
agent/hermetic-netcdf-link-clean
Closed

Use one NetCDF/HDF5 link stack#497
krystophny wants to merge 12 commits into
agent/spectre-valid-crossings-cleanfrom
agent/hermetic-netcdf-link-clean

Conversation

@krystophny

Copy link
Copy Markdown
Member

Summary

  • remove redundant bare NetCDF library names from the SIMPLE target
  • use the NetCDF target or flags already resolved and exported by libneo
  • prevent fetched static NetCDF/HDF5 and host shared NetCDF/HDF5 from entering the same executable

This is intentionally stacked on #496 and contains only the build-link concern.

Validation

  • Static analysis: passed
  • Build: passed
  • The first parallel test pass reported test_restart_io and test_result_accounting; both passed immediately with ctest --rerun-failed --output-on-failure -j1. A complete clean rerun and the NVHPC link audit are in progress.

@krystophny
krystophny force-pushed the agent/spectre-valid-crossings-clean branch from d5f8688 to 99758d8 Compare July 17, 2026 06:33
@krystophny
krystophny force-pushed the agent/hermetic-netcdf-link-clean branch from 4c4173b to 5ae3d4b Compare July 17, 2026 06:33
@krystophny
krystophny force-pushed the agent/spectre-valid-crossings-clean branch from 99758d8 to 7997ef8 Compare July 17, 2026 06:40
@krystophny
krystophny force-pushed the agent/hermetic-netcdf-link-clean branch from 5ae3d4b to 4e94045 Compare July 17, 2026 06:40
@krystophny
krystophny force-pushed the agent/spectre-valid-crossings-clean branch from 7997ef8 to b4789a2 Compare July 17, 2026 07:52
@krystophny
krystophny deleted the branch agent/spectre-valid-crossings-clean July 17, 2026 07:53
@krystophny krystophny closed this Jul 17, 2026
krystophny added a commit that referenced this pull request Jul 17, 2026
## Summary

- remove redundant bare NetCDF library names from the SIMPLE target
- use the NetCDF link stack already resolved and exported by libneo
- prevent fetched static and host shared NetCDF/HDF5 libraries from
entering the same executable

This replacement for #497 targets merged `main` directly. Its Git tree
is byte-identical to the prior stacked head, whose full CI passed.
krystophny added a commit that referenced this pull request Jul 17, 2026
## Summary

- give the restart-I/O and result-accounting tests the same CTest
resource lock
- prevent their shared `times_lost.dat` and related files from racing
under parallel `fo`

This is a test-infrastructure-only PR stacked on #497. It does not
change the runtime binary.

## Validation

- reproduced the race as simultaneous failures of both tests
- each failed test passed immediately when rerun alone
- generated CTest metadata contains the shared resource lock
- complete `fo` pipeline passed: static analysis, build, tests, and lint
(460.9 s)
krystophny added a commit that referenced this pull request Jul 17, 2026
## Summary

- keep Newton warning recovery bounded; the obsolete unbounded
finite-iterate policy from closed PR #495 is not included
- recover failed non-SPECTRE symplectic steps through the established
adaptive RK path, cap recovery at 10,000 internal steps, and stop
repeating identical failed recovery work
- reject non-finite, non-local, or out-of-domain RK and symplectic
states before they can be committed or mislabeled as physical LCFS
losses
- retain the reviewed SPECTRE hardening and the independent fixes from
PRs #494, #496, #497, and #498
- compare golden outcomes by physical contract: identities, initial
invariants, exit status/time, valid resolved endpoints, and strict
physical events; completed chaotic survivor phase points may decorrelate

## Validation

- full `fo` at `c57f419`: static analysis, build, complete test suite,
and lint passed in 304.4 s
- focused `test_sympl_testfield` and `test_newton_solver_status` pass
- 13 golden-comparator unit tests pass
- fresh Albert golden run completed without the former stall; all 32
markers resolved, every endpoint was finite, and mapped final radius
stayed in 0.017 to 1.013
- the golden comparison identifies 27 recovered numerical exits and
corrects three old physical-loss records whose reference endpoints had
radial coordinates of roughly 5e5 to 2e6

PR #495 was closed because its generic policy admitted arbitrarily large
finite Newton iterates and produced invalid physical outcomes. This
branch was rebuilt without it. The final performance comparison will be
rerun without the concurrent large LFS archive upload before merge.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant