SIMSOPT: A python/C++ framework for stellarator optimization
POSTER
Abstract
We present a new software framework called SIMSOPT for stellarator optimization. SIMSOPT is a mixed language software framework written in python and C++ for flexibility and efficiency. It provides object-oriented programming tools for defining objective functions and parameter spaces for stellarator optimization. SIMSOPT partitions the objective function using a graph-based approach and allows for dynamic alteration of the problem size. External MHD codes such as VMEC and SPEC can be used in defining the objective function. SIMSOPT provides classes for geometric objects that are important for stellarators such as surfaces and curves in different representations. It also makes multiple magnetic field representations available. An efficient implementation of the Biot-Savart law, including derivatives is available. It provides MPI based tools for parallelized finite-difference gradient calculations. Modern software engineering practices such as a large suite of unit tests and continuous integration are employed in the development of SIMSOPT. It is distributed through multiple channels including conda, docker, and python wheels.
*This work was supported by a grant from the Simons Foundation (560651, ML). BM and CZ are supported by the U.S. Department of Energy under Contract No. DE-AC02- 09CH11466 through the Princeton Plasma Physics Laboratory.
Publication: 1. Matt Landreman, Bharat Medasani, and Caoxiang Zhu, Stellarator optimization for good magnetic surfaces at the same time as quasisymmetry, arXiv:2106.14930v1 [physics.plasm-ph] 2021.
2. Bharat Medasani, Florian Wechsung, Andrew Giuliani, Rogerio Jorge, Matt Landreman, Caoxiang Zhu, SIMSOPT: v0.4.0 (2001). Zenodo. http://doi.org/10.5281/zenodo.5068991 (Source code URL: http://github.com/hiddensymmetries/simsopt)
Presenters
-
Bharat K Medasani
- Princeton Plasma Physics Laboratory
- Princeton Plasma Physics Lab