Initial release. Compared with FreeGS 0.6.1, the following changes have been made:
Performance updates:
- Critical point solver optimisation.
- Numba for inner mask routine.
- PaxisIp and BetapIp optimisation of integrals using beta special function from scipy and and trapezoid.
Changes to profile object:
- New profile families: Lao85, Fiesta_Topeol
- “profiles.Jtor” method no longer present. (Though we could re-introduce it quite easily)
- New method Jtor_part1 introduced with (only) code to calculate Jtor that is NOT specific to the profile family.
- New method “Jtor_part2” introduced with (only) the code to calculate Jtor that is specific to that profile family.
- In general changes to the profile objects relate to allowing the presence of a limiter (code for that is in freegsnke) without slowing things down or repeating calculations (plus some refactoring).
Changes to critical point calculations:
- Treat tricky cases in which it was failing before (flooding in the core mask and mistakes in identifying the primary x points) and make GS solver more robust:
- calculating Jtor depends on ‘find_critical’ and ‘inside_mask’, both now know about the limiter
- Introduced dependency on the limiter when identifying/choosing O-point
- Introduced dependency on the plasma current when identifying/choosing X-point
- Some change to routine that discards X-points