Recent Releases of vmecpp

vmecpp - 0.4.8

Bug Fix

  • Fix a race condition in multithreaded evaluations that hit the "DELT reset" code path

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.4.7...0.4.8

- C++
Published by jurasic-pf 7 months ago

vmecpp - v0.4.7

Minor Changes

  • Default factories for input and output defaults to silence warnings in stricter python contexts.

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.4.6...v0.4.7

- C++
Published by jurasic-pf 7 months ago

vmecpp - v0.4.6

Bugfix

  • Fix makegrid's write to NetCDF file method by @jons-pf in https://github.com/proximafusion/vmecpp/pull/364
  • CLI main script terminates gracefully by @jurasic-pf in https://github.com/proximafusion/vmecpp/pull/365

New Features

  • exact profile evaluation by @jurasic-pf in https://github.com/proximafusion/vmecpp/pull/370

What's Changed

  • Faster cibuildwheel, Add UV to pypi_publish CI by @jurasic-pf in https://github.com/proximafusion/vmecpp/pull/369
  • Human readable termination reason by @jurasic-pf in https://github.com/proximafusion/vmecpp/pull/366
  • Added missing lasym terms to VmecWout by @jurasic-pf in https://github.com/proximafusion/vmecpp/pull/368
  • Backwards compatibility with very old VMEC files by @jurasic-pf in https://github.com/proximafusion/vmecpp/pull/371

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.4.5...v0.4.6

- C++
Published by jurasic-pf 7 months ago

vmecpp - v0.4.5

What's Changed

  • default constructible VmecInput (no need for the default() method anymore) by @jurasic-pf
  • improved documentation by @jurasic-pf
  • Preparatory work for asymmetric support by @krystophny in https://github.com/proximafusion/vmecpp/pull/360

New Contributors

  • @krystophny made their first contribution in https://github.com/proximafusion/vmecpp/pull/360

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.4.4...v0.4.5

- C++
Published by jurasic-pf 7 months ago

vmecpp - v0.4.4

What's Changed

  • Added docstrings for the majority of WOut quantities
  • Disable SZIP support in HDF5: not needed here
  • Add a naming guide for VMEC++
  • Consolidate algorithmic constants into comprehensive constants header by @jons-pf in https://github.com/proximafusion/vmecpp/pull/340
  • Various cleanups and additional documentations by @jons-pf
  • Make FourierBasisFastToroidal consistent with FourierBasisFastPoloidal. by @jons-pf in https://github.com/proximafusion/vmecpp/pull/349
  • Fix issue in simsopt_compat when boundary surface mpol and ntor differs from vmec indata mpol and ntor by @landreman in https://github.com/proximafusion/vmecpp/pull/352
  • Indata2json update to fix gfortran14 errors
  • vmecpp can now be called directly as CLI, without python -m vmecpp
  • Added radial, vertical and lambda force residual as well as reset reasons and delbsq to the diagnostics quantities in wout. Added an example of how to plot the convergence of a run
  • Better error messages for free boundary and the FATAL ERROR message on failed convergence

New Contributors

  • @landreman made their first contribution in https://github.com/proximafusion/vmecpp/pull/352

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.4.3...v0.4.4

- C++
Published by jurasic-pf 8 months ago

vmecpp - v0.4.3

Feature

  • Skip gradual vacuum pressure activation on hot-restart, speeding up hot-restart free-boundary convergence significantly

Bugfix

  • Output object didn't serialize correctly to json due to a bug in int32/int64 handling

Minor Changes

  • Restricted versions of our dependencies to fix compatibility issues with older library versions (jaxtyping, jax, pydantic)
  • Pass on verbose flag to correctly silence free-boundary outputs
  • Expanded VmecInput docstrings

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.4.2...v0.4.3

- C++
Published by jurasic-pf 10 months ago

vmecpp - v0.4.2

Minor Changes

  • Generalized wout handling, loading and saving supports arbitrary extra fields now. VmecWOut should now be compatible with wout files produced by any VMEC version or codes with similar output formats.
  • Improved vmecpp import time again by reducing required dependencies (Improved CLI experience)
  • None handling for ensure_vmec2000
  • Added more missing quantities, improving compatibility

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.4.1...v0.4.2

- C++
Published by jurasic-pf 10 months ago

vmecpp - v0.4.1

Minor Change

  • Pass Magnetic response table to Python layer by reference instead of value
  • Make the response table elements writable, so the field can be modified in place, instead of copied around.

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.4.0...v0.4.1

- C++
Published by jurasic-pf 10 months ago

vmecpp -

