Skip to content

PyTorch implementation of Neural Netowrk Differential Equation Plasma Equilibrium Solver.

Notifications You must be signed in to change notification settings

amerlo94/neural-plasma-equilibrium-solver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neural Netowrk Differential Equation Plasma Equilibrium Solver

PyTorch implementation of Neural Netowrk Differential Equation Plasma Equilibrium Solver.

Equilibria

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;

Train

Define the equilibrium and training procedure arguments via a yaml configuration file:

python train.py --config=configs/solovev.yaml

Available 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.

Test

To run all tests, simply run:

pytest

TODO

  • fix equilibrium definition from VMEC wout (i.e., F function parsing)

About

PyTorch implementation of Neural Netowrk Differential Equation Plasma Equilibrium Solver.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages