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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

simsopt-1.10.4-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.4.tar.gz.

File metadata

  • Download URL: simsopt-1.10.4.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.4.tar.gz
Algorithm Hash digest
SHA256 1a1c667562e25c1f166ba3b15e04a8456abdfa2459b1c5b6cca0d3b08733996a
MD5 d6b204817498da8052e7d7fb53cda770
BLAKE2b-256 495bed279411ce5fbe2aa74b9d544b8b4a9f6455eb13792559796278bae7dae4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 47f624624e0cb221a17d0d4e7ca0bfa2ba9ab9dc566002cee530a747751b11ec
MD5 e9aaea73804162ce8a773b544e91ca56
BLAKE2b-256 4ee3286e6ad962a6d68925305d634eb7079b0d7f708b395433e6d8d9b329cf43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 08fbe58144abf46cea9b95f936c45f083cc869ae0e73f3fd2cc11c64241ee2d0
MD5 6b5ecb1935dffe6d28f5e4661bfae38e
BLAKE2b-256 a7c3905ba66c3420eea7ab740eb6a345f2e64d71c05d6f63fd50ab8440ef5113

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 60215871a8804bbb947b90d7be538f7718cb93def8d8fb73ea4210ae18770c90
MD5 3ba244209c9d4294665596d3954e34de
BLAKE2b-256 a391922d347bf2d90e6cf0cddeb5a11e86bc6f8a4ecb69c6f1c0a269708c7ed7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b21c1c9f814a2b7bdafa338a56312d4a7dad235a703c142704b7a3cde67a698a
MD5 c9b1a7a13de748da4260a4d966121c46
BLAKE2b-256 97ab8caa90c7bc7aa73b6a49186bf1f3673bae5dd4e3c8ad1f3e03186861769b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 33fc9dbbce40fdcd808df2be1763c4a164bd86967380d889a38b631d1fe7706a
MD5 946400532e1f35c083d9b1872ebc9b8b
BLAKE2b-256 289f2fc2f4078b8b19280c8b368620cf9a0a59bce16609a1ca68965977f60d26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ef77dd46afbb4823836d2465fd8dc8a531dcc707d1e5fbfd29602498f0eff6b4
MD5 9e2c0484be49537fb0070b14fb36c5ae
BLAKE2b-256 17c4bd8b19e2be7961b2ef340f997f06ba66d199a7ccd68ea2f33fe02fbfaae2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 17779a52bb70687804095a1a6ebe1ccab3baa59fbddce3631c0c1637d451e8e3
MD5 c53c0f407acb616ea1f76f69d8957939
BLAKE2b-256 1e7893e808268c3cbf16cb7ec6956363974082f211ce3a1e6ecf4b89779e7602

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 4be99edc3be916de03a8289dd3945d4825107b25a5cce52bb523beb760284ccf
MD5 3805111b7691aa5aed4ebcc5c5cd8a78
BLAKE2b-256 0acb28bb39a3d0c8cec49d0dc7c1084ec86de08d865bd2aa16c1ff0f23a7b558

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 392955728a9c7fe80f7be097cf820010af82bb93a0e6e666c52b9d6d7b59a722
MD5 36c65b208ca3ac3257ef4f05b8f8b0a1
BLAKE2b-256 b99a5d20ef19f3aa2251ba23b397e2498e40f27df3fd39af68e01a118bbe9b10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c447586d49bbb735487c967cacd81147afb014e9e8d681b0bca2f9e1ebaffd23
MD5 7fa9da3d3e7247d4473ea22599056437
BLAKE2b-256 f20e6f163e7fb7b68a78f1cb5c2e9348d2254f059fce72887159766c1a1a13e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8982605a772389100136cb361d89c8b3e540283d9931e749004fa2631ea943d6
MD5 c8154fd53871008a773e066b656eaba2
BLAKE2b-256 f67ca6b27d87f31dfdf085e9ed3f5ea283f10b4eb9ac0b0a28078144b4f0e80c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d3103ac6516a890181f264871ed93d88882176c83cbf96f6d76abb96ab33efe1
MD5 601167cb6895dc98fc913901ac8c079e
BLAKE2b-256 22a0979551ebc7cdc436e4fc7373013f15093866b24106303837fdffb7441b02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a29fe02e9b37fe465e06214ce29db6faa3e57f97a4bd3b5e2a996d3cd5ed7a6e
MD5 88bc0541cc94846366767fd88197fc0c
BLAKE2b-256 d77ba668801a07bd85090f956710c6ffe02f44a7b13913ace9ca24d4d1531eea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a0d011b08e8d4a66b9e658dbfd166a3ce6d1e7ef42441b66de9018243add53f8
MD5 f8269d765d9dd3ba472e95ba17a675db
BLAKE2b-256 99b8821723e8fa7ef195e89e6d9cb6547082c80b4936374eabdfad745b7db98d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 919461c9a7c83388a0f971d5640315cbb16c0e6cad030ca0817cc6d6ffbdccf1
MD5 7146ccf9d066fe23a0e25d5d952c0b05
BLAKE2b-256 3a317f2b2ff078dd1bc0223c9884f31f51c22b9b33c028c971e4d90259eb191d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.10.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f30d20cae0d5a64ff3e77409ba3bb01838250be4258a9b4c283b9cdb28e322d7
MD5 aeac972f503a022836653947eeee6f8d
BLAKE2b-256 8a15762b85b009c692edf19d54012b0e9b9466822cce8d9e9aae0abb722396f8

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