---
# System prepended metadata

title: '[ICON4Py] Combined solve non_hydro stencils'
tags: [cycle 29 05/25]

---

## [ICON4Py] Continuing work on combined solve_nonhydro stencils

<!-- Add the tag for the current cycle number in the top bar -->

- Shaped by: Nikki
- Appetite (FTEs, weeks): 2 FTEs, 2 weeks 
- Developers: Nikki, Chia Rui, Yilu, Christoph, Magdalena 

## Problem
Current work on the implementation of combined stencils in solve_nonhydro is on hold as there are gt4py issues that needs to be resolved, i.e. `gtfn` backend fails in combination with `concat_where`.


## Appetite
A big bulk of the work is already done but some fixes and/or unforeseen problems might arise. 2 weeks with 2 FTEs should suffice. 

## Solution
Other backends, such as `dace_cpu` can be used to continue the work while waiting for `gtfn` fixes to be in place. However, unless the latter is fixed, nothing can be merged.

## No-gos
<!-- Anything specifically excluded from the concept: functionality or use cases we intentionally aren’t covering to fit the ## appetite or make the problem tractable -->

## Progress
<!-- Don't fill during shaping. This area is for collecting TODOs during building. As first task during building add a preliminary list of coarse-grained tasks for the project and refine them with finer-grained items when it makes sense as you work on them. -->

As per the previous cycle, this is our progress:

Combined stencils integration - solve nonhydro:
- [x] Stencils 1 to 13
    - [x] Data set serialized
    - [x] Code update wrt to latest dycore version
    - [x] Datatest implementation
    - [x] Datatest passed
    - [x] Stencil test adjustments
    - [x] Cleanup and re-naming
    - [x] Integration in solve_nonhydro 
    - [x] Stencil merged
    
- [x] Stencils (14) 15 to 28 (The file name is changed to `compute_edge_diagnostics_for_dycore_and_update_vn.py`. There are two separate programs,  `compute_theta_rho_face_values_and_pressure_gradient_and_update_vn` is called in the predictor step, while `apply_divergence_damping_and_update_vn` in the corrector step)
    - [x] Data set serialized
    - [X] Code update wrt to latest dycore version
    - [X] Datatest implementation
    - [x] Datatest passed
    - [x] Stencil test adjustments
    - [x] Cleanup and re-naming
    - [x] Integration in solve_nonhydro 
    - [x] Stencil merged
    
- [ ] Stencils 30 to 38
    - [x] Data set serialized
    - [x] Code implemented
    - [x] Datatest implementation
    - [ ] Datatest passed
    - [ ] Cleanup and re-naming
    - [ ] Integration in solve_nonhydro 
    - [ ] Stencil merged

- [ ] Stencils 41 to 60
    - [x] Data set serialized
    - [X] Code update wrt to latest dycore version
    - [x] Datatest implementation
    - [x] Datatest passed
    - [x] Stencil test adjustments
    - [x] Cleanup and re-naming
    - [x] Integration in solve_nonhydro 
    - [ ] Stencil merged
   
- [ ] Stencils 61 to 65 (Not relevant for now, not much performance gain)
    - [ ] Data set serialized
    - [ ] Code update wrt to latest dycore version
    - [ ] Datatest implementation
    - [ ] Datatest passed
    - [ ] Stencil test adjustments
    - [ ] Cleanup
    - [ ] Integration in solve_nonhydro 
    - [ ] Stencil merged