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.3.tar.gz (23.6 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.3-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.3-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.3-cp313-cp313-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

simsopt-1.10.3-cp313-cp313-macosx_10_13_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

simsopt-1.10.3-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.3-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.3-cp312-cp312-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

simsopt-1.10.3-cp312-cp312-macosx_10_13_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

simsopt-1.10.3-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.3-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.3-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

simsopt-1.10.3-cp311-cp311-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

simsopt-1.10.3-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.3-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.3-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

simsopt-1.10.3-cp310-cp310-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

simsopt-1.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

simsopt-1.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

simsopt-1.10.3-cp39-cp39-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

simsopt-1.10.3-cp39-cp39-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: simsopt-1.10.3.tar.gz
  • Upload date:
  • Size: 23.6 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.3.tar.gz
Algorithm Hash digest
SHA256 edf37d864bbd6ccf71260c94113ed2b2d7d4240a20baef4a678f4f222d3b0036
MD5 9a397cafb10723886e39ece6aeb78ee8
BLAKE2b-256 086c828d024936fb02944685fd8d12a9a264897c1c1af6123a1890669b452434

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 62c069a57b82032884b091bdd27f6a156309aacbe529c1978c9da20cb3f83bb5
MD5 43ab648614a80a90e9201e8a8b042d55
BLAKE2b-256 9f4e58ada0c6b3d2c38a7a43b8aec865a642ef611b03c38fdff09b27565dd955

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 de9d7cbe30f66eb13e5066c6078bb431ee7665d633b9a825305c531029282e26
MD5 1e7f16895f0049f05fc071106a0bac8e
BLAKE2b-256 97238987276cfe9f0a432516b65e9bdadb817f280074f99af54ee42171621703

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dee4f71942146ee52893fe7a784a6a94facd4604a82a363f7a78922d7a54006d
MD5 50632b55e08ad23e117c9a89be98da76
BLAKE2b-256 0072a8edcf0e7c2a1930cd8671d8f28a320e29c78e55b7bfb93c6ce662db1820

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 1910e8843472570b22ee696d0fe3f737993b3fc27b798fadf5b0cc98414061a0
MD5 c2afa49231a9a34869a5b23e134d3249
BLAKE2b-256 1b99c009c0bfb754ef9546895c744948c20966aacef04f3f8a78fdf8e7f5c53a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 97e7206194a240179865578e3800fe2c003558418d7966ece6de07c878afd115
MD5 9b3e504771a4c6253f142f4920e5825a
BLAKE2b-256 e3048da93014b5730ec71838dfc0b743af90abbe5d7f7cb018f9e06fcd401d38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3ea96f3a8e9a4a432aed87f0900c1d7ac7fbb23265949d2705e3486e0ca19c62
MD5 1fe56ab3fb9234fcc5e0c3fdd383de1a
BLAKE2b-256 5d7c2c9a2579c09e2e81239028f571d6f14754aadf6a65186bab3bb8c51bdb85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e250a7e31a8c5c268ceba4fbf08c2b25a7bae97f7a3d093f08922c3a637e24aa
MD5 72863b4152d9ac6ae5b5b5e90f2c2b43
BLAKE2b-256 9418c1a58aaa05576cc0f39b844f1900c91db96e1101ca7b869deffdcc5a1f78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 cfd36bcc61d4e5e7efe2ed6cee615e64f8f004edc4b28e9b84c1b56c34c480ab
MD5 6f82ed317802e7b5c19749ddfbb27f73
BLAKE2b-256 9447a4f7c7df2166e97db24f382be61e0ac902874b7d6d344875ea367c45f10a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8f699d19c616cca9575c95297530fb892f0dd86ab751f3e48f5a185768fd3fcb
MD5 2d268d72df314b47fcf261765f2d8f31
BLAKE2b-256 f1d0727264cf41a5f83044728ed01f3d7dd466a16c07a2a6d8d725541ba2b553

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 13a5a02cd0a774a70c3e71399800295cca681d0444e2b7dcecee22454551a1f2
MD5 f236b044b24e7c8fd036a840e004aa02
BLAKE2b-256 c9290f208cdd5fc95fdf4b6364d85581c17ffce88df90b7eaa684c423e9764e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0e7ead97c9eaadede52d10d85f5b094c32e5026b40d78a2685836c68d8436743
MD5 5e0cd11c92818467232a77351fe9f64d
BLAKE2b-256 fe661af92b97c02d307e60569b434f81575eda6ed06b69e07d869101f5f3714a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8e222656faf1b6691137e7e8d89b5939654db3a8534ddc82bf263091f45fd56f
MD5 b910b699c8372aa5cd55da1ffd68edaa
BLAKE2b-256 cdffb7c56a36dc8041e48f21207be3b8580a5b4a62982de4ba08da8fd6aef627

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c2c048b9cae16a60c66d740a81db0a5795ffa652900ef387be67c01c22f3753
MD5 f175f05fd059da968a2f45acb650ee01
BLAKE2b-256 6d00da90dfe289cdfb6e098dd818fdebc9273ab6247f2fed80073631abef6fcd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 619c278bf7b8f31119c586a5d2eeceb6a90b47bb552de3574644c0a624622f15
MD5 3d71675be1d63372029afcf8a62b90f1
BLAKE2b-256 b555dbbfc42b00588eb5fd864b0a4b8aac57d9a74fb444b9394ed025cf65c6c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f5972554a7ec8f29d2525a6b00ea88b05fbbea045730fcc688c28fac2c10d61
MD5 11231632b580e8898bf4bb174808336d
BLAKE2b-256 482e95fee2ab66259da3d2f9f2fd37582b84c83ed8a221a363a468c37bf73ec2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4ec76bf4582664ed8f9da05587237330b359109aa097d31ae4a9bcd01bb62bc3
MD5 4d584d777259d52b5cf66100667dc97b
BLAKE2b-256 83d906734c9929b816ee1f3b064b283945570cae54799d403d97303a24eed086

See more details on using hashes here.

File details

Details for the file simsopt-1.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 29ea85f0d8705c160185e60b921fc7903cad47bdda9c759c4956be2fe9723d1b
MD5 0fe527a3db08438afd8c2598817732e6
BLAKE2b-256 9fb7ec3bc2702a88b8c0aac383a2465ad539b6a518b5bc35147fa00ebaa3093a

See more details on using hashes here.

File details

Details for the file simsopt-1.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 24225d5ccc3489ec7e45a980dd6a271e8220680c01862c96b8aebdc7b2c873e1
MD5 56747ee71b013f29d40ac4fa935b4f48
BLAKE2b-256 7751bc29a86cfbb777e345b09065ca46ab31d31c6dd85d8e1e8e53bc3634e7bf

See more details on using hashes here.

File details

Details for the file simsopt-1.10.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 71b2c2a8511f71058d90b624484f611d64759bc950d00f4ec7543a2356c781ac
MD5 976ddf3c7870550bcbc96ee3d18458aa
BLAKE2b-256 2fb6a28c005a6d870ffaf3a0ed13e04e075cc66a620cbbba770ca1d89f411d1d

See more details on using hashes here.

File details

Details for the file simsopt-1.10.3-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.10.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ef7ecc15c0953a069ee5ed86adebff6e27ca22dba4ad7e320780845b50b64c7d
MD5 6f135a3bd6e3ccd4e122a40ea242560e
BLAKE2b-256 71bc3ba872dfaba7c34fa82b91dacb1c50c0563a3fe782869a0302653798b9fe

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