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.2.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.2-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.2-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.2-cp313-cp313-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.9+ x86-64

simsopt-1.10.2-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.2-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.2-cp39-cp39-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

simsopt-1.10.2-cp39-cp39-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: simsopt-1.10.2.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.2.tar.gz
Algorithm Hash digest
SHA256 c5a4f952f965ff272f3c6c5152deddc29da5a983134595d5121f9f3a52faf285
MD5 a416798732c25e9961687d9c9c08ce66
BLAKE2b-256 6d446f424b94b4c0725f034d3cc5051bfa1c62245e0e2770237e992f817eab7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 56f3d1867bbb376b2caeb0b34b8fe155a0417475e09103d0572555af714ca929
MD5 900e386b4c338106e5a3effb0ff0f5e3
BLAKE2b-256 e99bfec42380f6663842e7a0b53141186a69b2bd2d0d59f5fadb4bcda6750ea9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b1636f5a89fe0bfcb833def32261dc4e5eebba84d1e2061fd9784a0e430f2e00
MD5 5a34d4b205ebf62cdb5d9ae1bce92c54
BLAKE2b-256 f1582add2c22ace622f6b77a2f9c24b62196db9fa38999a59bc4492d7d130c9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dbad3a6be3dbaf35b57011210f27a117af52c4628e7659ad3735d0c11ed8a58c
MD5 23d0c2fe43ce4bf79419792c176a7e0a
BLAKE2b-256 456ec2df8fb1d3134895fa74e2990dec8b744150ce76bbd8c89a0f3dc958c435

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 955169f38384b3f0d98d157d7040f849bd638ac7016fde3b290aa62e9e84145c
MD5 8ba38a42c20ef0f2a70fb62c6db4ec83
BLAKE2b-256 23beb738249849e4866f79b91be60d040cc56c0c8e8d83af82f4ad4ea29732fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8ed58301770832dbb35d4217f99250d7deab68bc5de73c27cd32b823a41f1e2b
MD5 cbf76168b07915c06f8031b85dd6ff99
BLAKE2b-256 973d35e121689e1a83300793be731aa93bcdeb8a3e502570f572217d717a9ec9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 61e2beb67f93d054e0f6e119f53c23d5122a0d6e1b6a155d051642ab50a9b72d
MD5 2eceea2ca67a770961add00c9daecee7
BLAKE2b-256 cc76c2eff27bb75a488297924d7a5259d5c6a073ba3667ea761f94b4ca0bb3da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 65cbdc3b809af236aea792ad98353394decabb8d8a91df264be827fd82e8447f
MD5 4591b313ecd560e136943f8dfebe6be7
BLAKE2b-256 5f7d8528130d458c6d3e39f03a8246eb28a7cce14b077e44caa59c47a30a8ea1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c93a9c1aefb4822d913206b8ec249033b1941334324b886ef3f6543a6f6c6659
MD5 952b2df8495f7bb95c412297ca53719f
BLAKE2b-256 f6ae0c6e55df538290c99b1f0ca550f8f9c0473ca9cafbec9e30d65e11eb2483

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8e65111bf9f62215cbb437442fb680ee6be0154750062dc7da243168008424fe
MD5 c21d75495ef3da8531a9f850580fb389
BLAKE2b-256 9224b84690f9dc166fee11f8c69d55d5793be7f413b984ce6a606d0759cc0d20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ba3c135079c4c0bad8a385deb0aada24a46c8f4986ef3943cd9e5f3ea6551861
MD5 89092947c8ca513a32ff562c4cc1fed0
BLAKE2b-256 ac698455abe128bc1eb1d27d29f34f08472458701d98e53e36b94742bb638d81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 82fefcafac6dc9dc344c25e380b9e0f3161a786ec99c0df9ae0c463b3dbd555c
MD5 edb87e453701ddbcd08eb93830fca158
BLAKE2b-256 c7ac653f21a2641ef6527b9199b7c2f77948361bcdd56a5acb6419db491e407f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0237b3a7601daec543b13e3afe28281426146e6dd703fb128c4e0e229c775503
MD5 764377e49125807d1e8640c9893480c7
BLAKE2b-256 f72a528d84c3f4f1adc58f2864fc1a08fa7ea4ccd9004172c3f832e7ea911a66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 85527b2c825ff657046e043f854983014e8385a471d6e26e2fbf79f426bced25
MD5 42fd7fb21ea5ed9067d586b1feae8450
BLAKE2b-256 b4eb0ef23541df13d7df486db7c01c35ce69b196e436cc3ca929ddc51c789b3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bccb1b2bf280e00dbe95f3ecc8c74d7b664f1a4bb1afbe386e3fb0a68a31fe89
MD5 ac93e4ac5151419e044d699ce80cf9d1
BLAKE2b-256 38813b7ae4e95da5cb924b47077d53b7bb1541d08b65be1aa78e5b6c80b10009

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 913099098b93dee589f3c7dc9f744affee110a5316c72342eda0f6ed4c50bb61
MD5 11e9989a0731f0858458d0b63050a670
BLAKE2b-256 4b98c6b0de3e5eb59cae600139f3858053ddfb80e8a94bb8e27b04b164424420

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 593cec121f3d31ae57f7a38b9c1eab6864256216d6321954969a78ac854be6a4
MD5 6fb9243b0a07d5d74081589a7e09e7ae
BLAKE2b-256 0094c444ae00138d43efba5534225f4c79dde21c5a8f73c6e6cf7a58ad5f6822

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 274513ef4d3923f1376a6978da5173cc6d3e4f4f94435dceae1ab580f0c4f984
MD5 2a5d93c7514ee539bd3cfbab91132d49
BLAKE2b-256 1954b7e0c7e1859dcdc98b94197a0618f0b3fce402543ae78995b4b5570d489d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c59f00ab77cde2413cc648c771deb9758865c22a2ad6a89e3640007583d7bc8a
MD5 b6e2b5a744787acfc02f4cc527407fe2
BLAKE2b-256 479ff40cf8cfb2fde5926b44fe8bca03e68c8166fc794dccecb2dde784c3a660

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d0c9d90c43288df273e65efb3581964c28901955e101f7598f3231516ea9179d
MD5 441240b6b731fc0d8c4b6cea038266e6
BLAKE2b-256 dc9304c36c67bcf57cd3391a10e3e77f4fda74df0532476f479e2d438f1530e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 67cc056469ca2e3c36ccf5b114727c4b7767bb4862058231e7cf1194b269c5e3
MD5 3b46c613f267f9c73d877b06e1a354ca
BLAKE2b-256 eab801469beb56e4607cb7d9c9e8e04c08480afaa8b485ae3587bb86a8151ae5

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