Skip to content
boeschf edited this page Mar 12, 2019 · 5 revisions

Welcome to the GHEX wiki!

Generic exascale-ready library for halo-exchange operations

Here we shall describe the concepts as we go and try to keep them up to date.

Grid description / Domain decomposition

When working with generic data originating from different physical applications it is necessary to be able to describe the topology and decomposition of the relevant data. This description shall be gathered in a generic grid description which is able to handle different meshes and their domain decompositions. Note that we are not considering grids/meshes with less than 3 dimensions. Some examples of grids and their spatial decompositions are

  • 2-Dimensional regular grids + vertical dimension (regional weather and climate simulations)
    • decomposition along first or first and second dimension
  • N-Dimensional regular grids (hypercube)
    • decomposition along n <= N dimensions
  • inflated icosahedral surface mesh + vertical dimension (global weather and climate simulations)
    • decomposition?
  • inflated cube surface mesh + vertical dimension (global weather and climate simulations)
    • decomposition?
  • 2-Dimensional unstructured grid (can be surface grid of a sphere) + vertical dimension
    • decomposition along space filling curve?
  • completely unstructured mesh in N>2 dimensions
    • decomposition along space filling curve?

All of the grids/meshes may hold data fields of any type, i.e. they can store scalars, vectors, tensors... of floating point types, cardinal types (and possibly user defined types -> need to be serializable?).

In general, we need a concept to describe

  • the coordinate/location for any given cell (and possibly edge for staggered grids),
  • the portion of the topology/mesh that is local and
  • a way to find the neighbour information
    • this can be either shell wise (face/vertex neighbours of cells) or
    • by specifying halos (only for regular grids, can be asymmetric)
Clone this wiki locally