SIMSOPT

SIMSOPT: A flexible framework for stellarator optimization - Published in JOSS (2021)

https://github.com/hiddensymmetries/simsopt

Science Score: 98.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 3 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    19 of 61 committers (31.1%) from academic institutions
  • Institutional organization owner
    Organization hiddensymmetries has institutional domain (hiddensymmetries.princeton.edu)
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

fusion nuclear-fusion optimization plasma plasma-physics stellarator stellarators

Keywords from Contributors

dynamical-systems model-discovery nonlinear-dynamics sparse-regression system-identification numerical-methods mesh
Last synced: 4 months ago · JSON representation

Repository

Simons Stellarator Optimizer Code

Basic Info
Statistics
  • Stars: 117
  • Watchers: 6
  • Forks: 66
  • Open Issues: 52
  • Releases: 62
Topics
fusion nuclear-fusion optimization plasma plasma-physics stellarator stellarators
Created almost 6 years ago · Last pushed 4 months ago
Metadata Files
Readme License

README.md

simsopt

GitHub codecov DOI

SIMSOPT SIMSOPT

simsopt is a framework for optimizing stellarators. The high-level routines of simsopt are in python, with calls to C++ or fortran where needed for performance. Several types of components are included:

  • Interfaces to physics codes, e.g. for MHD equilibrium.
  • Tools for defining objective functions and parameter spaces for optimization.
  • Geometric objects that are important for stellarators - surfaces and curves - with several available parameterizations.
  • Efficient implementations of the Biot-Savart law and other magnetic field representations, including derivatives.
  • Tools for parallelized finite-difference gradient calculations.

The design of simsopt 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 optimization problem do not need to be installed. For instance, to optimize SPEC equilibria, the VMEC module need not be installed.
  • Flexibility: The components used to define an objective function can be re-used for applications other than standard optimization. For instance, a simsopt objective function is a standard python function that can be plotted, passed to optimization packages outside of simsopt, etc.

simsopt is fully open-source, and anyone is welcome to use it, make suggestions, and contribute.

Several methods are available for installing simsopt. One recommended approach is to use pip:

pip install simsopt

For detailed installation instructions on some specific systems, see the wiki. Also, a Docker container is available with simsopt and its components pre-installed, which can be started using

docker run -it --rm hiddensymmetries/simsopt

More installation options, instructions for the Docker container, and other information can be found in the main simsopt documentation here.

Some of the physics modules with compiled code reside in separate repositories. These separate modules include

  • VMEC, for MHD equilibrium.
  • SPEC, for MHD equilibrium.
  • booz_xform, for Boozer coordinates.

If you use simsopt in your research, kindly cite the code using this reference:

[1] M Landreman, B Medasani, F Wechsung, A Giuliani, R Jorge, and C Zhu, "SIMSOPT: A flexible framework for stellarator optimization", J. Open Source Software 6, 3525 (2021).

See also the simsopt publications page.

We gratefully acknowledge funding from the Simons Foundation's Hidden symmetries and fusion energy project.

Owner

  • Name: The Hidden Symmetries and Fusion Energy Collaboration
  • Login: hiddenSymmetries
  • Kind: organization

JOSS Publication

SIMSOPT: A flexible framework for stellarator optimization
Published
September 10, 2021
Volume 6, Issue 65, Page 3525
Authors
Matt Landreman ORCID
Institute for Research in Electronics and Applied Physics, University of Maryland, College Park
Bharat Medasani ORCID
Princeton Plasma Physics Laboratory
Florian Wechsung ORCID
Courant Institute of Mathematical Sciences, New York University
Andrew Giuliani ORCID
Courant Institute of Mathematical Sciences, New York University
Rogerio Jorge ORCID
Institute for Research in Electronics and Applied Physics, University of Maryland, College Park
Caoxiang Zhu ORCID
Princeton Plasma Physics Laboratory
Editor
Dan Foreman-Mackey ORCID
Tags
Python plasma plasma physics magnetohydrodynamics optimization stellarator fusion energy

GitHub Events

Total
  • Create event: 74
  • Release event: 10
  • Issues event: 24
  • Watch event: 24
  • Delete event: 19
  • Issue comment event: 235
  • Push event: 502
  • Gollum event: 17
  • Pull request review comment event: 442
  • Pull request review event: 449
  • Pull request event: 114
  • Fork event: 19
Last Year
  • Create event: 74
  • Release event: 10
  • Issues event: 24
  • Watch event: 25
  • Delete event: 19
  • Issue comment event: 235
  • Push event: 502
  • Gollum event: 17
  • Pull request review comment event: 442
  • Pull request review event: 449
  • Pull request event: 114
  • Fork event: 19

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 4,038
  • Total Committers: 61
  • Avg Commits per committer: 66.197
  • Development Distribution Score (DDS): 0.666
Past Year
  • Commits: 293
  • Committers: 23
  • Avg Commits per committer: 12.739
  • Development Distribution Score (DDS): 0.84
Top Committers
Name Email Commits
Bharat Medasani m****r@g****m 1,349
Matt Landreman m****d@u****u 589
Florian Wechsung f****g@g****m 582
Andrew Giuliani g****i@c****u 248
Elizabeth e****l@u****u 229
Alan Kaptanoglu a****o@u****u 175
Rogerio Jorge r****e@i****t 152
Andrew Giuliani a****i@f****g 131
Kenneth Hammond k****d@p****v 100
Chris c****t@e****h 80
Antoine Baillod a****d@e****h 71
Stefan Buller s****r@u****u 32
Siena Hurwitz s****z@u****u 26
Paul Huslage p****e@g****m 26
Misha Padidar m****4@c****u 25
MigMadeira m****a@t****t 25
tmqian t****n@p****v 22
Alex Wiedman a****x@w****g 21
Caoxiang Zhu c****u@p****v 17
Caoxiang Zhu z****g@g****m 14
mishapadidar m****4@g****m 14
Jake Halpern j****n@p****u 11
Miguel Pereira m****3@g****m 9
Alan Kaptanoglu a****u@A****l 9
Aaron Bader a****r@t****m 7
Matt Landreman m****n@t****m 7
Jason Smoniewski s****i@g****m 6
Alan Kaptanoglu a****u@A****l 6
Philipp Jurasic p****c@t****e 5
mattland m****d@p****n 4
and 31 more...

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 71
  • Total pull requests: 354
  • Average time to close issues: 4 months
  • Average time to close pull requests: 28 days
  • Total issue authors: 33
  • Total pull request authors: 36
  • Average comments per issue: 1.99
  • Average comments per pull request: 2.38
  • Merged pull requests: 255
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 18
  • Pull requests: 143
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 8 days
  • Issue authors: 12
  • Pull request authors: 20
  • Average comments per issue: 0.33
  • Average comments per pull request: 1.94
  • Merged pull requests: 76
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • smiet (12)
  • mbkumar (10)
  • landreman (8)
  • abaillod (4)
  • eguiraud-pf (2)
  • RalfMackenbach (2)
  • andrewgiuliani (2)
  • zhucaoxiang (2)
  • daringli (2)
  • akaptano (2)
  • Siwanta (2)
  • florianwechsung (2)
  • DMCXE (1)
  • mrtnkb (1)
  • duhongfei86 (1)
Pull Request Authors
  • mbkumar (68)
  • landreman (59)
  • smiet (29)
  • andrewgiuliani (26)
  • daringli (23)
  • rogeriojorge (19)
  • akaptano (18)
  • florianwechsung (17)
  • mishapadidar (15)
  • missing-user (15)
  • ejpaul (6)
  • kchammond (6)
  • smhurwitz (5)
  • jhalpern30 (4)
  • abaillod (4)
Top Labels
Issue Labels
enhancement (6) help wanted (3) bug (3) question (2) good first issue (1)
Pull Request Labels
enhancement (7) dependencies (2)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 5,772 last-month
  • Total docker downloads: 10
  • Total dependent packages: 1
  • Total dependent repositories: 1
  • Total versions: 59
  • Total maintainers: 2
pypi.org: simsopt

Framework for optimizing stellarators

  • Versions: 59
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 5,772 Last month
  • Docker Downloads: 10
Rankings
Docker downloads count: 3.8%
Forks count: 6.8%
Dependent packages count: 7.4%
Downloads: 7.9%
Stargazers count: 8.6%
Average: 9.5%
Dependent repos count: 22.2%
Maintainers (2)
Last synced: 4 months ago

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • codecov/codecov-action v3 composite
.github/workflows/conda.yml actions
  • actions/checkout v3 composite
  • conda-incubator/setup-miniconda v2 composite
.github/workflows/docker.yml actions
  • actions/checkout v3 composite
  • docker/build-push-action v3 composite
  • docker/login-action v2 composite
  • docker/setup-buildx-action v2 composite
.github/workflows/extensive_ci.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • codecov/codecov-action v3 composite
.github/workflows/linting.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/singularity.yml actions
  • actions/checkout v3 composite
  • eWaterCycle/setup-singularity v7 composite
.github/workflows/wheel.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • pypa/cibuildwheel v2.11.4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
docs/requirements.txt pypi
  • sphinx *
  • sphinx-autodoc-napoleon-typehints *
  • sphinx-rtd-theme >=1.0,<2.0
  • sphinxcontrib-napoleon *
requirements.txt pypi
  • Deprecated >=1.2.10
  • f90nml *
  • jax >=0.2.5
  • jaxlib >=0.1.56
  • monty >=2021.6.10
  • nptyping >=1.3.0
  • numpy >=1.19.4
  • pyevtk *
  • randomgen *
  • ruamel.yaml *
  • scipy >=1.5.4
  • setuptools_scm >=6.0
  • sympy *
.github/workflows/docs_test.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/non_simd_tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
pyproject.toml pypi
setup.py pypi