---
# System prepended metadata

title: FVM unstructured Implementation
tags: [functional cycle 10]

---

# FVM unstructured Implementation

###### tags: `functional cycle 10`

Appetite: As needed and available.

Developer: Till

## Goals

The goal of this project is to setup Christian Kühnlein for the productive development of the full unstructured FVM dycore.

## Current state

The FVM advection on the sphere solver using a simple upwind scheme is working with the functional frontend, but is in an unclean state.

## Steps

- Cleanup FVM advection sphere solver.
    - Cleanup grid.
    - Make plotting practical.
    - Cleanup periodic halo update.
    - Cleanup workarounds for missing features in field view.
- Extend existing upstream scheme to full MPDATA.
    - This will be tackled by Christian with close assistance from me (Till).
    - We will start with the embedded backend due to lack of alternatives and switch to C++ as soon as possible.
- Test everything with the C++ backend.
- Setup code base for the development of the unstructured dycore. How to share code with the cartesian dycore without losing productivity? What needs to be implemented for that and who can tackle that? Whenever sharing is not possible how can we avoid desync?
  The following parts are of particular importance:
    - Config
    - Grid
    - Field container
    - Field initialization
    - Time stepping
    - Helmholtz pressure solver
    - Line-Jacobi preconditioner
- Optional: Very course performance assesment. What problem sizes can we expect to run? What are the big bottlenecks? Note that this is not meant as a performance assesment of the C++ backend.