QL: single-helicity misalignment drive in ripple_solver_ArnoldiO2#119
QL: single-helicity misalignment drive in ripple_solver_ArnoldiO2#119krystophny wants to merge 7 commits into
Conversation
|
Additional verification: the rotating aligned-pair regression passes. With |
|
@GeorgGrassler please help Sergei to get this branch working when you have some time. |
bfe5f5f to
e1c2f49
Compare
e1c2f49 to
f91d638
Compare
isw_qflux_NA=1 with in_file_pert='none' assembles an identically zero non-axisymmetric source. That zero vector is the Arnoldi seed, so its normalization divides by zero (0/0 -> NaN) and zhseqr then fails to converge at every step, spinning without qflux output. Reject the configuration in check() with a clear message instead.
Add an optional right-hand side to the non-axisymmetric solve: the drive of a single-helicity perturbation given by a radial corrugation field (delta B^s/B_0^phi)_mn and an electrostatic potential harmonic Phi_mn. The vpar corrugation piece enters the A1/A2 force channels with velocity weights a3m and x^2 (sigma-odd), the ExB piece with weights x^-1 and a1m (sigma-even); the two new velocity moments are computed in compute_sources. Input via new &ntv_input variables (isw_hel_drive, m_theta_hel, hel_brad_re/im, hel_phim_re/im), default off. Band profiles, moments and dimensional prefactors follow a CAS-checked derivation (see issue #118). Off by default: golden-record QL summary.h5 is reproduced to 1e-15 against a main build.
Review findings on the drive commit: fold the x^(3k-4) weight into a single power so the x=0 quadrature node stays finite; skip the moment quadrature on the precomputed-matrix-element path and reject isw_hel_drive at run time when the moments are unavailable; reject the unvalidated relativistic branch, reconstruction mode and unset species data; deallocate asource_hel in collop_unload.
f91d638 to
7a868ae
Compare
Implements #118. This branch is stacked on #124 and #121 and remains open against
main. The separate child branch for #122 enables source-only execution when this drive supplies a nonzero source.Summary
isw_hel_drive,m_theta_hel,hel_brad_re/im, andhel_phim_re/imtontv_inputInvariants
Switch-off behavior remains unchanged. The drive preserves the existing Arnoldi O2 discretization, collision-moment storage layout, species ordering, ABI, field-line boundary conditions, and Fourier convention. The source uses CGS/Gaussian units and the CAS-checked
exp(+i(m theta + n phi))phase map. No branch in this stack is authorized to merge before the programme-wide gate.Verification
Test fails on main
With the source-activation regression applied before the drive implementation:
Test passes after fix
The full pipeline passed twice consecutively after #124 serialized the duplicate build tests.
The 16 separately managed external-data regressions remain registered under
regression;external-data; this branch does not mark that unavailable-data gate passed.