PyTorch implementation of Neural Netowrk Differential Equation Plasma Equilibrium Solver.
The implemented equilibria are described in physics.py:
HighBetaEquilibrium: simplified high-beta tokamak;GradShafranovEquilibrium: fixed-boundary Grad-Shafranov tokamak;InverseGradShafranovEquilibrium: fixed-boundary inverse Grad-Shafranov 2D equilibrium;
Define the equilibrium and training procedure arguments via a yaml configuration file:
python train.py --config=configs/solovev.yamlAvailable configurations:
configs/solovev.yaml: Solov'ev case as in Hirshman. The Physics of fluids 26.12 (1983): 3553-3568.configs/dshape.yaml: a D-shape tokamak equilibrium as in Dudt. Physics of Plasmas 27.10 (2020): 102513.configs/high_beta.yaml: high-beta case as in van Milligen. Physical review letters 75.20 (1995): 3594.configs/inverse_solovev.yaml: inverse Solov'ev tokamak equilibrium.configs/inverse_dshape.yaml: inverse D-shape tokamak equilibrium.
To run all tests, simply run:
pytest- fix equilibrium definition from VMEC wout (i.e., F function parsing)