- No No-gos section. The pitch template asks for one — it is what keeps the appetite honest.
Problem
The original approach question: interface with Kokkos/TMX vs port TMX to GT4py - is resolved. @jcanton has ported TMX to GT4py in PR#1359, but it ships as a standalone granule with its own state objects and savepoint tests, it is not wired into anything that runs. Our PhysicsDriver already runs muphys as a Component; Tmx needs the same treatment so we can aim for running warm bubble experiment in icon4py as one of our milestones.
Appetite
Solution
-
The Physics driver PR#1301 needs to be merged (working the 3rd round of review).
-
The Tmx port PR#1359 needs to be verified and reviewed.
-
Wrap the TMX granule as a second Component behind the existing driver protocol, using the same adaper shape muphys uses. New files only inside the tmx package, so re-merges of the still moving PR#1359 stay clean, plus a small opt-in change to the driver
-
Two static states (metrics + interpolation) for TMX are assembled by pure fetch from the field factories, exactly like DiffusionMetricState/Diffusion. The interpolation coefficients already exist; the seven metrics fields which are not used in other component should be added to the common MetricsFactory as proviers (formulas from mo_vertical_grid.f90), so they are veirified in the common metrics datatest and reusable by future physics.
-
The data flow will mirror Muphys:
- a
TmxState.gather gathers T/p/u/v/air_mass/cv_air from the prognostic.
- a
TmxComponent.__call__ wraps the the tmx.run(), which returns tendencies
- a
TmxState.scatter updates the tedencies to prognostics states
-
Testing:
- The Tmx granule itself is already verified independently inside the PR #1359. We will run a full APE_aes with
muphys + TMX completes, verify with exclaim_ape_aesPhys_v06
Rabbit holes
- TMX interfaces with jsbach for exchanges with land. We are not touching that this cycle. We are implementing a simplified land instead.
No-gos
Progress
Reported at the review of 11.08.2026, in the deck's own words.
Physics driver with Muphys and TMX:
- https://github.com/C2SM/icon4py/pull/1301 Merged - verified with v07 data
- https://github.com/C2SM/icon4py/pull/1360 To be finished - verifying with v08
tmx port (claude):
- ~15k lines in 48 hours
- tests passing with good data (v08)
The bet was placed at the cycle-37 table and was not re-bet at cycle 38, but the
work ran on into it and is still open. @havogt joined during cycle 38 and began
carving #1359 into pieces that can be reviewed on their own; @OngChia is
reviewing them as they arrive:
- https://github.com/C2SM/icon4py/pull/1457 Merged 14.09.2026 - the package,
its configuration and the static states
- https://github.com/C2SM/icon4py/pull/1458 Open - the prescribed surface fluxes
- https://github.com/C2SM/icon4py/pull/1475 Open - the diagnostics component
#1359 itself stays open as the trunk the pieces are cut from, and #1360 waits on
it.