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

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-1.10.6.tar.gz (23.7 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

simsopt-1.10.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

simsopt-1.10.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

simsopt-1.10.6-cp313-cp313-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

simsopt-1.10.6-cp313-cp313-macosx_10_13_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

simsopt-1.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

simsopt-1.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

simsopt-1.10.6-cp312-cp312-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

simsopt-1.10.6-cp312-cp312-macosx_10_13_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

simsopt-1.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

simsopt-1.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

simsopt-1.10.6-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

simsopt-1.10.6-cp311-cp311-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

simsopt-1.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

simsopt-1.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

simsopt-1.10.6-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

simsopt-1.10.6-cp310-cp310-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: simsopt-1.10.6.tar.gz
  • Upload date:
  • Size: 23.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for simsopt-1.10.6.tar.gz
Algorithm Hash digest
SHA256 3d7f8ec9eabefba71def21bf5a29c328dda1902b3773131e959d6bd531289199
MD5 45cd95ca3af8dac4f8ae9dc4ab7d6ae6
BLAKE2b-256 769cf7b1bd3a75052f9432f1a0191c7e4198ac16eabf3db818ef124ba23144fa

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6a8536bd3ad09ad82bbe7d1c25c2d9c353a1d5b8d73f2501e9045244ad3da6b2
MD5 90486476602b5f7b1be1d8386ca69785
BLAKE2b-256 91c7d018c3d35f6d686f76b95c33ac18c04404e836817255faf5c3f961a57ddc

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1f9b7775c2fb188eadef8d764881445cb79468bcf5827d917e886ee533d0f076
MD5 4724db4ce4e803809096c28567ae80f5
BLAKE2b-256 9781d294c73ba9ac692e062b2724ba1366c272f927b054c7d18cdd1da4091d00

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 855273ce3f3b7be10f87059afa7273c075db18495268cba5d2b577365de4ffd1
MD5 adcbba7d89e9ece0ce08cbc333b6ff10
BLAKE2b-256 efd4a60f440c6b53533f2877d46d466872eaebd54bd47436a7d191b3e803b99e

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 9d75cbbaec561e54a489bc77d7505d80e4c90b892e34ae912a679a4b7866aa36
MD5 07bac9292f863fac7dca74683b69cdb5
BLAKE2b-256 87959a5f9cad41518ffb8bf49049573cd1b6ae1fd43719c98fd07f5f4e9f5924

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c3f787a90d727517dded47316db753ccf6c0d622ca66808be6c04a798f7b12e2
MD5 fdfe137b23077beec8abc44a506f8113
BLAKE2b-256 323993a2bee288578a3526fc59fb7f20212d07fe8d01e0d53bf86f5d59116827

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3754d83dd3b9e9322129606f7187a61d97b4125b3dd2b6aa4282059b013711aa
MD5 05f9d07f7890b31bf9b5f8d2cebe55d5
BLAKE2b-256 3a012973b771f66b382d27d0288f0614d06b5ab88e65e01963c2a9cf0366e5c0

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2bb53e28b3e8beadd5f63fe7aa8e26feccc8943e22400f3b3af2484e093d6ee8
MD5 2155427934910f44a594f968f519ffd7
BLAKE2b-256 a30e86be3166cbaa3427051e2b865ad95a8e8667ed59eb9d752df76cf7f75837

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 7b3562291b38ab4e873a4475e2bdeb4dc32583e89efd64a0ae78ee9729a24c92
MD5 ba73168601acec3f6c100bf0bf30352c
BLAKE2b-256 3bdc321faef2b4785d837bf084dcdc31c76803a8d486c844ae950657bbc99117

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 db5b8494c305c9d36858eca3f91af38ccd2264ba7e8defef708ef85ffd8325b6
MD5 ceebc630a79560dae5da99a505528f0c
BLAKE2b-256 3127debd5d81c8a98d99abdf5dc19ebc2022203ebe85882406508fd765181f0f

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 05459e649bed0197bce08f93782f2c393564d0d20cafa7424cca6b6fefdcdb9e
MD5 496cccb826e727ccf43c3a8bb187e118
BLAKE2b-256 c8e979661b859cf80a0cb2dd60802cab8c5e0376a5672c8d0862f94a2275c175

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2c269578bb3cd88444ad7a8b88688aa3631a32793013f41eb23073421a929778
MD5 a7755d76c2dc1bda58d195a245dc0055
BLAKE2b-256 317163a14ffe6505a9b2c64016361833d911ad52408172d45c3936f0cedf833c

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ae89f9779f5fbe7fc822453e7732bac679eb00d386444b674dd561b1380b49d0
MD5 f1eac2ee88bfd13e17fb2785b3b3a80d
BLAKE2b-256 4d05103f007d206725611f5b57e712d75e5d7b1ae70a28b91b1519e5c96d7688

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ccbc1d767bd3e80956d3df7d3f89b90f8d4690d9570200d6233ba0533ad368a
MD5 7ab3b5e7d2feb55261ea78d22e179ab6
BLAKE2b-256 5e137931e8e5bbb6aa685cfd8eff3106f5790734ecf26674570b6aab419018b9

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7dc1a7cc20f256ee6af719cfbf0e9a1213da3ada0da507157e50a9f0381caa32
MD5 1e10509aac5b206e42f2513b38da5fb4
BLAKE2b-256 0c2abe5be6a14373f5b4c70de20514466d4d4c15509c64184628043c0fb49b46

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9618200f39989c4ee41098f3f57df8fe0dbaa9925a271a2907edc5596d3ce72c
MD5 070a38b77584c5707b1c2e4ba26219f7
BLAKE2b-256 a5a0b3685b8b7bee3b458b61fb6af80087525b2cdd02fc52b9d23b042fea04c2

See more details on using hashes here.

File details

Details for the file simsopt-1.10.6-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a0417e9e75d8195ea931cee670230d65c02ecd523e9f4744c1dcbc28593ca527
MD5 cc300c2cc4ac3a87b679b8d9394026ea
BLAKE2b-256 a5af88a79a93e1be094fa59a940225fc2d5b67ac2207ec13d93e54b5b7c450e6

See more details on using hashes here.

Supported by

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