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

Uploaded Source

Built Distributions

simsopt-1.6.4-cp311-cp311-musllinux_1_1_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

simsopt-1.6.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

simsopt-1.6.4-cp311-cp311-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 macOS 10.9+ x86-64

simsopt-1.6.4-cp310-cp310-musllinux_1_1_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

simsopt-1.6.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

simsopt-1.6.4-cp310-cp310-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 macOS 10.9+ x86-64

simsopt-1.6.4-cp39-cp39-musllinux_1_1_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

simsopt-1.6.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

simsopt-1.6.4-cp39-cp39-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 macOS 10.9+ x86-64

simsopt-1.6.4-cp38-cp38-musllinux_1_1_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

simsopt-1.6.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

simsopt-1.6.4-cp38-cp38-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

simsopt-1.6.4-cp38-cp38-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: simsopt-1.6.4.tar.gz
  • Upload date:
  • Size: 25.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for simsopt-1.6.4.tar.gz
Algorithm Hash digest
SHA256 f782240b0b82023172d9c951047e6c72a0ea248e1eb58d8bfd11061a714252b8
MD5 5fa82e15d0349e837c0f7629e254723d
BLAKE2b-256 b358199d52fa911c54e547d46ada8c09ad9ea3dd1eb891d24b25eadd0f56ede7

See more details on using hashes here.

File details

Details for the file simsopt-1.6.4-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.6.4-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 170b444ae00aaa075fe209b5c2e82db272432f672cf6e001d391327263ba4d77
MD5 a04010209d9965f19c093aa0e80f7ad2
BLAKE2b-256 aea718f44616279934bc8b876bf56fb2f20407757e0766678e5603b6b96bc7cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.6.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a2698424879852c502d976855c3c84842ae7390a519bc6d2175d7612396519b8
MD5 a167c4385b15b8de75a2fb5d672f74e7
BLAKE2b-256 6572565e81281a11c2456c34c4ab0999dc30f1cb5f1a43c6611d7a0b144b95e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.6.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9802cfd5ba67dc09bab8b1332170c26c0ada8c6036e1440f10bdc98406a93501
MD5 0d75e7bd888cb85ffbcb1b797e61718e
BLAKE2b-256 0e8ea0c74c1bd9627524c77c58d513fb98d1dc944808a88b7cd8f6b77f12ae7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.6.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 04e2a69f60a6a2dc2b1000066cad3eff77bc625a869b755a9c9e78fd069c952f
MD5 ce317ed19275ced6fa76cab15eb3d7aa
BLAKE2b-256 8e9db060accf6d3d5e7c39ff659db6811485bde9cae631b7a92d52c74d8ffa4c

See more details on using hashes here.

File details

Details for the file simsopt-1.6.4-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.6.4-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8a6db7d7cefe1b4ad63afa065cf3f5e50e75a38c8978244c7daa7aac7dcb6c93
MD5 8790d03e3707aa25c34e4710d11d8dfd
BLAKE2b-256 dd7bd6d1e08c8745695fba9f3c3a5de279f9ad7665d0d6b010683ad9f79d73cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.6.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fdb8de99451be70e6f015ddb98f4f4bdfb869a9339c689bbe7d296f2809183a6
MD5 4271b7de744346850276fc0fb4157627
BLAKE2b-256 16fd3bea5ebeaab762899b6b2582ac4a5da1bd400df95911739b7caff837c53e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.6.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b796ef1026da57d62bf81c91cf8647736770b76c4801c7c227fe66c209ed16dc
MD5 29bc6473796e593669cddd0d5c35f8a6
BLAKE2b-256 66971d06a378780f02c9d9660bc4a04369e81723f7b121e11e76c04410407c3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.6.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5e3712a8ce2e4d8082e866cd19ca35601fa706f601f1d29be78fb69ca28e91df
MD5 21766dd9af9fc6988ea56621b15dc29f
BLAKE2b-256 76dc1ba59d0d952e08037ca1279c77c41648ef0035a8b2658aebf9f1136a6c7c

See more details on using hashes here.

File details

Details for the file simsopt-1.6.4-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.6.4-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a42cd00276b4fe72d9d6cf0b681267622810aa208ef8732953ae04cb922f086a
MD5 4c317afa8808800ca018380542faddad
BLAKE2b-256 9f07bd18f475b033a98f0e33b46014b4e3299ad98026eb890d7482c346d89c02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.6.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 deef5cb8c56f70aa42a2e7ee7da11a8d57c29d1264d068833a0c1753bd3672d8
MD5 a6d9f3dfb938fae0b52ead52e04f58bc
BLAKE2b-256 f97c973e59ce893dd63b55361410dc46b8256762c9635111ba68bbdd358c0fd8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.6.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e52eaba095fd5f0285a9d8f76edf7f451d380f6aa8df91680297c438b4b7d41c
MD5 d6069828e808ce86ab41796d642a9a79
BLAKE2b-256 8a38179700df1a0c723dbccd2ee2d1f3522c09165fcf43055cb3b84ae7af7c4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for simsopt-1.6.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e0795e496c01be0700c8daa88ea20da6e6f0cac743dce08319aaafc8b6b14699
MD5 fb460301c3320d4bd9cfc9116756a2cd
BLAKE2b-256 f68b8ce3b08e9d2f18e4b1b6a37e07a293096e47f4a7c75311258ed680d311eb

See more details on using hashes here.

File details

Details for the file simsopt-1.6.4-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.6.4-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 66bedd4f5d81441dc5ce44628a3680e20f77e7908760f7dfa1ccf95e9f59446d
MD5 c038c4785f52c43f6238493e5b16fcfb
BLAKE2b-256 8a95c1c38e712d95448256c98ea7b60b2ebe9ee15c3e3a42b9e2dc639a8deef1

See more details on using hashes here.

File details

Details for the file simsopt-1.6.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.6.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6036153b0d00953eb8f884a778e311f164ff7fdaa562f0cacc6ce22c3a3278df
MD5 22111a5ba0c3a705ea98261214d60a2c
BLAKE2b-256 cb42cb3eb469de9e40569492cbb4d3f80f13e020702700fc0aba97d6e1c2b0c5

See more details on using hashes here.

File details

Details for the file simsopt-1.6.4-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simsopt-1.6.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f75f7fce15e67623b23c67672c5409e2e0cec54b7652b23f608acae5d00344c7
MD5 2a8292fe8bf6f828e7f1e8c4152537f8
BLAKE2b-256 ed72f970bd24d5b891706147f842b739d26bf38339c54c7d930dbd6d3bc63e0f

See more details on using hashes here.

File details

Details for the file simsopt-1.6.4-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for simsopt-1.6.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 243db50256907487f9d91a9cb040021acd99bf5ae7a92ea9b76a0cc8e1099138
MD5 60dfce2fd8acd5b9dcde41748b6d16c6
BLAKE2b-256 fdf367be4261ee9cdeebc001185379ab844aeb9203fbb72341b4cfd86e6217c6

See more details on using hashes here.

Supported by

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