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.2.tar.gz (577.2 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.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (14.1 MB view details)

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

vmecpp-0.7.2-cp314-cp314t-macosx_15_0_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.14tmacOS 15.0+ x86-64

vmecpp-0.7.2-cp314-cp314t-macosx_14_0_arm64.whl (5.2 MB view details)

Uploaded CPython 3.14tmacOS 14.0+ ARM64

vmecpp-0.7.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (14.1 MB view details)

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

vmecpp-0.7.2-cp314-cp314-macosx_15_0_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

vmecpp-0.7.2-cp314-cp314-macosx_14_0_arm64.whl (5.1 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

vmecpp-0.7.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (14.1 MB view details)

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

vmecpp-0.7.2-cp313-cp313-macosx_15_0_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

vmecpp-0.7.2-cp313-cp313-macosx_14_0_arm64.whl (5.1 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

vmecpp-0.7.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (14.1 MB view details)

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

vmecpp-0.7.2-cp312-cp312-macosx_15_0_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

vmecpp-0.7.2-cp312-cp312-macosx_14_0_arm64.whl (5.1 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

vmecpp-0.7.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (14.1 MB view details)

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

vmecpp-0.7.2-cp311-cp311-macosx_15_0_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

vmecpp-0.7.2-cp311-cp311-macosx_14_0_arm64.whl (5.1 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

vmecpp-0.7.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (14.1 MB view details)

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

vmecpp-0.7.2-cp310-cp310-macosx_15_0_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

vmecpp-0.7.2-cp310-cp310-macosx_14_0_arm64.whl (5.1 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: vmecpp-0.7.2.tar.gz
  • Upload date:
  • Size: 577.2 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.2.tar.gz
Algorithm Hash digest
SHA256 43886c5a856d2edf87851e14bd58a2c77294b15378b89821bb4e0f8e4c286df5
MD5 745a5cd3b362af881a689da283a38eb2
BLAKE2b-256 3f20d122f0e67162740af9900caf212f38740c506eaf5e2c53376d7ee5902176

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4f666f87a8e2be1650197bbb9c75bbf13c8fa512a7cca2dea33305bbb219ddc8
MD5 b975b212ce6d6aa4d7d7f7f375cac593
BLAKE2b-256 d2bfa8ae98508527d47705ebbf0a8a7ef3d15733f4bacaafe0ba758ba85e97d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp314-cp314t-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 69bd6a1a89023d3a3c104514b545c843c348c0d3de6458238b9960db6c5c7cac
MD5 365eb6c63dddd5016f7603782b607313
BLAKE2b-256 e07dee38d09d4275e59ea08d106e1f266db384a7fd602ad93ada7021ba7f1e66

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp314-cp314t-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 31741bb5efa2159904de046e47e8644e8021a5d93222712b38db902717e94dd3
MD5 0b2ac857c3028b616f86f847466f2a98
BLAKE2b-256 57f8c88af715db78727c176eacc9526329d6a861bae3e1c6368e596b84e9eabb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ec9cd0daacef64b0b0372353dc80d6c75247af10b06ea2caf05ffaef26f100ee
MD5 94530035d914865e96e3245ff2a3df9b
BLAKE2b-256 ed850f3ae7fe6c13df48f7ba5c5cacaa10898e3d2712deab003fa3a1a8b66cff

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 b3fac13251a1b185ebead2f2107358921d695734bef682c8f4f9acd51e724054
MD5 ea3d834f259113fdcfac025db1f0c741
BLAKE2b-256 eefa8ba8cc05d969f83a75d385b2e4f8cf10c568084ad7d0e0a34bd4fdbc916c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a358af1a28dd6a15c8597c64feb1bb210dce84a16e1aeb94d4efbd0a77c89c58
MD5 a280984c7366d029f5b25c1c3f86673d
BLAKE2b-256 c54ee6b6d950676a316124b8d236959b62312e9ecee7fa817005be384ba8ccb0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 102cca4dc0993af93f525a2b0dbbe6a1477a03289c432dc8f2dee63a3ed2e4d3
MD5 27d1d48ae649c034a5b2670383db1cfd
BLAKE2b-256 65736e167dd08e2d45d54d979b6230c8f7cb26ddc1d654bf9fe6cebc2d84bea3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 df5a30a7fddecd68813c5ce4dd4129d14a501528e413f0431ceea0dc1a83afc2
MD5 9e8e64001f8885180384b0ab949120d2
BLAKE2b-256 2626626dabf23fb660eb821a670769350d8bb31764919b2a5b4547aaf9b35fa5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ed5ddf9a3f1480f80a55a15ddcfd3d33b08fbcdd8e006e1058da38c1b47239ec
MD5 e9dbeb7f8ab2b42e43aa30855496e85c
BLAKE2b-256 2cf075bfb4a79997ceb3b87c9ebba462e95d3dec96850a605b3edb09aca4c9cd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fdc6c5b355b6ead4cb4b41210f1b0df5e210bbfdf7a9ef88f2910dc285e81184
MD5 3098a01afe2187c9cc4ddd991d0fecfa
BLAKE2b-256 d32ceea8deea678c78c91133fad4d46f8b12a8a661fb266be1cff55366aef8a7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 66f3330ce873cef63466bf75288b2d75a5d9f381ca6cb6eb312eb53cd860096c
MD5 53fc8edf73ece2d09c1052ffa0edcf9a
BLAKE2b-256 b3c648860243a12e0b1df1b59cad5923c008428f69e79b500475d69dae6f5169

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 833476f504f45bcecab8047d55b06834fa0fe45449a01bd5a0a20be7d460c173
MD5 7b09ca61d264c25a1575a6a447b88dab
BLAKE2b-256 a73c8271fa85afdb8df9e852efb768bdbbaae875848f3fb4ed78eadf38d900ce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f61b28022f7fdb4a211a4e7483da7cf450bdd5b29581181f4cff9e1e0ff25a39
MD5 85c2e669559ea3556d78a30ad9fd8c5c
BLAKE2b-256 35ef53e28b366a4cb6a7a9cd4337e0c5f0daf80f33a50776071d46da34de0aec

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 ff97695143b3c65833c25b1ed6c3c39936a2e436ef98f2c381ac5447957a8105
MD5 3fdb52abf85cb5f3531000d028c3f005
BLAKE2b-256 0dc7acc08cca95e78cf3718d6d7da2c49cec1181a92d0a0e117502442d3980f0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a9f04f6bf09daa85ef592e17ee2f76bb85dc3b4476c8d0255da0368e47061164
MD5 0919bb7a7fede14bbe30506be9405fac
BLAKE2b-256 fd8dc7df824fe48c6aff08f66bd09552cc63b7a2a0678b0b2306fe0fe7d3aaa5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a21505e85c4271b21a3bdf1cb416727b8062614bd2260ac48490e04e15fea9cc
MD5 cfacfb105c9ef0aaded4d559038d4328
BLAKE2b-256 fcfde82dd04eab50f349201df1a15ca25428870b6a74a7265ea5b56e517cbc58

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 6a9c198098d0ff18678c12fc30f39aedc763886255eb9c3af9c61dcab91997e4
MD5 87ab678f969bf5367a3b1af8f5228756
BLAKE2b-256 17ad4dfdcd89ef27651798e8985a2614c7946ad0ae9633fff736c94c64d66bb0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vmecpp-0.7.2-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9eaf8b56787e6f2c7ad2407e7821a8ae9cc7e1fdcc456bb947ee849caaa57c49
MD5 e37509dc3389bcefb18220a55ce187ae
BLAKE2b-256 ff83b18f95207265efca821c6dfc129928db5f4e3e8b0051facc26261b572568

See more details on using hashes here.

Provenance

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

0.7.3

19 files

This release

0.7.2 This release

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