Skip to main content
A dark Proxima logo in light color mode and a light one in dark color mode.

VMEC++

Ruff Code style: black MIT license Python version DOI

CI C++ core tests Full V&V against reference VMEC Publish wheels to PyPI

VMEC++ is a Python-friendly, from-scratch reimplementation in C++ of the Variational Moments Equilibrium Code (VMEC), a free-boundary ideal-MHD equilibrium solver for stellarators and tokamaks.

The original version was written by Steven P. Hirshman and colleagues in the 1980s and 1990s. The latest version of the original code is called PARVMEC and is available here.

Compared to its Fortran predecessors, VMEC++:

  • has a zero-crash policy and reports issues via standard Python exceptions
  • allows hot-restarting a run from a previous converged state (see Hot restart)
  • supports inputs in the classic INDATA format as well as simpler-to-parse JSON files; it is also simple to construct input objects programmatically in Python
  • typically runs faster
  • comes with substantial documentation of its internal numerics

VMEC++ can run on a laptop, but it is a suitable component for large-scale stellarator optimization pipelines.

On the other hand, some features of the original Fortran VMEC are not available in VMEC++. See below for more details.


Table of Contents

Usage

This is a quick overview of the three main ways in which you can use VMEC++. See examples/ for some actual example scripts. Suitable input files are found in examples/data. If unsure where to start, we suggest giving the w7x case a try, which is a five-field-period stellarator case for the Wendelstein 7-X stellarator.

For example examples/force_residual_convergence.py runs fixed-boundary VMEC++ on the W7-X case and plots the convergence of the force residuals.

W7-X force residual convergence

As a Python package

VMEC++ offers a simple Python API:

import vmecpp

# Construct a VmecInput object, e.g. from a classic Fortran input file
vmec_input = vmecpp.VmecInput.from_file("input.w7x")  # or VMEC++'s w7x.json format
# This is a normal Python object: it can be constructed and modified programmatically
vmec_input.rbc[0, 0] *= 1.1

# Run VMEC++
vmec_output = vmecpp.run(vmec_input)

# Inspect the results programmatically or save them as a classic wout file
print(vmec_output.mercier.iota)
vmec_output.wout.save("wout_w7x.nc")

All other output files are accessible via members of the vmec_output object called threed1_volumetrics, jxbout and mercier.

With SIMSOPT

SIMSOPT is a popular stellarator optimization framework. VMEC++ implements a SIMSOPT-friendly wrapper that makes it easy to use it with SIMSOPT.

import vmecpp.simsopt_compat

vmec = vmecpp.simsopt_compat.Vmec("input.w7x")
print(f"Computed plasma volume: {vmec.volume()}")

As a command line tool

You can use VMEC++ directly as a CLI tool. In a terminal in which Python has access to the VMEC++ package:

# run on a given input file -> produce corresponding wout_w7x.nc
# vmecpp is a python module and can be either run with `python -m` or directly as a script
vmecpp examples/data/input.w7x

# check all options
vmecpp --help

As a Docker image

A pre-built Docker image is available at https://github.com/proximafusion/vmecpp/pkgs/container/vmecpp. Note that at present it is only updated occasionally.

See docker/README.md for more information and instructions on how to build a new image.

Installation

The easiest method for installing vmecpp is using pip:

pip install vmecpp

For usage as part of MPI-parallelized SIMSOPT applications, you might want to also install MPI on your machine and pip install mpi4py.

Alternatively you can build the latest vmecpp directly from source according to the appropriate instructions below.

Ubuntu/Debian

Ubuntu 22.04 and 24.04, as well as Debian 12 are officially supported.

  1. Install required system packages:
sudo apt-get install -y build-essential cmake gfortran libnetcdf-dev libomp-dev libhdf5-dev python3-dev
  1. Install VMEC++ as a Python package (possibly after creating a dedicated virtual environment):
pip install git+https://github.com/proximafusion/vmecpp

The procedure will take a few minutes as it will build VMEC++ and some dependencies from source.

A common issue on Ubuntu is a build failure due to no python executable being available in PATH, since on Ubuntu the executable is called python3. When installing in a virtual environment (which is always a good idea anyways) python will be present. Otherwise the Ubuntu package python-is-python3 provides the python alias.

Arch Linux

  1. Install required system packages:
pacman -Sy --noconfirm python-pip gcc gcc-fortran openmp hdf5 netcdf
  1. Install VMEC++ as a Python package (possibly after creating a virtual environment):
