All Projects → hiddenSymmetries → simsopt

hiddenSymmetries / simsopt

Licence: LGPL-3.0 License
Simons Stellarator Optimizer Code

Programming Languages

python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language
Roff
2310 projects
SourcePawn
201 projects
c
50402 projects - #5 most used programming language
CMake
9771 projects
shell
77523 projects

Projects that are alternatives of or similar to simsopt

Core
The core source repository for the Cherab project.
Stars: ✭ 26 (-7.14%)
Mutual labels:  plasma, fusion
Tofu
Project for an open-source python library for synthetic diagnostics and tomography for Fusion devices
Stars: ✭ 35 (+25%)
Mutual labels:  plasma, fusion
Aurora
Modern toolbox for impurity transport, neutrals and radiation modeling in magnetically-confined plasmas
Stars: ✭ 18 (-35.71%)
Mutual labels:  fusion, stellarator
bio ik
MoveIt kinematics_base plugin based on particle optimization & GA
Stars: ✭ 104 (+271.43%)
Mutual labels:  optimization
yoga-image-optimizer
A graphical tool to convert and optimize JPEG, PNG and WebP images (based on YOGA)
Stars: ✭ 85 (+203.57%)
Mutual labels:  optimization
pytorch
Improved LBFGS optimizer in PyTorch.
Stars: ✭ 16 (-42.86%)
Mutual labels:  optimization
Snowflake
NixOS Flake Configuration.
Stars: ✭ 22 (-21.43%)
Mutual labels:  plasma
PlasmaVM-JS
TxVM based Plasmas' Network
Stars: ✭ 13 (-53.57%)
Mutual labels:  plasma
Train plus plus
Repo and code of the IEEE UIC paper: Train++: An Incremental ML Model Training Algorithm to Create Self-Learning IoT Devices
Stars: ✭ 17 (-39.29%)
Mutual labels:  optimization
structured-volume-sampling
A clean room implementation of Structured Volume Sampling by Bowles and Zimmermann in Unity
Stars: ✭ 27 (-3.57%)
Mutual labels:  optimization
Network-Distributed-Algorithm
Experiments for distributed optimization algorithms
Stars: ✭ 29 (+3.57%)
Mutual labels:  optimization
eqsat
A language-generic implementation of equality saturation in Haskell
Stars: ✭ 15 (-46.43%)
Mutual labels:  optimization
olympus
Olympus: a benchmarking framework for noisy optimization and experiment planning
Stars: ✭ 38 (+35.71%)
Mutual labels:  optimization
dfogn
DFO-GN: Derivative-Free Optimization using Gauss-Newton
Stars: ✭ 20 (-28.57%)
Mutual labels:  optimization
NCVX
NCVX: A User-Friendly and Scalable Package for Nonconvex Optimization in Machine Learning
Stars: ✭ 19 (-32.14%)
Mutual labels:  optimization
dmipy
The open source toolbox for reproducible diffusion MRI-based microstructure estimation
Stars: ✭ 58 (+107.14%)
Mutual labels:  optimization
osqp
The Operator Splitting QP Solver
Stars: ✭ 929 (+3217.86%)
Mutual labels:  optimization
yarrow
[yarrow] JVMCI based optimizing compiler for HotSpot VM
Stars: ✭ 21 (-25%)
Mutual labels:  optimization
autogoal
A Python framework for program synthesis with a focus on Automated Machine Learning.
Stars: ✭ 153 (+446.43%)
Mutual labels:  optimization
Max-value-Entropy-Search
Max-value Entropy Search for Efficient Bayesian Optimization
Stars: ✭ 43 (+53.57%)
Mutual labels:  optimization

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].