Skip to content

Bump croissant to v5.3.0.dev3: pole regression fixed, confirmed against Raul - #14

Merged
christianhbye merged 2 commits into
mainfrom
deps/croissant-v5.3.0.dev3-pole-check
Sep 15, 2026
Merged

christianhbye merged 2 commits into
mainfrom
deps/croissant-v5.3.0.dev3-pole-check

Conversation

@christianhbye

Copy link
Copy Markdown
Collaborator

Summary

This PR moves the croissant pin to v5.3.0.dev3, which contains the fix for the pole regression reported in christianhbye/croissant#152 (fixed by christianhbye/croissant#153). It also adds that environment to the Raul comparison notebook as a third run.

Impact: the North Pole regression that #12 introduced is fixed, and is confirmed against Raul's reference simulator. Mean |mistsim − Raul| and the arch ratio (mid-day residual over edge residual):

test main (croissant 5.1.4) #12 (croissant v5.3.0.dev2) this PR (croissant v5.3.0.dev3)
MARS, with mountains 2.356 K, arch 4.01 1.303 K, arch 1.42 1.297 K, arch 1.38
MARS, no mountains 2.260 K, arch 7.23 0.921 K, arch 1.15 0.899 K, arch 1.12
North Pole, no mountains 4.389 K, arch 2.49 117.527 K, arch 1.00 0.873 K, arch 1.26
  • The result can be pinned on the #152 fix. Move onto croissant v5.3.0.dev2 and its s2fft fork; put sky alm in the Earth frame of date #12 and this PR differ only in croissant: uv.lock changes nothing except croissant-sim. Between v5.3.0.dev2 and v5.3.0.dev3, croissant's package source changed only in src/croissant/rotations.py, which is the #152 fix. So the North Pole recovery (117.527 K → 0.873 K) and the small MARS shifts come from that fix. main vs Move onto croissant v5.3.0.dev2 and its s2fft fork; put sky alm in the Earth frame of date #12 can't be pinned on one cause the same way, because those environments also differ in s2fft and jax.
  • Southpole data can be regenerated. At the southpole site's runs.yaml start time and latitude −90, the error in croissant's reconstructed rotation is 1.4° under 5.1.4, 38.5° under v5.3.0.dev2 and 0.000° under v5.3.0.dev3. The warning against regenerating data/synthetic_data/southpole-*.npz is lifted.

Changes

  • pyproject.toml, uv.lock: croissant pin moves from v5.3.0.dev2 to v5.3.0.dev3 (commit a3e4f42, prepared by croissant's scripts/bump_consumers.py). The s2fft fork pin and jax are unchanged.
  • notebooks/sim_comparisons/raul_comparison.ipynb:
    • Each environment is now labelled by the croissant git ref its pin requested. The old hasattr(cro.rotations, "eq2cirs") check would have labelled v5.3.0.dev3 as "PR 12". The two environments already recorded keep their labels.
    • Runs are listed in chronological order instead of filename order.
    • Cell 0 describes all three environments, what each comparison can attribute, and how to set up each kernel.
    • The results cell is rewritten for three environments, and the southpole warning is lifted.

Verification

  • uv run pytest: 111 passed on the bump commit.
  • The notebook executes end to end. v5.3.0.dev3 was simulated fresh (cache tag 5.2.1+git58bf56e); the other two environments load from cache. No cell errors, and data/beam.npz and data/feko_beam.npz were not modified.
  • Untested: the cell 0 setup commands for the v5.3.0.dev2 kernel (a worktree at ee3aca5). They follow the same pattern as the 5.1.4 kernel setup, which was tested.

🤖 Generated with Claude Code

https://claude.ai/code/session_012qDDdFg7x9CVkj4EGVT8AE

christianhbye and others added 2 commits September 14, 2026 18:25
Moves the pin from v5.3.0.dev2 to v5.3.0.dev3.

Prepared by croissant's scripts/bump_consumers.py; this passed
against the new pin:

    uv run --all-extras pytest -q tests/test_beam.py tests/test_horizon.py tests/test_map.py tests/test_rotation_investigation.py tests/test_sim.py tests/test_sky.py
Run the comparison under the v5.3.0.dev3 pin as a third environment. The
North Pole disagreement with Raul drops from 117.527 K under PR 12 to
0.873 K, and the MARS tests shift slightly (1.303 -> 1.297 K and
0.921 -> 0.899 K). PR 12 and v5.3.0.dev3 differ only in croissant, whose
package source changed only in rotations.py, the fix for croissant#152,
so the recovery is attributable to that fix.

Label each environment by the croissant git ref its pin requested. The
eq2cirs check would have labelled v5.3.0.dev3 as PR 12. The two recorded
environments keep their labels through KNOWN_LABELS. List runs in
chronological order rather than filename order.

Rewrite cell 0 and the results cell for three environments, and lift the
warning against regenerating the southpole synthetic data: the rotation
error at that site is 0.000 degrees under v5.3.0.dev3.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qDDdFg7x9CVkj4EGVT8AE
@christianhbye
christianhbye merged commit a16469c into main Sep 15, 2026
6 checks passed
@christianhbye
christianhbye deleted the deps/croissant-v5.3.0.dev3-pole-check branch September 15, 2026 20:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant