Skip to content

Size the T_l recurrence passes of the analytic add-back by their growth rate - #33

Open
CharlesCNorton wants to merge 1 commit into
jonathanschilling:masterfrom
CharlesCNorton:nestor-tl-recurrence
Open

Size the T_l recurrence passes of the analytic add-back by their growth rate#33
CharlesCNorton wants to merge 1 commit into
jonathanschilling:masterfrom
CharlesCNorton:nestor-tl-recurrence

Conversation

@CharlesCNorton

Copy link
Copy Markdown
Contributor

The two homogeneous solutions of Eq (A15) form a pair of modulus sqrt(adm/adp) for T+, and its reciprocal for T-, so stepping the recurrence upward over mf + nf steps multiplies the rounding of its inputs by that factor. analyt steps upward for every point regardless of that growth.

This tabulates T+ and T- before the l-sum, upward where the growth is small and downward from a seed above mf + nf where it is not, following the same criterion as ORNL-Fusion/PARVMEC#84 and proximafusion/vmecpp#836. all_tlp and all_tlm already hold the sequences, so the l-sum reads them instead of rolling tlp/tlp1/tlp2.

Accuracy is measured against the same recurrence carried at 60 digits, seeded with the closed form for T(0), using the metric this code dumps for the surface it is actually on (dump_vac1n_surface and dump_vac1n_analyt at one iteration of fb/input.cth_like_free_bdy). Worst relative error in T+ over the surface:

resolution growth over the pass points stepped upward points stepped downward
mpol 12, ntor 12 up to 2.8e4 5.6e-16 -> 5.7e-16 1.3e-12 -> 4.2e-13
mpol 16, ntor 16 up to 7.3e5 4.3e-16 -> 4.5e-16 3.2e-11 -> 1.3e-11

The gain grows with the growth factor, which on a boundary with a larger adm/adp spread is far bigger: on the exact dipole test in PARVMEC at mpol 16, ntor 16 the vacuum residual went from 6.5e-1 to 2.3e-4.

Where the upward pass is kept the tabulation is unchanged, and on fb/input.cth_like_free_bdy at its own resolution the converged rmnc agrees with master to 5.8e-14. ctest passes.

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