---
# System prepended metadata

title: Brainstorming cycle 12
tags: [functional cycle 12]

---

# Brainstorming cycle 12

###### tags: `functional cycle 12`

1. Embedded field view
2. Python dycore
    - enables experimenting with e.g. halo exchanges
    - good starting point for readability refactoring
    - maybe single node verification
3. Aquaplanet on daint
    - LAM dycore -> Global dycore
    - Install software dependencies on Daint
    - Merge `icon-dsl` with `aquaplanet_gpu_features`
    - Enable restart and tolerance testing for `exclaim_ape_R2B04`
5. Graupel scheme
    - Scalar IF staments, IF statement sugar, nested IFs.
    - think about optimized returning CellDim field (hotfix Till). return 1D Fields from scan_operator.
    - Pass runtime scalars, 2D fields to scan()
    - Pass optional fields (kwargs) to program and scan. Test if they are None
    - Need to pre-allocate everything we return to carry -> disregarding temporaries should work when calling scan from field operator
    - functions/elemental functions
    - Support ellipsis expansion  for scan definition and init. E.g. carry: tuple[float, ...] and init=(0.0, ...).
6. Cartesian GT4Py Release?
7. GT4Py features
    - functional while (or scalar_operator) requirement for graupel
    - nested_scan (Lagrangian something) requirement for tracer adv and 2-mom microphysics
    - structures (dataclasses) (nice to have)
    - expandable parameters (tuple of fields): unrolls to do several tracers in a single kernel (very nice to have)
    - iterate over index list (or is there a higher level construct that can expand to mask or index list) (nice to have)
    - casting between dtypes (required for tracer adv)
    - index builtin (workaround: pass a field)
    - finish missing pieces of existing features in operators
8. GPU support from Python for compiled backends
     - New storages API in declarative
9. Unstructured compiled backend from prototype to clean
10. Preprocessor
11. Low-level CUDA backend
12. Remove dusk/dawn
    - move and clean some dawn headers
    - use spack everywhere
13. Implement the last 4 stencils (required for remove dusk/dawn)
14. Cleanup verification in multinode setup -> cooldown?

