Problem
CI never sets a thread count, so every @threads loop in PerturbedEquilibrium/SingularCoupling.jl, PerturbedEquilibrium/FieldReconstruction.jl and KineticForces/Compute.jl runs on one thread. The regression harness caches results by commit, not by thread count, so it cannot catch a race either.
Ask
- Add a test that runs a small multi-n PerturbedEquilibrium (PE) case at 1 thread and at more than 1. It should assert that the singular-coupling rows and the reconstructed fields are bit-identical.
diiid_multi_n exercises the repeated-surface path, but a small Solovev multi-n PE case would be cheaper.
- Run that test in CI with more than one thread (e.g.
JULIA_NUM_THREADS=2).
Also missing (could be split out)
PE currently stops only when force_termination is set. It should also refuse to run when:
- the plasma is unstable (
et[1] < 0);
- the stability run used a wall (
wall_settings is not nowall).
Follow-up to #334 and #477.
Problem
CI never sets a thread count, so every
@threadsloop inPerturbedEquilibrium/SingularCoupling.jl,PerturbedEquilibrium/FieldReconstruction.jlandKineticForces/Compute.jlruns on one thread. The regression harness caches results by commit, not by thread count, so it cannot catch a race either.Ask
diiid_multi_nexercises the repeated-surface path, but a small Solovev multi-n PE case would be cheaper.JULIA_NUM_THREADS=2).Also missing (could be split out)
PE currently stops only when
force_terminationis set. It should also refuse to run when:et[1] < 0);wall_settingsis notnowall).Follow-up to #334 and #477.