---
# System prepended metadata

title: '[Greenline] Tracer Advection'
tags: [cycle 24 - 08/24]

---

# [Greenline] Tracer Advection

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

- Shaped by: Magdalena, David
- Appetite (FTEs, weeks): Full Cycle
- Developers: <!-- Filled in at the betting table unless someone is specifically required here -->

## Problem
<!-- The raw idea, a use case, or something we’ve seen that motivates us to work on this -->
The tracer advection stencils have been ported to GT4Py, so far there is no python granule to make tracer advection available fro the greenline.

GT4Py does not yet support parallelization over a container of fields. Hence we implement the
advection first for 1 tracer. Once GT4Py provides containers the interface can be adapted.

Tracer Advection might potentially be interfaced to ICON-EXCLAIM with py2fgen. -> we need a interface similar to diffusion.py



## Appetite
<!-- Explain how much time we want to spend and how that constrains the solution -->


## Solution
<!-- The core elements we came up with, presented in a form that’s easy for people to immediately understand -->
Create a python granule for horizontal advection scheme 2 (2nd order Miura, linear reconstruction) and horizontal limiter 4(positive definite).
The Advection scheme and the limiter should be composable/ interchangeable. 
We want to have the freedom to switch limiter for a given scheme.

The granule might advect only 1 tracer (see above).

First verification against ICON data should be setup with serialized input and output.

Convergence tests/study can be added if time is left.

### work on stencils

The advection stencils already exist but should be renamed where possible and domain bounds need to be added to most of them.

If any static fields need to ported that should be done during the project.

## Rabbit holes
<!-- Details about the solution worth calling out to avoid problems -->

## 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. -->

- [x] Task 1 ([PR#xxxx](https://github.com/GridTools/gt4py/pulls))
    - [x] Subtask A
    - [x] Subtask X
- [ ] Task 2
    - [x] Subtask H
    - [ ] Subtask J
- [ ] Discovered Task 3
    - [ ] Subtask L
    - [ ] Subtask S
- [ ] Task 4

