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

A rank's share of a distributed mesh. More...

#include "distribution.h"
#include <stdexcept>
#include <string>
#include <unordered_map>
#include "comm.h"

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.
 

Detailed Description

A rank's share of a distributed mesh.

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.