QUADCOIL documentation

Welcome to the documentation for QUADCOIL, the stellarator coil complexity proxy/global coil optimizer!

An example coil set for NCSX

QUADCOIL is a global coil optimization code that approximates coils with a smooth sheet current. In other words, it’s a “winding surface” code. However, unlike other winding surface codes, QUADCOIL:

  • Supports constrained optimization.

  • Supports non-convex quadratic penalties/constraints, such as curvature \(\mathbf{K} \cdot \nabla \mathbf{K}\).

  • Includes robust winding surface generators that do not produce self-intersections.

  • Calculates derivatives with respect to plasma shape, winding surface shape, objective weights, and constraint thresholds.

Installation

QUADCOIL requires JAX. For the JAX installation guide, see here.

Clone the QUADCOIL source files, and then run:

pip install .

Validating the installation

The installation can be validated by running the example notebooks in examples. The unit tests requires Simsopt’s regcoil branch, which is not completely merged into the main branch as of this writing. After installing the branch, run:

python -m unittest discover

Contact

Please contact Lanke Fu at PPPL for questions and bug reports.

Publications

  1. Global stellarator coil optimization with quadratic constraints and objectives