Version 1.0.0 release of FreeGSNKE.
Capabilities
All the below listed capabilities involve solving the Grad-Shafranov equation for tokamak equilibria.
- **Evolutive forward**: Solve simultaneously for the plasma equilibrium, poloidal field currents, passive structure currents, and total plasma current over time from an initial equilibrium using user-defined time-dependent poloidal field coil voltages and plasma current density profile parameters.
- **Static forward**: Solve for the plasma using defined poloidal field coil currents, passive structure currents, and plasma current density profiles.
- **Static inverse**: Solve for poloidal field coil currents using user-defined constraints (e.g. isoflux and X-point locations) and plasma current density profiles for a desired plasma equilibrium shape.
Supported tokamak geometry elements
- Active poloidal field coils.
- Passive conducting structures.
- Wall contours.
- Limiter contours.
- Magnetic diagnostic probes.
Examples notebooks
Notebooks demonstrating FreeGSNKE functionality are contained in the `examples/` directory. As of v1.0.0, these consist of:
- `example0 - build_tokamak_machine.ipynb`: How to create the machine description files required to begin solving for Grad-Shafranov equilibria.
- `example1 - static_inverse_solve_MASTU.ipynb`: How to use FreeGSNKE to solve static inverse free-boundary Grad-Shafranov (GS) problems.
- `example2 - static_forward_solve_MASTU.ipynb`: How to use FreeGSNKE to solve static forward free-boundary Grad-Shafranov (GS) problems.
- `example3 - extracting_equilibrium_quantites.ipynb`: How to access different results stored (or calculated using methods) in the `eq` and `profiles` objects.
- `example4 - using_magnetic_probes.ipynb`: How to set up and use magnetics probes.
- `example5 - evolutive_forward_solve.ipynb`: How to simulate the (time-dependent) evolution of Grad-Shafranov (GS) equilibria. In particular, a vertical displacement event (VDE).
- `example6a - static_forward_MASTU_solves_from_magnetics_only_data.ipynb`: How to carry out static forward Grad-Shafranov equilibrium solves for MAST-U shots using FreeGSNKE. (Note: requires UDA client).
- `example6b - static_forward_MASTU_solves_from_magnetics_and_MSE_data.ipynb`: As above but including motional Stark effect (MSE) reconstructions from EFIT++. (Note: requires UDA client).
- `example7 - static_inverse_solve_SPARC.ipynb`: Demonstrates inverse free-boundary equilibrium solutions for a SPARC-like tokamak.
- `example8 - static_inverse_solve_ITER.ipynb`: Demonstrates inverse free-boundary equilibrium solutions for a ITER-like tokamak.
More details in published papers
More details of FreeGSNKE's structure, capabilities, verification and uses can be found in the following published, peer-reviewed papers:
- N. C. Amorisco et al, "FreeGSNKE: A Python-based dynamic free-boundary toroidal plasma equilibrium solver", Physics of Plasmas, 31, 042517 (2024). DOI: [10.1063/5.0188467](https://doi.org/10.1063/5.0188467).
- K. Pentland et al, "Validation of the static forward Grad-Shafranov equilibrium solvers in FreeGSNKE and Fiesta using EFIT++ reconstructions from MAST-U", Physica Scripta 100, 025608 (2024). DOI: [10.1088/1402-4896/ada192](https://doi.org/10.1088/1402-4896/ada192).
- A. Agnello et al, "Emulation techniques for scenario and classical control design of tokamak plasmas", Physics of Plasmas, 31, 043091 (2024). DOI: [10.1063/5.0187822](https://doi.org/10.1063/5.0187822).