Skip to content

For Release 2025.05.00#162

Merged
FlorianDeconinck merged 22 commits into
mainfrom
develop
Jun 2, 2025
Merged

For Release 2025.05.00#162
FlorianDeconinck merged 22 commits into
mainfrom
develop

Conversation

@fmalatino
Copy link
Copy Markdown
Contributor

@fmalatino fmalatino commented Jun 2, 2025

Description

This PR will bring the changes from develop into the main branch for release 2025.05.00

For the record, this is a revamp of #160, which we had to close after #161 merged and the PR didn't update as expected. Now we have a clean merge base.

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules
  • New check tests, if applicable, are included

romanc and others added 22 commits April 17, 2025 09:38
Markdown error fixes, formatting updates, and minor rewording of the
document.

Co-authored-by: Roman Cattaneo <1116746+romanc@users.noreply.github.com>
* No threshold / perturbation analysis by default

Currently, when translate tests fail, we run 10 (by default) times the
same translate test/savepoint again with slightly perturbed inputs. The
outputs are then analyzed to give developers an indication on whether
errors that they are seeing are in the expected range of "noise
propagation" or if this is more likely to be an error in porting.

* Rename {PACE -> NDSL}_TEST_N_THRESHOLD_SAMPLES
* Unrelated fix typos
- fix typos
- capitalize words at the start of a sentence
- add point a point at the end of a sentence

---------

Co-authored-by: Roman Cattaneo <1116746+romanc@users.noreply.github.com>
…#126)

* Ability to import gt4py tools from within NDSL.

gt4py can no longer be imported independently when using NDSL, it must be run through NDSL to ensure proper precision

* linting

* added missing imports

* added missing function

* linting
* Ochestration with ConstantPropagation

ConstantPropagation is part of the standard simplification pipeline. It
was previously skipped because of an issue. In the meantime, that issue
was resolved and we can propagate constants again.

---------

Co-authored-by: Roman Cattaneo <1116746+romanc@users.noreply.github.com>
Co-authored-by: Florian Deconinck <deconinck.florian@gmail.com>
* new constants

* adding some stencils and the stefan-boltzman constant

* adding namelist switches

* add dtypes

* update dtypes

* hydlb

* add triple point temp

* cleanup of some constants

* adding lsoil for lsm

* add method to create array from compute domain

* try ndim not 4d

* iop

* adding masked tridiag

* added default stzrt to nd storage data

* bool data handling

* oops

* added keyword to translate indices between Fortran and Python for translate tests

* ndsl/stencils/testing/translate.py

* remove break

* adding triple point constant

* update namelist

* oops

* better default

* intermediate commmit

* docstrings

* linting

---------

Co-authored-by: Roman Cattaneo <romanc@users.noreply.github.com>
…ntity (#141)

* Introduce `field` as a replacement for `quantity.view[:]`
Rename `data_array` as `data_as_xarray` and introduce `field_as_xarray`

* Unit tests

* Fix usage of `data_array`

* More fix

* Litn

* Add an halo read/write data/field test
* Adding sw_dynamics to NamelistDefaults

* Linting NamelistDefaults comments

* Add sw_dynamics to Namelist
#136

* retrigger checks
The function was replaced with `get_precision()` in 2025.03.00.

Co-authored-by: Roman Cattaneo <1116746+romanc@users.noreply.github.com>
* Simple test for gt4py wrapper

* Remove experimental features, which aren't in mainline yet

---------

Co-authored-by: Roman Cattaneo <1116746+romanc@users.noreply.github.com>
Co-authored-by: Roman Cattaneo <1116746+romanc@users.noreply.github.com>
* added keyword to translate indices between Fortran and Python for translate tests

* ndsl/stencils/testing/translate.py

* remove break

* adding triple point constant

* update namelist

* oops

* better default

* updating namelist and adding some basic operations

* linting and type safety

* update labels for docs, added TODO
* Field Bundle functional code for 4D array
Deferred type hint for data dimensions
Unit tests

* Fix imports

* Fix `dtype` lacking in type registration
Modernizing type hint
Docstrings
* Expose area for 64-bit
Make `ptop` available to GPU for orchestration

* Lint
* Save in/out of stencils and decorated functions

* Move `instrument` to debugger
Verbose code

* Log debugger on & config in debug

* Move @Instrument once more

* Add `track_by_parameter` and moved results in subdirectory

* Simplify configuration

* Minor fix to filename

* Fix stencils save
Check only when debugger present

* Normalize dims naming

* Use full qualified name when possible

* Lint

* Coarse documentation for debugger config

* Protect catch-all for in xarray failures that don't raise properly

* Config: allow for compute domain save in Quantity instead of full data field

* Added tools to plot pyFV3 data

* removed print statements

* renamed folders

* `plot_cube_sphere` public API

* FV3 README license ackgnoledgement

* Debugger knows how to serialize dataclasses
Better handling of types unknown to xarray

* Restore `Robinson` projection

* Lint

* Moar lint

* Remove `DebugMode`
Add warning for config not existing but set
Use Pathlib for cross-OS resilience

* Lint

* `cartopy` import is not optional

* Clear `__init__`

* lint

* Remove debug print

* Use `field` instead of `view[:]`

* Spelling

---------

Co-authored-by: Charles Kropiewnicki <charles.j.krop@gmail.com>
* Update gt4py imports in example notebooks

Follow-up from PR #126 which adds
an interface to gt4py as part of NDSL.

* Change tests to import from ndsl.dsl.gt4py

* Fix import from boilerplate

---------

Co-authored-by: Roman Cattaneo <1116746+romanc@users.noreply.github.com>
Notably, this includes

- refactor[cartesian|next] Move imports of implementation down one level #2045
- refactor[cartesian]: remove explicit use of boost #1971
- refactor[cartesian]: Remove __INLINED deprecation warning #2032

The full list of changes is
[here](GridTools/gt4py@1ba0a97...45324c8).

Co-authored-by: Roman Cattaneo <1116746+romanc@users.noreply.github.com>
Co-authored-by: Roman Cattaneo <1116746+romanc@users.noreply.github.com>
Co-authored-by: Roman Cattaneo <1116746+romanc@users.noreply.github.com>
Co-authored-by: Florian Deconinck <deconinck.florian@gmail.com>
Co-authored-by: Roman Cattaneo <1116746+romanc@users.noreply.github.com>
The one boost header that gt4py uses, comes now bundled with gt4py. We
can thus remove boost (headers) from the list of dependencies.

The docs were the only place left - as far as a quick search could see.

Co-authored-by: Roman Cattaneo <1116746+romanc@users.noreply.github.com>
* refactor: xarray is not an optional import (anymore)

* xarray: Fix checkpointer snapshots

* gt4py is not an optional dependency

* DaCe is not an optional dependency (anymore)

* mpi4py is not an optional dependency (anymore)

* Get optional imports in ndsl.optional_imports

* Cleanup blank gt4py imports

* remove #isort: skip

---------

Co-authored-by: Roman Cattaneo <1116746+romanc@users.noreply.github.com>
@fmalatino fmalatino requested review from FlorianDeconinck and romanc and removed request for FlorianDeconinck June 2, 2025 14:44
Copy link
Copy Markdown
Collaborator

@romanc romanc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

(remember to merge with a merge commit)

@FlorianDeconinck FlorianDeconinck merged commit 808dd20 into main Jun 2, 2025
5 checks passed
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.

6 participants