You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
rabe-vs-NEO-2 benchmarks currently compare two different Boozer transforms of the same equilibrium. NEO-2 reads .bc files generated through booz_xform; rabe converts the VMEC wout internally with the libneo converter (adopted in #44). The measured difference between the two transforms sits at the QI offset signal level and orders of magnitude above the QA signal (see the converter-fidelity gate results in #92), so the converter confounds every benchmark. Reading the same .bc file NEO-2 uses removes that confound.
The earlier neo_field_t served this purpose but pulled in NEO-2 and SuiteSparse, so #74 moved it to the internal test submodule for the public release.
Proposed design
A bc_field_t extending field_t that reads a .bc file directly, with no NEO-2 or SuiteSparse code:
|B| by direct Fourier sum from bmnc (and bmns for non-symmetric files).
Jacobian from the current columns: sqrt(g) proportional to (G + iota*I)/B^2 in Boozer coordinates.
Covariant components B_phi, B_theta from the Jpol/nper and Itor columns.
Radial spline of the Fourier coefficients across surfaces.
nabla_s mode switch: default uses the correct stream-function sign (phi_cyl = phi_B - v); an opt-in neo2_bc mode reproduces the legacy opposite-sign convention of existing .bc data, for benchmarking against historical NEO-2 results (see the 36 use simples vmec to boozer converter #44 commit message for the mechanism).
The evaluation core could live in libneo (itpplasma/libneo#305) with bc_field_t as a thin adapter here.
Motivation
rabe-vs-NEO-2 benchmarks currently compare two different Boozer transforms of the same equilibrium. NEO-2 reads
.bcfiles generated through booz_xform; rabe converts the VMEC wout internally with the libneo converter (adopted in #44). The measured difference between the two transforms sits at the QI offset signal level and orders of magnitude above the QA signal (see the converter-fidelity gate results in #92), so the converter confounds every benchmark. Reading the same.bcfile NEO-2 uses removes that confound.The earlier
neo_field_tserved this purpose but pulled in NEO-2 and SuiteSparse, so #74 moved it to the internal test submodule for the public release.Proposed design
A
bc_field_textendingfield_tthat reads a.bcfile directly, with no NEO-2 or SuiteSparse code:|B|by direct Fourier sum frombmnc(andbmnsfor non-symmetric files).sqrt(g)proportional to(G + iota*I)/B^2in Boozer coordinates.B_phi,B_thetafrom theJpol/nperandItorcolumns.nabla_smode switch: default uses the correct stream-function sign (phi_cyl = phi_B - v); an opt-inneo2_bcmode reproduces the legacy opposite-sign convention of existing.bcdata, for benchmarking against historical NEO-2 results (see the 36 use simples vmec to boozer converter #44 commit message for the mechanism).The evaluation core could live in libneo (itpplasma/libneo#305) with
bc_field_tas a thin adapter here.References
neo_field_tfrom the public tree)