OpenPFC  0.1.4
Phase Field Crystal simulation framework
Loading...
Searching...
No Matches
decomposition_neighbors.hpp File Reference

Neighbor finding utilities for Decomposition. More...

#include <map>
#include <openpfc/core/decomposition.hpp>
#include <openpfc/core/types.hpp>
#include <optional>
Include dependency graph for decomposition_neighbors.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int pfc::decomposition::get_neighbor_rank (const Decomposition &decomp, int rank, const Int3 &direction)
 
std::map< Int3, intpfc::decomposition::find_face_neighbors (const Decomposition &decomp, int rank)
 
std::map< Int3, intpfc::decomposition::find_all_neighbors (const Decomposition &decomp, int rank)
 

Detailed Description

Neighbor finding utilities for Decomposition.

Provides functions to determine neighbor ranks in a 3D grid decomposition. Used for halo exchange patterns in finite difference methods.

auto decomp = decomposition::create(world, {2, 2, 2}); // 2×2×2 grid
int rank = 0;
// Find neighbor in +X direction (with periodic boundaries)
auto neighbor = decomposition::get_neighbor_rank(decomp, rank, {1, 0, 0});
// Always returns a valid neighbor rank (wraps around at boundaries)
// Find all 6 face neighbors (always 6 with periodic boundaries)
auto neighbors = decomposition::find_face_neighbors(decomp, rank);
// Returns map: direction -> neighbor_rank (always 6 entries)
See also
core/decomposition.hpp for Decomposition class
core/exchange.hpp for SparseVector exchange operations
Author
OpenPFC Development Team
Date
2025