python -m pip install git+https://github.com/proximafusion/vmecpp

Fedora

Fedora 41 is officially supported.

  1. Install required system packages:
dnf install -y python3.10-devel cmake g++ gfortran libomp-devel hdf5-devel netcdf-devel
  1. Install VMEC++ as a Python package (possibly after creating a virtual environment):
# If you are installing with MPI support, remember to source the mpi compiler first
. /etc/profile.d/modules.sh
python3.10 -m pip install git+https://github.com/proximafusion/vmecpp

MacOS

  1. Install dependencies via Homebrew:
brew install python@3.10 ninja libomp netcdf-cxx git
# And if they aren't pre-installed already:
brew install gcc cmake
  1. Install VMEC++ as a Python package (possibly after creating a virtual environment):
# tell cmake where to find gfortran and gcc as they have non-standard names
export FC=$(which gfortran-14)
# OpenMP headers live under a different path on newer OS-X versions, so CMake can't find them
export OpenMP_ROOT=$(brew --prefix)/opt/libomp
export HDF5_ROOT=$(brew --prefix hdf5)
python3.10 -m pip install git+https://github.com/proximafusion/vmecpp

With Nix (Community support)

For a Linux development shell with the latest supported Python version:

nix develop
python --version
python -m pip install -e .[test]

The shell provides Python 3.13 together with the native build dependencies needed to build and test VMEC++, including CMake, GCC, GFortran, HDF5, NetCDF, OpenMPI, and Git LFS.

As part of a conda environment

VMEC++ is currently not packaged for conda, but all its dependencies are and VMEC++ can be installed inside a conda environment. An example environment.yml file is provided here that can be used, after cloning the vmecpp repository, as:

git clone https://github.com/proximafusion/vmecpp.git
cd vmecpp
# this creates a "vmecpp" conda environment
conda env create --file environment.yml
# use the environment as usual
conda activate vmecpp

C++ build from source

After having installed the build dependencies as shown above, you can compile the C++ core of VMEC++ via CMake or Bazel. E.g. with CMake:

git clone https://github.com/proximafusion/vmecpp.git
cd vmecpp
cmake -B build  # create and configure build directory
cmake --build build --parallel  # build VMEC++
# you can now use the vmec_standalone C++ executable to run VMEC on a VMEC++ input JSON file, e.g.
./build/vmec_standalone ./examples/data/solovev.json

The main C++ source code tree is located at src/vmecpp/cpp/vmecpp.

Hot restart

By passing the output of a VMEC++ run as initial state for a subsequent one, VMEC++ is initialized using the previously converged equilibrium. This can dramatically decrease the number of iterations to convergence when running VMEC++ on a configuration that is very similar to the converged equilibrium.

Example

import vmecpp

vmec_input = vmecpp.VmecInput.from_file("w7x.json")

# Base run
vmec_output = vmecpp.run(vmec_input)

# Now let's perturb the plasma boundary a little bit...
vmec_input.rbc[0, 0] *= 0.8
vmec_input.rbc[1, 0] *= 1.2
# ...and fix up the multigrid steps: hot-restarted runs only allow a single step
vmec_input.ns_array = vmec_input.ns_array[-1:]
vmec_input.ftol_array = vmec_input.ftol_array[-1:]
vmec_input.niter_array = vmec_input.niter_array[-1:]

# We can now run with hot restart:
# passing the previously obtained vmec_output ensures that
# the run starts already close to the equilibrium, so it will take
# very few iterations to converge this time!
hot_restarted_output = vmecpp.run(vmec_input, restart_from=vmec_output)

Full tests and validation against the reference Fortran VMEC v8.52

When developing the C++ core, it's advisable to locally run the full C++ tests for debugging or to validate changes before submitting them. The full C++ tests live in src/vmecpp/cpp/vmecpp_large_cpp_tests and use Git LFS for large test data files. To run them locally (after cloning with git lfs pull to fetch the LFS objects):

cd src/vmecpp/cpp
bazel test --config=opt //vmecpp/... //vmecpp_large_cpp_tests/...

The CI of this repo runs these tests automatically.

The single-thread runtimes as well as the contents of the "wout" file produced by VMEC++ can be compared with those of Fortran VMEC v8.52. The full validation test can be found at https://github.com/proximafusion/vmecpp-validation, including a set of sensible input configurations, parameter scan values and tolerances that make the comparison pass. See that repo for more information.

This full validation (~219 input configurations) is run against every commit to main and can also be triggered on demand from the Full V&V against reference VMEC workflow (click "Run workflow"). It builds vmecpp from the corresponding commit rather than using the version pinned by vmecpp-validation.

Differences with respect to PARVMEC/VMEC2000

VMEC++:

  • reports issues via standard Python exceptions and has a zero crash policy
  • allows hot-restarting a run from a previous converged state (see Hot restart)
  • supports inputs in the classic INDATA format as well as simpler-to-parse JSON files; it is also simple to construct input objects programmatically in Python
  • employs the same parallelization strategy as Fortran VMEC, but VMEC++ leverages OpenMP for a multi-thread implementation rather than Fortran VMEC's MPI parallelization: as a consequence it cannot parallelize over multiple nodes, but can utilize shared caches between threads
  • Reduces the force spikes between multi-grid stages in free-boundary, which should lead to faster and more robust free-boundary convergence (for details see https://github.com/proximafusion/vmecpp/releases/tag/v0.7.0)
  • Stable recurrence for Neumann kernel integrals enables convergence of free-boundary solves at high mpol, ntor (see https://github.com/proximafusion/vmecpp/releases/tag/v0.5.3)
  • Uses FFT kernels optimized for small mode numbers generated using FFTX instead of DFT for supported resolutions. They give a 10-20% speedup relative to the DFT counterparts.
  • implements the iteration algorithm of Fortran VMEC 8.52, which sometimes has different convergence behavior from (PAR)VMEC 9.0: some configurations might converge with VMEC++ and not with (PAR)VMEC 9.0, and vice versa. One deliberate exception: at multigrid grid transitions, the rollback backup of the state vector is taken after the radial interpolation of the coarse-grid solution (matching PARVMEC/VMEC2000 since 2017-01-24, "SPH 012417"), not before it as in VMEC 8.52 -- with the 8.52 ordering, the first restart of a stage silently discards the interpolated state and the finer stages effectively re-solve from a cold start

Limitations with respect to the Fortran implementations

  • lgiveup/fgiveup logic for early termination of a multi-grid sequence is not implemented yet
  • lbsubs logic in computing outputs is not implemented yet
  • lrfp flag is available for wout compatibility, but RFP-specific physics is not implemented yet - only stellarators/Tokamaks for now
  • several profile parameterizations are not fully implemented yet:
    • sum_cossq_s
    • sum_cossq_sqrts
    • sum_cossq_s_free
  • 2D preconditioning using block-tridiagonal solver (BCYCLIC) is not implemented; neither are the associated input fields precon_type and prec2d_threshold
  • VMEC++ only computes the output quantities if the run converged (can be overridden via return_outputs_even_if_not_converged input)
  • The Fortran version falls back to fixed-boundary computation if the mgrid file cannot be found; VMEC++ (gracefully) errors out instead.
  • The Fortran version accepts both the full path or filename of the input file as well as the "extension", i.e., the part after input.; VMEC++ only supports a valid filename or full path to an existing input file.

Roadmap

Some of the things we are planning for VMEC++'s future:

  • free-boundary hot-restart in Python
  • open-sourcing the full VMEC++ test suite (including the Verification&Validation part that compares wout contents)
  • open-sourcing the source code to reproduce VMEC++'s performance benchmarks
  • VMEC++ usable as a C++ bazel module

Some items we do not plan to work on, but where community ownership is welcome:

  • packaging VMEC++ for platforms or package managers other than pip (e.g. conda, homebrew, ...)
  • native Windows support
  • ARM support
  • 2D preconditioner using bcyclic_plus_plus

Related repositories

License

vmecpp is distributed under the terms of the MIT license.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vmecpp-0.7.4.tar.gz (658.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

vmecpp-0.7.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vmecpp-0.7.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

vmecpp-0.7.4-cp314-cp314t-macosx_14_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.14tmacOS 14.0+ ARM64

vmecpp-0.7.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vmecpp-0.7.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

vmecpp-0.7.4-cp314-cp314-macosx_14_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

vmecpp-0.7.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vmecpp-0.7.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

vmecpp-0.7.4-cp313-cp313-macosx_15_0_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

vmecpp-0.7.4-cp313-cp313-macosx_14_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

vmecpp-0.7.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vmecpp-0.7.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

vmecpp-0.7.4-cp312-cp312-macosx_15_0_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

vmecpp-0.7.4-cp312-cp312-macosx_14_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

vmecpp-0.7.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vmecpp-0.7.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

vmecpp-0.7.4-cp311-cp311-macosx_15_0_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

vmecpp-0.7.4-cp311-cp311-macosx_14_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

vmecpp-0.7.4-cp310-cp310-manylinux_2_28_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

vmecpp-0.7.4-cp310-cp310-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

vmecpp-0.7.4-cp310-cp310-macosx_15_0_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

vmecpp-0.7.4-cp310-cp310-macosx_14_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file vmecpp-0.7.4.tar.gz.

File metadata

  • Download URL: vmecpp-0.7.4.tar.gz
  • Upload date:
  • Size: 658.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for vmecpp-0.7.4.tar.gz
Algorithm Hash digest
SHA256 4eaa30eea3ed1d0af613e1ccd8f2768c07e1d1c8789fa756bb5d8faed9b61a2b
MD5 69f4341a07cf55aa129a667b4a5ca2f3
BLAKE2b-256 071ed9bd9a0e785729286e10f16fd4c982473e9c416e8061d6af4dab3b2f005d

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4.tar.gz:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 75c81aae19ad3c0f5f74287a52323ad2565e4a2fb5e7cbf4905569c751f8395d
MD5 be3a76992cb84e7cb3df559fd631068b
BLAKE2b-256 0a729fcef19b10ce6015ad39e62bc4fd04b6118f99c45e086422d0ba507c8b57

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 399c2347056ffda9530146088a886c843d3ed551c6eddeaa1558450a0f77183a
MD5 3df94da2bd0b0619fc8708fea1104742
BLAKE2b-256 299d5bf417a1011987b15aef72981226ec0e6c70bec902c67a2d8e1882f0663c

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp314-cp314t-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp314-cp314t-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 39dd6f268900343724a8f9fca37d79882c3eae6c3649dd8ec74c7380db5aadb2
MD5 08e548be8cd3764086edeb84aa2d0160
BLAKE2b-256 151f03280c49bb92c66718dd46046515565b71f2c4fc218110f2668dc3e1f0cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp314-cp314t-macosx_14_0_arm64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 79b7db951cd6d982ef8c8748539de9ea09f7a281156683bda75956691b05f817
MD5 733608c69b7885f90970a80036b336e4
BLAKE2b-256 dec09065e99597dba2dc14d2608d27106bf3057b28fd306081e8c2cf209e466a

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5051584616b44dfd9c1524a22e402a1f518fc4a7a89e4bccb189b30fa62729e6
MD5 958168bdcdda61e02bc657cea44beff0
BLAKE2b-256 99d725144697769132f8880ce3afa6035a7de138f195aa9d8b75f2a6d67770b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7518c86f83eaaeb7a58b6cc66962028154a7ded22bd4fa0afa8fc877f26b4494
MD5 0272d70d26d770161dd398c7309b41bf
BLAKE2b-256 c2887bbeb3fb09f93df9378b0700277385459f81eb81d55c88b3363ec5cbc9de

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9839bdeb89a19dcbbf33ba712dc550c03d3182902cc2d30c9ad6e472a7948137
MD5 2c9f47c7a04c27717aa772fbf6de9f61
BLAKE2b-256 d02f24cb6417ff4227db90c573766ffd89c9d27bde3c627fcd918502515d5969

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4f90d2ec07675d8945f74c02403bd3f3c5693ad7681f484b2c1286221e844110
MD5 415429c14f2802b464f186f0945b1ff5
BLAKE2b-256 18e794ea82b68d7788337990f5b5ff7de135584eb7ac07cf86237c9b5d3c2013

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 0bfe5f252ed56bed73353c5e94c067a0908dc299bc823693d915ed6a74a1a2ec
MD5 0601e20f4f7cdade6f79480eabc61db4
BLAKE2b-256 647a426d5c7e5257fe78d71006aa774a08bb3b6147426bfb3b134095f5c72cae

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp313-cp313-macosx_15_0_x86_64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 40d91cf05643f81cdf83b4512c0c7666743b75a6f4f440ce506771c7e41a93f1
MD5 038419b422722a01e0e49ef089826f0f
BLAKE2b-256 268c30b0299ec17ecc4fcd1367826bf462fbbb72b4c934435a3491d4f64ba9fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1f210ee19bfa91b6bccb1c2c2efafd32a9ea82aea302d794585bb8e2b3c78330
MD5 b34e75d7ca999f2dfc77ee81674b323a
BLAKE2b-256 047bce124c9cd2334d9ff57f885432e7931bd2af01c238fd46d0a3181d900cde

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 367a5722e237c88d1f0d5f6f0d1f0b56437514ecb4d28d9c33b7a6696271822e
MD5 97df79ccf66503d3bfe850ebfff59857
BLAKE2b-256 8fa9b76bea259388fac4367fad068104ecef5afa1b78fd8171d276067f914d2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 7163880d2459ce0bafb580b25dc9f8cd68452df2222d8586f3575e3391574a29
MD5 49d69a4df4ddf82d6119a883090e0426
BLAKE2b-256 b07243b3d8876a63e1baa46654c15679b1baabcc18faf4caa205c6f469933702

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp312-cp312-macosx_15_0_x86_64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e0735200e4a088f7338fbcc38fab1606599df62f27b8b1eceb8232ce94889b20
MD5 8e27d6727cf84b16bf5f20caef569885
BLAKE2b-256 217295f6579fe5112a56a7b8d89c54b8f62d6cdc9f7629b2d2c80d2b31f3fc51

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e58daf92f02b68a1a859a7310ccc60c1ebcb8ef5e665efc3343151c626ebc7ac
MD5 a7aad578b6968718ba3e17657ef198b3
BLAKE2b-256 7e483521a172b186185fcef5b64d0120b686ca7a8c2a70e1445b0b71af44bde6

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ed8e7c780ec913fce362bb184f5b8cc88bde334ec29b3e427c32559e46a66cb0
MD5 73e32c38638cf297686e43fc54136cf9
BLAKE2b-256 1148c17c5caf4f2220d6d4de947d8ed08903e0954b1645d9779c2eafd2e6060f

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 6673e89c51f5e65060a2e1e79c5c1816dacc925caa7321f2dc05612c9c9be1bc
MD5 85f723cd39d717f9b3ee5ac283d55860
BLAKE2b-256 9ab12140328b22f06e6d4828296c055c5813e68e91abb5049019722b6b6d595f

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp311-cp311-macosx_15_0_x86_64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 fed454342c99c36142cdc4ef65591a5bd75e99f2922c79f4a349f6b08bd358ff
MD5 44d7ef3c3c144679a7ac1b5a6da85705
BLAKE2b-256 91fa3a8e26f6fa077392411036d8d029f01291c160eef97c642cef5eecbef9e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9cb925e67f445d2a06a4a81270d59349a51cb38db8bb5f14a5920b7e7fb649d8
MD5 87a29608c79d6868fbc889e788cb10d1
BLAKE2b-256 2d9b3b3e9f23e4bd9c7d273051214ec3dbf128ff43b0f83dbc7bb8dae3f3abb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7cbb6ff48fe22667cff4a30a65a08cac2b50f7df93ce75fcb4721bec15936bcf
MD5 7ea1b3deabdb03814d35ac4c06221ee2
BLAKE2b-256 4f9560e9bd2b63c148f51cdba770d45930dcced9c452fa6515366f4422badeb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 43db12b09a1ed4e22899bb5bded26bd7b9215ae861a11e41d3aa48ccfbf31061
MD5 b5df20f012062078eb81b021e60622ca
BLAKE2b-256 dd7128ef9a8abf8d87d173a78ff57068525fe1bad5e6cf2e021f967167cd12e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp310-cp310-macosx_15_0_x86_64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vmecpp-0.7.4-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.4-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 941a70c54a566556820001afe484da02f39091da1e97683797857864dbf0166f
MD5 4e6e37a1bf6e57a748b1b9bfe0bbc1f4
BLAKE2b-256 c337e3e1507a367a0bdf2dd72ef0f67a85d050759b1fd57a6af8edbce58be74d

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.4-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: pypi_publish.yml on proximafusion/vmecpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.7.4 This release

23 files

0.7.3

19 files

0.7.2

19 files

0.7.1

13 files

0.7.0

13 files

0.6.1

13 files

0.6.0

13 files

0.5.4

13 files

0.5.3

13 files

0.5.2

13 files

0.5.1

13 files

0.5.0

19 files

0.4.11

13 files

0.4.9

13 files

0.4.8

13 files

0.4.7

13 files

0.4.6

13 files

0.4.5

13 files

0.4.4

13 files

0.4.3

13 files

0.4.2

13 files

0.4.1

13 files

0.4.0

13 files

0.3.5

13 files

0.3.4

13 files

0.3.3

13 files

0.3.2

13 files

0.2.1

13 files

0.2.0

13 files

0.1.0

25 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page