Conversation
leading zero copied over from VMEC convention, causing all coefficients off-by-one. See issue #554
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #555 +/- ##
==========================================
+ Coverage 90.14% 90.17% +0.02%
==========================================
Files 84 84
Lines 17880 18451 +571
==========================================
+ Hits 16118 16638 +520
- Misses 1762 1813 +51
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@andrewgiuliani @mishapadidar @landreman Think we're good to go! lmk if more changes are needed. |
|
Hi @smiet, just checking in on this PR. Is this still in progress? It looks like there are still comments to be adressed in the code. |
|
Hi @mishapadidar I left comments under your comments, but I did not 'resolve' them. I feel happy with the current status and want to move forward, so I now naming, and 'duplicate' functionsI have functions like
compute_poincare_trajectories return signature mismatchScipyFieldlineIntegrator and SimsoptFieldlineIntegrator handle computation of the Poincare hits differently, and that the ScipyFieldlineIntegrator has two calls, one for the trajectories, one for the plane hits. This is because of how the ODE is solved, the These functions are to only be called by PoincarePlotter, and there is specific logic to handle this there. If I add a kwarg, I still want the SimsoptFieldlineIntegrator to return both values, because it is always computed and would be a waste not to cache it. this would add a useless kwarg to that function, but it would make the interface simpler. I opted to put the logic in PoincarePlotter, but if you want me to I can switch it to the integrator call, LMK. other
|
|
@mishapadidar can we move forward on this PR? |
|
Hi @smiet, unit tests are failing here |
as requested in PR
|
should be better now, @mishapadidar |
|
@mishapadidar @andrewgiuliani can we move on this? I have other developments building on this PR and I want to confirm that the call signature and name |
|
I am sorry to be such a nag, but can we please move on this? @mishapadidar @andrewgiuliani |
Revamp of fieldline integration. Some tests still need to be written, but this should simplify the user experience in generating Poincare plots.
What’s new
Integratorbase classwith subclasses:
soppintegration routinesscipy.solve_ivpmethods).These subclasses provide methods to return Poincare sections, three dimensional field line trajectories, as well as the ability to integrate from any starting point over a given toroidal distance.
The$R$ and $Z$ using $\phi$ as the 'time' variable in the ODE, providing crisper Poincare sections and integrates about as fast as the
ScipyFieldlineIntegratorprovides methods to integratesoppmethods (which evolves the three coordinates independently).The Integrator subclasses also provide an interface to the
PoincarePlotterclass, which provides an easy interface to create Poincare plots of the field.The PoincarePlotter uses caching and the simsopt dependency graph (parent
Integratorwith parentMagneticField) to trigger recomputes when necessary.Manipulation of the
res_phi_hitsandres_tysarrays is a thing of the past!give it a spin!: