desc-opt

Stellarator Equilibrium and Optimization Suite

https://github.com/plasmacontrol/desc

Science Score: 59.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 11 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    15 of 31 committers (48.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary

Keywords

fusion nuclear-fusion optimization plasma plasma-physics stellarator stellarators

Keywords from Contributors

interactive mesh interpretability profiles distribution sequences generic projection standardization optim
Last synced: 6 months ago · JSON representation

Repository

Stellarator Equilibrium and Optimization Suite

Basic Info
Statistics
  • Stars: 135
  • Watchers: 7
  • Forks: 37
  • Open Issues: 257
  • Releases: 43
Topics
fusion nuclear-fusion optimization plasma plasma-physics stellarator stellarators
Created over 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.rst

.. 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!

- Dudt, D. & Kolemen, E. (2020). DESC: A Stellarator Equilibrium Solver.
  [`Physics of Plasmas `__]
  [`pdf `__]
- Panici, D. et al (2023). The DESC Stellarator Code Suite Part I: Quick and accurate equilibria computations.
  [`Journal of Plasma Physics `__]
  [`pdf `__]
- Conlin, R. et al. (2023). The DESC Stellarator Code Suite Part II: Perturbation and continuation methods.
  [`Journal of Plasma Physics `__]
  [`pdf `__]
- Dudt, D. et al. (2023). The DESC Stellarator Code Suite Part III: Quasi-symmetry optimization.
  [`Journal of Plasma Physics `__]
  [`pdf `__]

.. _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:

- `Basic fixed boundary equilibrium`_: running from a VMEC input, creating an equilibrium from scratch
- `Advanced equilibrium`_: continuation and perturbation methods.
- `Free boundary equilibrium`_: vacuum and or finite beta with external field.
- `Using DESC outputs`_: analysis, plotting, saving to VMEC format.
- `Basic optimization`_: specifying objectives, fixing degrees of freedom.
- `Advanced optimization`_: advanced constraints, precise quasi-symmetry, constrained optimization.
- `Near axis constraints`_: loading solutions from QSC/QIC and fixing near axis expansion.
- `Coil optimization`_: "second stage" optimization of magnetic coils.

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 `` 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_ contains the source code including the main script and supplemental files. Refer to the API_ documentation for details on all of the available functions and classes.
- docs_ contains the documentation files.
- tests_ contains routines for automatic testing.
- publications_ contains PDFs of publications by the DESC group, as well as scripts and data to reproduce the results of these papers.

.. _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
==========

- `Contributing guidelines `_
- `Issue Tracker `_
- `Source Code `_
- `Documentation `_

.. |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

Owner

  • Name: PlasmaControl
  • Login: PlasmaControl
  • Kind: organization

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 8,789
  • Total Committers: 31
  • Avg Commits per committer: 283.516
  • Development Distribution Score (DDS): 0.68
Past Year
  • Commits: 2,813
  • Committers: 16
  • Avg Commits per committer: 175.813
  • Development Distribution Score (DDS): 0.723
Top Committers
Name Email Commits
Rory Conlin r****n@g****m 2,814
Dario Panici d****i@p****u 2,070
unalmis k****s@p****e 1,147
Daniel Dudt d****t@p****v 919
daniel-dudt d****t@p****y 676
YigitElma y****u@g****m 557
Rahul r****r@t****u 202
Kian Orr o****1@g****m 162
Matt Landreman m****d@u****u 60
evanyerger e****r@p****u 37
dependabot[bot] 4****] 36
Rahul Gaur r****6@d****u 22
Philipp Jurasic p****c@i****e 18
Timothy LeViness t****y@l****l 17
Patrick S. Kim p****4@s****u 16
Rahul Gaur r****6@d****u 6
kayau k****s@p****m 6
brokenhammer 4****3@q****m 5
Felicia Yi f****i@d****u 4
Greta Hibbard g****3@d****u 3
pkim1818 p****6@t****u 2
Sina Atalay d****v@a****z 1
SebereX e****u@L****n 1
Patrick S. Kim p****4@t****u 1
Matt Landreman m****n@v****u 1
Matt Landreman m****n@T****l 1
Daniel William Dudt d****t@s****v 1
Daniel William Dudt d****t@s****v 1
Daniel W. Dudt d****t@t****u 1
Tony Qian t****n@p****u 1
and 1 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 635
  • Total pull requests: 1,287
  • Average time to close issues: 2 months
  • Average time to close pull requests: 23 days
  • Total issue authors: 44
  • Total pull request authors: 31
  • Average comments per issue: 1.3
  • Average comments per pull request: 4.09
  • Merged pull requests: 971
  • Bot issues: 1
  • Bot pull requests: 132
Past Year
  • Issues: 275
  • Pull requests: 632
  • Average time to close issues: 16 days
  • Average time to close pull requests: 9 days
  • Issue authors: 33
  • Pull request authors: 24
  • Average comments per issue: 1.48
  • Average comments per pull request: 3.09
  • Merged pull requests: 436
  • Bot issues: 1
  • Bot pull requests: 130
Top Authors
Issue Authors
  • dpanici (246)
  • f0uriest (126)
  • unalmis (85)
  • ddudt (45)
  • rahulgaur104 (26)
  • mohawk811 (20)
  • YigitElma (20)
  • ryanwu4 (5)
  • Mandelbr0t (5)
  • acerfon (4)
  • Taegeun-Jeong (3)
  • Alan-Goodman (3)
  • homamBetarRen (3)
  • handi-h (3)
  • kianorr (3)
Pull Request Authors
  • dpanici (372)
  • f0uriest (248)
  • unalmis (153)
  • dependabot[bot] (132)
  • YigitElma (118)
  • ddudt (117)
  • rahulgaur104 (50)
  • kianorr (27)
  • ryanwu4 (10)
  • joaopedrobiu6 (6)
  • gretahibbard (5)
  • daniel-dudt (5)
  • pkim1818 (4)
  • missing-user (4)
  • sinaatalay (4)
Top Labels
Issue Labels
P3 (81) enhancement (59) documentation (46) P2 (45) P1 (32) bug (26) coil (24) good first issue (23) easy (22) objectives (21) theory (19) EZ-fix (19) interface (19) optimization (18) funtionality (18) Hackathon (17) speed (14) Low priority (14) question (14) plotting (13) hackathon (11) performance (9) AD (9) testing (8) dependencies (4) help wanted (4) low priority (3) robustness (3) gpu (3) empirical (3)
Pull Request Labels
skip_changelog (224) easy (181) dependencies (136) run_benchmarks (99) EZ-review (69) python (43) documentation (37) Bug fix (36) coil (34) performance (32) bug fix (23) objectives (17) P3 (16) only-docs-comments (14) squash (13) Hackathon (11) override codecov (10) funtionality (10) github_actions (8) enhancement (8) theory (8) waiting for other PRs (7) interface (7) EZ-fix (7) plotting (6) test_mpl (6) functionality (6) test_jax (6) stable (4) Urgent (4)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 3,430 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 1
  • Total versions: 49
  • Total maintainers: 2
pypi.org: desc-opt

Computes, analyzes and optimizes 3D MHD equilibria for stellarators and tokamaks

  • Versions: 49
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 3,430 Last month
Rankings
Stargazers count: 9.2%
Dependent packages count: 10.1%
Forks count: 10.5%
Downloads: 12.0%
Average: 12.7%
Dependent repos count: 21.6%
Maintainers (2)
Last synced: 6 months ago

Dependencies

.github/workflows/benchmark.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • machine-learning-apps/pr-comment master composite
.github/workflows/black.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • reviewdog/action-suggester v1 composite
.github/workflows/jax_tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/linting.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • reviewdog/action-flake8 v3 composite
.github/workflows/mpl_tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/nbtests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/regression_test.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • codecov/codecov-action v3 composite
.github/workflows/release.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish 27b31702a0e7fc50959f5ad993c78deac1bdfc29 composite
.github/workflows/unittest.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • codecov/codecov-action v3 composite
devtools/dev-requirements.txt pypi
  • black ==22.10.0 development
  • build * development
  • codecov * development
  • flake8 >=5.0.0,<=6.0.0 development
  • flake8-docstrings >=1.0.0,<=2.0.0 development
  • flake8-eradicate >=1.0.0,<=2.0.0 development
  • flake8-isort >=5.0.0,<=6.0.0 development
  • markupsafe ==2.0.1 development
  • nbmake * development
  • nbsphinx >0.8.5 development
  • pytest >=5.0.0 development
  • pytest-benchmark * development
  • pytest-cov >=2.6.0 development
  • pytest-monitor * development
  • pytest-mpl ==0.16.1 development
  • pytest-split * development
  • qsc * development
  • shapely >=1.8.2 development
  • sphinx >3.0.0 development
  • sphinx-argparse * development
  • sphinx-rtd-theme >=1.0,<2.0 development
  • sphinx_copybutton * development