Skip to content

STRIDE parallel-FM ZVODE fails to converge at higher thread counts on near-separatrix equilibrium #273

Description

@logan-nc

Summary

STRIDE's parallel-FM path fails ZVODE convergence at higher thread counts on a
near-separatrix DIII-D-like equilibrium, while serial and low thread counts converge. The
failed run STOPs (exit 0) and writes no output NetCDF.

Environment / case

  • ifx/MKL 2026 build. DIII-D-like corrected geqdsk, jac=hamada, grid_type=ldp,
    mpsi=256, psihigh=0.995, n=1, bal_flag=f, tol_nr=tol_r=1e-8.

Symptom

At nThreads >= ~8:

 Starting ODE integration...
 ZVODE1--  At T (=R1) and step size H (=R2), the
       corrector convergence failed repeatedly
       or with abs(H) = HMIN
      In above,  R1 = 0.5183...D+00   R2 = 0.3815...D-12
 PROGRAM STOP => STRIDE STOP: ZVODE1 integration failure.

No stride_output_n1.nc is produced. Serial (nThreads=1) converges to Normal termination
(~6 s); nThreads=2 and 4 also converge; failures appear at higher counts and are
intermittent (thread-schedule dependent).

Impact

  • The parallel STRIDE FFS path is unusable at the thread counts one would actually run it at
    on this class of equilibrium.
  • The run STOPs with exit 0 but produces no NetCDF, so downstream tooling that assumes output
    exists must guard on it (rather than trust the exit code).

Suggested investigation

  • Look at how the parallel-FM chunk decomposition interacts with ZVODE corrector convergence
    near the separatrix (q -> inf, dense rationals).
  • Consider a graceful fallback (retry at fewer threads / serial) on ZVODE failure instead of
    a hard STOP, and/or a nonzero exit code so callers can detect it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions