Skip to main content

Framework for optimizing stellarators

Project description

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.
  • An efficient implementation of the Biot-Savart law, including derivatives.
  • Tools for parallelized finite-difference gradient calculations.

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

  • VMEC, for MHD equilibrium.
  • SPEC, for MHD equilibrium. (This repository is private.)
  • booz_xform, for Boozer coordinates and quasisymmetry.

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 make suggestions, contribute, and use. Several methods are available for installing simsopt. One recommended approach is to use pip

pip install simsopt

For more installation options and other information, see the main simsopt documentation here.

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simsopt-0.3.3.tar.gz (5.1 MB view details)

Uploaded Source

Built Distributions

simsopt-0.3.3-cp39-cp39-manylinux2010_x86_64.whl (436.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

simsopt-0.3.3-cp39-cp39-macosx_10_15_x86_64.whl (408.7 kB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

simsopt-0.3.3-cp38-cp38-manylinux2010_x86_64.whl (436.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

simsopt-0.3.3-cp38-cp38-macosx_10_15_x86_64.whl (408.7 kB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

simsopt-0.3.3-cp37-cp37m-manylinux2010_x86_64.whl (441.1 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

simsopt-0.3.3-cp37-cp37m-macosx_10_15_x86_64.whl (405.1 kB view details)

Uploaded CPython 3.7mmacOS 10.15+ x86-64

File details

Details for the file simsopt-0.3.3.tar.gz.

File metadata

  • Download URL: simsopt-0.3.3.tar.gz
  • Upload date:
  • Size: 5.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for simsopt-0.3.3.tar.gz
Algorithm Hash digest
SHA256 781cc103d70d441f84650e00bd458650e3c0c12c7f31f724842a9c94c12bab57
MD5 5d720e781c022300c3492a77978f4dc2
BLAKE2b-256 1969540d60cf4212c3f186000001c27757af9408caafcc6147fe2353bd5df311

See more details on using hashes here.

File details

Details for the file simsopt-0.3.3-cp39-cp39-manylinux2010_x86_64.whl.

File metadata

  • Download URL: simsopt-0.3.3-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 436.7 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for simsopt-0.3.3-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 69014be7732c984fd16bcfb66f17169f2805dfa941f203163d44859d94505b92
MD5 d73604f7cc8c9bf6ab6cefd2b4ff3295
BLAKE2b-256 7c7187f4452539562b6ee0a20d5e49a9353c88cb67887875724129fe4da377e3

See more details on using hashes here.

File details

Details for the file simsopt-0.3.3-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: simsopt-0.3.3-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 408.7 kB
  • Tags: CPython 3.9, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for simsopt-0.3.3-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 082b11357a95cb384cf42da82d4f0ec9e24d8ec5cf7a26f4bfc9fbeab4db0885
MD5 a53f64968bb03397cd32cc3acaf8d3a4
BLAKE2b-256 72c3a43461a1ef01ebbc27a6204d0c616210eee5a19bbcf8e9ba37a52c8a7a86

See more details on using hashes here.

File details

Details for the file simsopt-0.3.3-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: simsopt-0.3.3-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 436.9 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for simsopt-0.3.3-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 2c8300cc13d111187c8955a8496498c3388e9b99880793d3289f90704a8d3a46
MD5 8069a5f25142dd1788996fbf76000d2c
BLAKE2b-256 3ca721377f2f236fbecb22729cab86aab748adeaa833453da94f48ad0c407340

See more details on using hashes here.

File details

Details for the file simsopt-0.3.3-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: simsopt-0.3.3-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 408.7 kB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for simsopt-0.3.3-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 600a6c4c63deca99126f431a1a9511f6aa1ca2884f2617b5257659da20d759ba
MD5 0d217bdc352925333e57459c67eb81b7
BLAKE2b-256 1cd2af92fb04940d59878667b7ab47e8d662f1a506088d25438bd36511eab9df

See more details on using hashes here.

File details

Details for the file simsopt-0.3.3-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: simsopt-0.3.3-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 441.1 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for simsopt-0.3.3-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 6670c117c73b58dd8fa3449927382c6aa7311aa506242adf310bc194e87298d1
MD5 98c2a6f8488340ceb9b701afd162b223
BLAKE2b-256 281c0c727d202c0ac3bfdd4eca679fb5d28bbc8528599e73569336fadb902e8a

See more details on using hashes here.

File details

Details for the file simsopt-0.3.3-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: simsopt-0.3.3-cp37-cp37m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 405.1 kB
  • Tags: CPython 3.7m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for simsopt-0.3.3-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a83762203b080962d38a6197165c718c56325bb418ede34fc3daa810a3495176
MD5 4296fbb2b5571388e191c69e5dbd2b5b
BLAKE2b-256 b2e38164b87c8b3b4e718924b6fa069794226ddb0387b72e0d3e1efa5ef59efb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page