Skip to content

Bump pyrcel from 1.3.5 to 2.0.0 in /examples#1907

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/examples/pyrcel-2.0.0
Open

Bump pyrcel from 1.3.5 to 2.0.0 in /examples#1907
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/examples/pyrcel-2.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 26, 2026

Copy link
Copy Markdown
Contributor

Bumps pyrcel from 1.3.5 to 2.0.0.

Release notes

Sourced from pyrcel's releases.

pyrcel v2.0.0

This is a major release. The numerical core has been rewritten from scratch on JAX + diffrax, replacing the numba + Assimulo/SUNDIALS stack from v1. The public interface is largely unchanged; see the migration guide for the handful of breaking changes.

Added

  • Differentiable integration — the full parcel model is now differentiable end-to-end via jax.grad. Gradients flow through the ODE solve, the equilibration step, and the activation diagnostics.
  • Batched ensemble runsrun_updraft_ensemble and smax_nact_ensemble run an array of independent parcel solves in a single compiled jax.vmap kernel with no Python loop overhead.
  • GPU acceleration — pass device="gpu" to ParcelModel or set JAX_PLATFORM_NAME=gpu; install with pip install "pyrcel[gpu]".
  • ModelOutputParcelModel.run() returns a structured ModelOutput object with .to_pandas(), .to_polars(), .to_xarray(), .to_netcdf(), .to_csv(), and .to_parquet().
  • Short-circuit run modesrun(mode="smax") returns the peak supersaturation as a plain float (ideal for the differentiable path); run(mode="nd") returns the activated droplet number concentration.
  • InterpolatedUpdraft — a JAX-traceable, vmap-safe time-varying updraft specified by (ts, Vs) arrays. Replaces bare callables from v1.
  • JAX-native activation parameterizationsARG2000 and MBN2014 are now differentiable callable classes in pyrcel.activation; the underlying implementations are fully jax.jit- and jax.grad-compatible.
  • Hermite cubic S_max refinement — S_max is now located via a single-kernel Hermite cubic interpolant of the terminal supersaturation trajectory, giving a grid-independent peak estimate without a second ODE solve.
  • console=True mode — pretty-prints setup tables, phase timers (with first-compile detection), trajectory sample, and activation summary without adding any overhead to the compiled solve.
  • live=True mode — streams a z/T/S step table during integration, replicating the interactive output of the v1 CVode integrator.
  • pyrcel.legacy subpackage — the original NumPy/SciPy implementations of thermodynamics and activation functions are preserved here for cross-validation; they are not part of the v2 numerical path.
  • MkDocs/Material documentation site — full rebuild with API reference (mkdocstrings), migration guide, numerical methods description, worked examples, and GPU setup guide.
  • Python 3.11, 3.12, and 3.13 support.
  • PEP 561 type annotations throughout the public API, validated with pyrefly.

Changed

... (truncated)

Changelog

Sourced from pyrcel's changelog.

[2.0.0] — unreleased

This is a major release. The numerical core has been rewritten from scratch on JAX + diffrax, replacing the numba + Assimulo/SUNDIALS stack from v1. The public interface is largely unchanged; see the migration guide for the handful of breaking changes.

Added

  • Differentiable integration — the full parcel model is now differentiable end-to-end via jax.grad. Gradients flow through the ODE solve, the equilibration step, and the activation diagnostics.
  • Batched ensemble runsrun_updraft_ensemble and smax_nact_ensemble run an array of independent parcel solves in a single compiled jax.vmap kernel with no Python loop overhead.
  • GPU acceleration — pass device="gpu" to ParcelModel or set JAX_PLATFORM_NAME=gpu; install with pip install "pyrcel[gpu]".
  • ModelOutputParcelModel.run() returns a structured ModelOutput object with .to_pandas(), .to_polars(), .to_xarray(), .to_netcdf(), .to_csv(), and .to_parquet().
  • Short-circuit run modesrun(mode="smax") returns the peak supersaturation as a plain float (ideal for the differentiable path); run(mode="nd") returns the activated droplet number concentration.
  • InterpolatedUpdraft — a JAX-traceable, vmap-safe time-varying updraft specified by (ts, Vs) arrays. Replaces bare callables from v1.
  • JAX-native activation parameterizationsARG2000 and MBN2014 are now differentiable callable classes in pyrcel.activation; the underlying implementations are fully jax.jit- and jax.grad-compatible.
  • Hermite cubic S_max refinement — S_max is now located via a single-kernel Hermite cubic interpolant of the terminal supersaturation trajectory, giving a grid-independent peak estimate without a second ODE solve.
  • console=True mode — pretty-prints setup tables, phase timers (with first-compile detection), trajectory sample, and activation summary without adding any overhead to the compiled solve.
  • live=True mode — streams a z/T/S step table during integration, replicating the interactive output of the v1 CVode integrator.
  • pyrcel.legacy subpackage — the original NumPy/SciPy implementations of thermodynamics and activation functions are preserved here for cross-validation; they are not part of the v2 numerical path.
  • MkDocs/Material documentation site — full rebuild with API reference (mkdocstrings), migration guide, numerical methods description, worked examples, and GPU setup guide.
  • Python 3.11, 3.12, and 3.13 support.
  • PEP 561 type annotations throughout the public API, validated with pyrefly.

Changed

... (truncated)

Commits
  • 977e909 chore: fix pyproject.toml deprecations and MANIFEST.in for v2.0
  • b856b5e ci: add PyPI trusted publishing workflow
  • 1b643b6 docs: add CHANGELOG.md for v2.0.0 release
  • 94fea68 feat(v2): merge pyrcel v2.0 JAX/diffrax implementation into master
  • 2ecfe5f chore(merge): resolve modify/delete conflicts — keep v2 deletions of legacy R...
  • 3b7ca2c refactor(integrator): single-kernel Hermite cubic S_max (closes #78, #79) (#81)
  • 2500b93 fix: post-hoc Hermite cubic S_max finder + live/no-terminate NaN fix (#80)
  • d1c202c docs: convert RST math directives to MkDocs arithmatex syntax
  • 1fa2f01 docs(sweep): update sensitivity_sweep.md for 3-column figure
  • 142457b feat(sweep): larger fonts, denser ticks, horizontal bottom colorbars
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [pyrcel](https://github.com/darothen/pyrcel) from 1.3.5 to 2.0.0.
- [Release notes](https://github.com/darothen/pyrcel/releases)
- [Changelog](https://github.com/darothen/pyrcel/blob/master/CHANGELOG.md)
- [Commits](darothen/pyrcel@v1.3.5...v2.0.0)

---
updated-dependencies:
- dependency-name: pyrcel
  dependency-version: 2.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Jun 26, 2026
@codecov

codecov Bot commented Jun 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.07%. Comparing base (f942453) to head (ef221b5).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1907   +/-   ##
=======================================
  Coverage   87.07%   87.07%           
=======================================
  Files         420      420           
  Lines       10751    10751           
=======================================
  Hits         9361     9361           
  Misses       1390     1390           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants