Skip to content

Tags: proximafusion/vmecpp

Tags

v0.4.12

Toggle v0.4.12's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
CIbuildwheel MacOS fix (#404)

CIbuildwheel update. Minimum supported linux version changed from manylinux2014 to manylinux_2_28

v0.4.12rc0

Toggle v0.4.12rc0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add lrfp_logical_ flag to wout for Fortran VMEC compatibility (Python…

…-only) (#399)

Add lrfp_logical_ flag to wout for Fortran VMEC compatibility (Python-only) (#399)

## Summary

Fixed CI error `AttributeError: 'vmecpp.cpp._vmecpp.WOutFileContents' object has no attribute 'lrfp'` by properly handling the Python-only `lrfp` field during Python<->C++ conversions.

## Changes Made

- [x] **Reverted all C++ changes**: Removed lrfp from VmecINDATA, WOutFileContents, and pybind11 bindings
- [x] **Removed lrfp from VmecInput**: No C++ backend to support it as an input parameter
- [x] **Kept lrfp in VmecWOut**: Handles reading from and writing to Fortran wout files
- [x] **Removed test_lrfp_flag_in_wout()**: Existing tests cover the functionality
- [x] **Kept lrfp__logical__ removal from _MISSING_FORTRAN_VARIABLES**: Python side now handles it
- [x] **Added lrfp to _CPP_WOUT_SPECIAL_HANDLING**: Skips the field during Python<->C++ conversion
- [x] **Set lrfp default in _from_cpp_wout**: Initializes to False when converting from C++ to Python

## What Remains

**Python-side only** (`src/vmecpp/__init__.py`):
- `VmecWOut.lrfp` field with Pydantic annotations for NetCDF serialization
- `VmecWOut.lrfp__logical__()` property for Fortran compatibility
- Backwards compatibility: `setdefault("lrfp__logical__", 0)` for old wout files
- Removed from `_MISSING_FORTRAN_VARIABLES` list in tests
- Added to `_CPP_WOUT_SPECIAL_HANDLING` to skip during Python<->C++ conversions
- Default value set to `False` in `_from_cpp_wout()` method

This allows loading Fortran VMEC wout files with lrfp flag without requiring special handling, while keeping implementation minimal on Python side only and properly handling C++ interop.

<!-- START COPILOT CODING AGENT SUFFIX -->

<!-- START COPILOT ORIGINAL PROMPT -->

<details>

<summary>Original prompt</summary>

> add the lrfp_logical_ with default to false to the wout, to allow them to avoid having to treat VMEC++ files in any special way. Use the same pattern for adding a boolean flag as for the other flags (accessible as lrfp property from python, but written to netcdf with the logical suffix) and make sure wout files WITHOUT the flags, stay backwards compatible.

</details>

<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more [Copilot coding agent tips](https://gh.io/copilot-coding-agent-tips) in the docs.

Co-authored-by: copilot-swe-agent <198982749+copilot-swe-agent@users.noreply.github.com>

v0.4.11

Toggle v0.4.11's commit message

Verified

This commit was signed with the committer’s verified signature.
jurasic-pf Philipp Jurašić
szip requirement in netcdf, limit version (#397)

**This fixes the pip wheel failiure**

The new NetCDF version made szip a hard requirement. Since we ship binary dependencies with the wheel, we decided to limit the netcdf version for now instead of shipping a larger binary package.

This is not a permanent solution, and if it becomes a problem, we need to add szip to the linux images for the wheel build.

v0.4.10

Toggle v0.4.10's commit message
Migrate VmecINDATA to use Eigen for vectors

Addresses #208 and contributes to #165.

v0.4.9

Toggle v0.4.9's commit message
Get the TSan/Archer setup working again (#384)

v0.4.8

Toggle v0.4.8's commit message
Use hot-restart for Fourier resolution increments. (#378)

Add an example that showcases how to use VMEC++'s hot-restart feature to incrementally increase the Fourier resolution of a run, similar to the radial resolution increases via `ns_array`.

v0.4.7

Toggle v0.4.7's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Default factories to silence warnings (#373)

v0.4.6

Toggle v0.4.6's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add UV to pypi_publish CI (#372)

v0.4.5

Toggle v0.4.5's commit message

Verified

This commit was signed with the committer’s verified signature.
jurasic-pf Philipp Jurašić
Improved Sphinx docs (Cleaned up docstrings and config) (#358)

- Added examples and fourier basis
![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/F1748S3pel37W3EgvXFk/df7ac4e7-ffd9-4a11-a397-7eba5395f7af.png)

- run and VmecInput show up at the top instead of JxBout
![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/F1748S3pel37W3EgvXFk/ed308fe2-59ce-4305-84dc-15f0f170e31b.png)

- Made sure latex and code blocks are rendered correctly
![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/F1748S3pel37W3EgvXFk/a0abfc63-b5e9-44d9-b5ab-9eb7be6fa6e2.png)

- Make sure the example plot shows up in the online docs (relative filepath issue) <img width="918" height="687" alt="image" src="https://github.com/user-attachments/assets/e1bf487b-ed9a-4dea-b6b9-adadfb420910" />

v0.4.4

Toggle v0.4.4's commit message

Verified

This commit was signed with the committer’s verified signature.
jurasic-pf Philipp Jurašić
Execute python -m vmecpp as vmecpp from CLI (#354)