PlasmaControl / DESC

Stellarator Equilibrium and Optimization Suite
MIT License
98 stars 26 forks source link
fusion nuclear-fusion optimization plasma plasma-physics stellarator stellarators

.. image:: https://raw.githubusercontent.com/PlasmaControl/DESC/master/docs/_static/images/logo_med_clear.png

.. inclusion-marker-do-not-remove

################################ Stellarator Optimization Package ################################ |License| |DOI| |Issues| |Pypi|

|Docs| |UnitTests| |RegressionTests| |Codecov|

DESC solves for and optimizes 3D MHD equilibria using pseudo-spectral numerical methods and automatic differentiation.

The theoretical approach and implementation details used by DESC are presented in the following papers and documented at Theory_. Please cite our work if you use DESC!

.. _Theory: https://desc-docs.readthedocs.io/en/latest/theory_general.html

Quick Start

The easiest way to install DESC is from PyPI: pip install desc-opt

For more detailed instructions on installing DESC and its dependencies, see Installation_.

The best place to start learning about DESC is our tutorials:

For details on the various objectives, constraints, optimizable objects and more, see the full api documentation_.

If all you need is an equilibrium solution, the simplest method is through the command line by giving an input file specifying the equilibrium and solver options, this way can also can also accept VMEC input files.

The code is run using the syntax desc <path/to/inputfile> and the full list of command line options are given in Command Line Interface_. (Note that you may have to prepend the command with python -m)

Refer to Inputs_ for documentation on how to format the input file.

The equilibrium solution is output in a HDF5 binary file, whose format is detailed in Outputs_.

.. _Installation: https://desc-docs.readthedocs.io/en/latest/installation.html .. _Command Line Interface: https://desc-docs.readthedocs.io/en/latest/command_line.html .. _Inputs: https://desc-docs.readthedocs.io/en/latest/input.html .. _Outputs: https://desc-docs.readthedocs.io/en/latest/output.html .. _Basic fixed boundary equilibrium: https://desc-docs.readthedocs.io/en/latest/notebooks/tutorials/basic_equilibrium.html .. _Advanced equilibrium: https://desc-docs.readthedocs.io/en/latest/notebooks/tutorials/advanced_equilibrium_continuation.html .. _Free boundary equilibrium: https://desc-docs.readthedocs.io/en/latest/notebooks/tutorials/free_boundary_equilibrium.html .. _Using DESC outputs: https://desc-docs.readthedocs.io/en/latest/notebooks/tutorials/use_outputs.html .. _Basic optimization: https://desc-docs.readthedocs.io/en/latest/notebooks/tutorials/basic_optimization.html .. _Advanced optimization: https://desc-docs.readthedocs.io/en/latest/notebooks/tutorials/advanced_optimization.html .. _Near axis constraints: https://desc-docs.readthedocs.io/en/latest/notebooks/tutorials/nae_constraint.html .. _Coil optimization: https://desc-docs.readthedocs.io/en/latest/notebooks/tutorials/coil_stage_two_optimization.html .. _api documentation: https://desc-docs.readthedocs.io/en/latest/api.html

Repository Contents

.. _desc: https://github.com/PlasmaControl/DESC/tree/master/desc .. _docs: https://github.com/PlasmaControl/DESC/tree/master/docs .. _tests: https://github.com/PlasmaControl/DESC/tree/master/tests .. _publications: https://github.com/PlasmaControl/DESC/tree/master/publications .. _API: https://desc-docs.readthedocs.io/en/latest/api.html

Contribute

.. |License| image:: https://img.shields.io/github/license/PlasmaControl/desc?color=blue&logo=open-source-initiative&logoColor=white :target: https://github.com/PlasmaControl/DESC/blob/master/LICENSE :alt: License

.. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.4876504.svg :target: https://doi.org/10.5281/zenodo.4876504 :alt: DOI

.. |Docs| image:: https://img.shields.io/readthedocs/desc-docs?logo=Read-the-Docs :target: https://desc-docs.readthedocs.io/en/latest/?badge=latest :alt: Documentation

.. |UnitTests| image:: https://github.com/PlasmaControl/DESC/actions/workflows/unit_tests.yml/badge.svg :target: https://github.com/PlasmaControl/DESC/actions/workflows/unit_tests.yml :alt: UnitTests

.. |RegressionTests| image:: https://github.com/PlasmaControl/DESC/actions/workflows/regression_tests.yml/badge.svg :target: https://github.com/PlasmaControl/DESC/actions/workflows/regression_tests.yml :alt: RegressionTests

.. |Codecov| image:: https://codecov.io/gh/PlasmaControl/DESC/branch/master/graph/badge.svg?token=5LDR4B1O7Z :target: https://codecov.io/github/PlasmaControl/DESC :alt: Coverage

.. |Issues| image:: https://img.shields.io/github/issues/PlasmaControl/DESC :target: https://github.com/PlasmaControl/DESC/issues :alt: GitHub issues

.. |Pypi| image:: https://img.shields.io/pypi/v/desc-opt :target: https://pypi.org/project/desc-opt/ :alt: Pypi