NEAT Documentation
NEAT is a hybrid python/C++ framework for optimizing
stellarators
for good fast-particle confinement using the near-axis expansion formalism.
You can read more about these concepts in the overview section here.
The high-level routines are written in python, with calls to C++ where needed for performance.
The main components of NEAT are:
Interface with physics codes such as gyronimo, pyQSC, pyQIC, SIMSOPT and SIMPLE.
Simple to use classes to trace particles in stellarator magnetic fields.
Tools for defining objective functions and parameter spaces for optimization.
The design of NEAT is guided by several principles:
Thorough unit testing, regression testing, and continuous integration.
Extensibility: It should be possible to add new codes and terms to the objective function without editing modules that already work, i.e. the open-closed principle. This is because any edits to working code can potentially introduce bugs.
Modularity: Physics modules that are not needed for your problem do not need to be installed. For instance, to just trace particles you don’t need the
simsoptorSIMPLEpackages.Flexibility: The components used to define a particles, orbits or objective functions can be re-used for applications other than standard optimization
We gratefully acknowledge funding from the EUROfusion and from Fundação para a Ciência e Tecnologia, Portugal (FCT).
NEAT is fully open-source, and anyone is welcome to
make suggestions, contribute, and use.
Contents
API