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 liblapack-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 lapack
  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 lapack-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, LAPACK, 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
  • 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

  • non-stellarator-symmetric terms (lasym == true) are not supported yet
  • free-boundary works only for ntor > 0 - axisymmetric (ntor = 0) free-boundary runs don't work yet
  • lgiveup/fgiveup logic for early termination of a multi-grid sequence is not implemented yet
  • lbsubs logic in computing outputs is not implemented yet
  • lforbal logic for non-variational forces near the magnetic axis 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:
    • gauss_trunc
    • two_power_gs
    • akima_spline
    • akima_spline_i
    • akima_spline_ip
    • cubic_spline
    • cubic_spline_i
    • cubic_spline_ip
    • pedestal
    • rational
    • nice_quadratic
    • sum_cossq_s
    • sum_cossq_sqrts
    • sum_cossq_s_free
  • some (rarely used) free-boundary-related output quantities are not implemented yet:
    • curlabel - declared but not populated yet
    • potvac - declared but not populated yet
    • xmpot - not declared yet
    • xnpot - not declared yet
  • 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.3.tar.gz (586.0 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.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (15.2 MB view details)

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

vmecpp-0.7.3-cp314-cp314t-macosx_15_0_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.14tmacOS 15.0+ x86-64

vmecpp-0.7.3-cp314-cp314t-macosx_14_0_arm64.whl (5.4 MB view details)

Uploaded CPython 3.14tmacOS 14.0+ ARM64

vmecpp-0.7.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (15.2 MB view details)

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

vmecpp-0.7.3-cp314-cp314-macosx_15_0_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

vmecpp-0.7.3-cp314-cp314-macosx_14_0_arm64.whl (5.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

vmecpp-0.7.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (15.2 MB view details)

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

vmecpp-0.7.3-cp313-cp313-macosx_15_0_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

vmecpp-0.7.3-cp313-cp313-macosx_14_0_arm64.whl (5.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

vmecpp-0.7.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (15.2 MB view details)

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

vmecpp-0.7.3-cp312-cp312-macosx_15_0_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

vmecpp-0.7.3-cp312-cp312-macosx_14_0_arm64.whl (5.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

vmecpp-0.7.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (15.2 MB view details)

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

vmecpp-0.7.3-cp311-cp311-macosx_15_0_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

vmecpp-0.7.3-cp311-cp311-macosx_14_0_arm64.whl (5.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

vmecpp-0.7.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (15.2 MB view details)

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

vmecpp-0.7.3-cp310-cp310-macosx_15_0_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

vmecpp-0.7.3-cp310-cp310-macosx_14_0_arm64.whl (5.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: vmecpp-0.7.3.tar.gz
  • Upload date:
  • Size: 586.0 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.3.tar.gz
Algorithm Hash digest
SHA256 abd47d7930d9507fcccb793d335c2ba2a677340c54b6843cb37e71648c33d727
MD5 c7cb5d00714b1e01135fbc31e5eddd4b
BLAKE2b-256 70fbe5c0040e6afbabfcd735b33b98e675f331e628347cafeea8de9950d3cb17

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3.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.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7f813a91ff575b477b8d73839a2bba18b652200e6b94e5e3b093cdc75e91c24a
MD5 0f4dfc1fe6ede982c2ac584c8ec1d313
BLAKE2b-256 9614d5f201bf3cce4280d379e2410eab577f10ac71b36a52ec6fd612ad8067eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp314-cp314t-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp314-cp314t-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 1fb51835fe8bf1705654575b7a4b5127f96cc4bb1433577d763cfbe60e3fa904
MD5 6ca876092753c051c47eab6b74f2583f
BLAKE2b-256 edd5d422cf8b868a86ad47f872fc4583c551ebf1c40b7db6513cbf8d4a6cfd9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-cp314-cp314t-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.3-cp314-cp314t-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp314-cp314t-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ac7ed05770f263038e0adb75eea3a663b5e5250680f748574fb5b070383eb1d6
MD5 3f5a4607c29ca5bd01d3a752c2e15cd9
BLAKE2b-256 5296ed6e04cf9390d1f032120c3d452fc8bce8eeaf5c34582750dd32e937d2b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c64feb5a345c85acba21aca7bcd0a383d827116988d24d3c5f4c2340b2849010
MD5 c07401dca43fe3085d3914e81bbd091e
BLAKE2b-256 6008df21a3dd7cf7d3e295cda5aa53f851d32f78eed2f8352a684ba02ffd31e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp314-cp314-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 c4b4424fe22e93d045eb1f56d35cc8927a7b57f51857752eedc014fd65ba52a7
MD5 140eb1beba1ffb2b79b2708d7a736789
BLAKE2b-256 1b25dc785885e32d4b7b3c7cd8a26fb78ebab65d88f1ccfba50dd6b8b2d4422f

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-cp314-cp314-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.3-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 817be45edbaaae9feafb6c1f7f00d98f99ac28e60093a5fea00bda9da810297f
MD5 b56665c0879600869ff320d90b143cbc
BLAKE2b-256 3d57f7103eabb3db56767fb30174b53af695bae57a053a2b90a97486ed6133fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6903f05c1bf9ff41385dfbfeb6e2fad600454d8400b1d4b96dcbe8e70c76e7e5
MD5 38387d32b03fb67afe9904503ddb95d5
BLAKE2b-256 b57d8549aaa8d7a4b99082f2187d8f2f507c9cf4bed9e72159565dc9b8363fdb

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 6d8cc291ddc3b64170e5594bcdf45a9e2e6b5e838b832a219f4610738f18f544
MD5 46779ad489f901e2e48dae52d301fba0
BLAKE2b-256 f3c8935abf2f9b78fe81aa29a19414336a67db1524fe5e8ed0cf6983585838cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6b37e36870421d1518efc6b0ba57c0f90fc41032a7cc10719d3bb9641dce948c
MD5 97f6264119ffba3f576c4626e8304b0c
BLAKE2b-256 89b9a0eb89389335c88686785189952c91fd9e1a4d84422a66959174d9ee8794

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 db1982f7666556aaff986edfcb507f67894acc73d1990ccf4e2cb9c4e76f4282
MD5 8e9b31f5f7956d52802262a6146ce547
BLAKE2b-256 a136ae544058fd77a7d347818c158a6dc6e35e3106d915debef1486d36818169

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 e21f555fa81c3002d70cfdf99f138a486ab7e1f1a5220be887a11554335dcf3b
MD5 aa0b8450276b97bde1156bcb1051ad82
BLAKE2b-256 29355b470733334fc825d074a5fdd3b2004090a0ab3fdbf0e796ee170b3700c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b69b3f4b06bd8c7896e7518757ed76ea5bba9639a07d068aa7b6a5f0f5a30cbf
MD5 bfe08141934b2bce7be6a2ef6ffbacd3
BLAKE2b-256 52cfccd3aadc2336097231703b24b0e5fc0c97acf9bedc66771b7431b0b2aefc

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 090a81ff3dcd7107ee5b6f165730453350a56c93e03792d7f6eaf8de37a41614
MD5 a033a3cc5badbc1728dea7fa08198746
BLAKE2b-256 8849564356f0f4d18bf8c3525c38458343869f722d8af83be4cf80e13208bffa

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 252d73e36b3356f9f0e1f3ce1bf6fa663b51b70a1a182680aaf2f1eeafa72e7b
MD5 be99c3fcda36ce0fec83f0236e58049a
BLAKE2b-256 08d07bc23e41c3865a741cdd105e88a2ed009ead5d5cec0d10bfa3c999cd7a4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6170994bc6484110cba409cf4c17765c82209fc522a1ecf789203632a0bc5e54
MD5 68f588fc0e51b484dc954fa1196504a6
BLAKE2b-256 fd67a10ad9ed17b159ffadb051f371fc8ac0f2a3d6065cd1f0029712b93a4d8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e35af86178912278522329732fddfc4251be6732433c535dfe04f044e482bb0f
MD5 667db5677dd078dfe93961df9fbdc59a
BLAKE2b-256 6ddb70a0e38ad50490896b095550b00b1fce7fbbb63f066580a18d66c20228d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-cp310-cp310-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.3-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 8355971ed2294baa513b623b518eb84733481a9de7a5cbbd43a4a0f34f8331b5
MD5 3a0db8f840cbd3164c9120fb9f3df940
BLAKE2b-256 94314697c8dd03376ef685407bd6021d97ecdb7c41a6c865867c0c1cc5482368

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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.3-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for vmecpp-0.7.3-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 16b186242add24213e01132fe7d2f140e79b7998da2cc39dc6821837df949acd
MD5 56c6ce871d9d07622b235f6ff548b3bf
BLAKE2b-256 10621202cf1aa63180085497460828695e408cab9ee664f974b6ee727519e53d

See more details on using hashes here.

Provenance

The following attestation bundles were made for vmecpp-0.7.3-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

0.7.4

23 files

This release

0.7.3 This release

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