Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website
Loading...
Searching...
No Matches
distribution.h File Reference

A rank's share of a distributed mesh: owned cells, halo layers and the halo exchange plan. More...

#include <cstdint>
#include <vector>

Go to the source code of this file.

Classes

struct  Distribution
 Local numbering: owned cells first (in global order), then halo layer 1, 2, ... Every local cell keeps its global id. More...
 

Functions

void plan_halo_exchange (Distribution &dist, const std::vector< int > &halo_owner)
 Fill the exchange plan of dist, whose cells are numbered, from the owner of each of its halo cells (collective): each rank asks the owners for its halo cells, and the requests it receives become its send lists.
 
void trim_halo_exchange (Distribution &dist, const std::vector< uint8_t > &needed)
 Keep in the exchange plan only the halo cells marked in needed (local cells); each neighbor stops sending the others. Collective.
 

Variables

constexpr const char * PARTITION_ZONE = "__partition__"
 Boundary zone of local faces that border cells of other ranks.
 

Detailed Description

A rank's share of a distributed mesh: owned cells, halo layers and the halo exchange plan.

Author
Matthew Bonanni (mbona.nosp@m.nni0.nosp@m.01@gm.nosp@m.ail..nosp@m.com)
Version
0.3
Date
2026-10-02

Function Documentation

◆ plan_halo_exchange()

void plan_halo_exchange ( Distribution &  dist,
const std::vector< int > &  halo_owner 
)

Fill the exchange plan of dist, whose cells are numbered, from the owner of each of its halo cells (collective): each rank asks the owners for its halo cells, and the requests it receives become its send lists.

◆ trim_halo_exchange()

void trim_halo_exchange ( Distribution &  dist,
const std::vector< uint8_t > &  needed 
)

Keep in the exchange plan only the halo cells marked in needed (local cells); each neighbor stops sending the others. Collective.

Variable Documentation

◆ PARTITION_ZONE

constexpr const char* PARTITION_ZONE = "__partition__"
inlineconstexpr

Boundary zone of local faces that border cells of other ranks.