Breaking Changes

  • Added Pydantic models for free boundary related Quantities (Mgrid). The pybind11 internal types are no longer required to call vmecpp::run for free-boundary equilibria
  • Added progress/convergence quantities to output fsqt,wdot

Bugfix

  • [flow control] Converted two while to for loops, this should resolve rare instances when VMEC++ didn't terminate

Minor Changes

  • Added Py3.13 to the CI matrix, since it is officially supported
  • All dependencies are now built from source in bazel @jons-pf
  • Return status code/Python Exception instead of terminating when coils file is missing
  • Ported Proxima internal way of dealing with Pydantic+Numpy models to open source repo, to replace numpydantic and get more robust type + shape annotations

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.3.5...v0.4.0

- C++
Published by jurasic-pf 10 months ago

vmecpp - v0.3.5

Minor Changes

  • Added a VmecInput.default() factory method for Python API users
  • Error handling and checking for mgrid files
    • The correct default for mgrid_file is NONE
    • Raise error if mgrid mirror != NIL
  • Improvements to type hints
  • Fixed CI issues due to a changed SHA256 hash of the Eigen release on GitLab

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.3.4...v0.3.5

- C++
Published by jurasic-pf 10 months ago

vmecpp -

Minor Changes

  • Require keyword arguments for optional vmecpp::run arguments, to avoid confusion
  • More robust VmecWOut default value handling
  • added output quantity input_extension for better wout compatibility
  • Improved error handling for mgrid files
  • Docker build in CI

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.3.3...v0.3.4

- C++
Published by jurasic-pf 11 months ago

vmecpp -

Bugfix

  • isvmec2000 supports fortran comments and blank lines

Minor changes

  • Added a number of output quantities to the wout outputs, and fixed minor differences to VMEC2000 wout file format.
  • Added free boundary casess to pytest, so git lfs pull is required for the test suite to complete
  • CI improvements
  • Internal Refactorings
  • General improvements to exception handling

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.3.2...v0.3.3

- C++
Published by jurasic-pf 11 months ago

vmecpp - v0.3.2

Deprecate HDF5 save function on the OutputQuantities object in the _vmecpp namespace.

Bugfix

  • Fix PyPI CI by removing a blocking unit test (HDF5)

Known bugs

  • HDF5 writing in wheels build for linux is broken since v0.1.0, because of the old HDF5 version used in manylinux2014

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.3.1...v0.3.2

- C++
Published by jurasic-pf 11 months ago

vmecpp - v0.3.1

Bugfix

  • Fixed PyPi Publish CI

Minor changes

  • Internal API vmecpp.simsopt_compat._fortran_wout_adapterwas removed
  • More robust deserialization of VmecWout

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.3.0...v0.3.1

- C++
Published by jurasic-pf 11 months ago

vmecpp - v0.3.0

Breaking changes:

  • simsopt_compat.Vmec object uses high level CPP API, similar to vmecpp.run now
    • vmec.output_quantities are no longer of type OutputQuantities
    • vmec.wout is VmecWOut instead of FortranWoutAdapter

Bugfix:

  • Fixed typo in output quantities: ac_aux_f was called aic_aux_f

Minor changes

  • Changes to the build system enabled support for editable installs
  • Various CI improvements
  • Removed &END terminator when converting input to Fortran namelist files, only use the / terminator instead.
  • All our data models now support model_dump_json() and model_dump()for serialization
    • jaxtyping replaced with numpydantic
  • Various CI improvements
  • Removed test_files from the released wheel and sdist packages

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.2.1...v0.3.0

- C++
Published by jurasic-pf 11 months ago

vmecpp - v0.2.1

What's Changed

  • Fix problem with VmecppWOut.load_wout_file on files coming from Fortran VMEC. by @jons-pf in https://github.com/proximafusion/vmecpp/pull/171

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.2.0...v0.2.1

- C++
Published by eguiraud-pf 12 months ago

vmecpp - v0.2.0

What's Changed

  • Many large improvements to the build system
  • Added an option to return output quantities even if run did not converge
  • Bug fix: #174

New Contributors

  • @cianciosa made their first contribution in https://github.com/proximafusion/vmecpp/pull/113
  • @djs55 made their first contribution in https://github.com/proximafusion/vmecpp/pull/120
  • @jurasic-pf made their first contribution in https://github.com/proximafusion/vmecpp/pull/131
  • @ahnaf-tahmid-chowdhury made their first contribution in https://github.com/proximafusion/vmecpp/pull/134

Full Changelog: https://github.com/proximafusion/vmecpp/compare/v0.1.0...v0.2.0

- C++
Published by eguiraud-pf 12 months ago