Skip to content

ejpaul/ALPOpt

Repository files navigation

ALPOpt

This is a python-based tool for gradient-based optimization of VMEC equilibria using adjoint methods. Details and examples are discussed in https://arxiv.org/abs/2012.10028.

Setup

Required python packages and variants I currently use:

  • mpi4py (3.0.3)
  • numpy (1.19.1)
  • scipy (1.5.2)
  • nlopt (2.6.2)
  • numba (0.51.2)
  • scanf (1.5.2)
  • f90nml (1.2)

Many objectives rely on the VMEC code. This can be installed from https://github.com/PrincetonUniversity/STELLOPT.

The axis ripple objective relies on a variant of the ANIMEC code. This can be installed from https://github.com/ejpaul/ANIMEC_adjoint_ripple.

  • In order to run VMEC from the command line, the environment variable ANIMEC_PATH must be set to the absolute path to the executable.

Examples

Several optimization examples are contained in the examples directory.

Testing

Each of the modules have unittesting in the test directory. These can be run with : python -m unittest test_*.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages