Loading [MathJax]/extensions/tex2jax.js
PISM, A Parallel Ice Sheet Model 2.2.1-cd005eec8 committed by Constantine Khrulev on 2025-03-07
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Namespaces | Typedefs | Functions
label_components_parallel.cc File Reference
#include "pism/util/connected_components/label_components.hh"
#include "pism/util/connected_components/label_components_impl.hh"
#include "pism/util/Grid.hh"
#include "pism/util/array/Scalar.hh"
#include <cmath>
#include <map>
#include <mpi.h>
#include <queue>
#include <set>

Go to the source code of this file.

Namespaces

namespace  pism
 
namespace  pism::details
 
namespace  pism::connected_components
 

Typedefs

using pism::connected_components::Array = connected_components::details::PISMArray
 
using pism::connected_components::Mask = connected_components::details::Mask< Array >
 

Functions

static bool pism::details::west_boundary (const Grid &grid, int i)
 West boundary of a sub-domain.
 
static bool pism::details::east_boundary (const Grid &grid, int i)
 East boundary of a sub-domain.
 
static bool pism::details::north_boundary (const Grid &grid, int j)
 North boundary of a sub-domain.
 
static bool pism::details::south_boundary (const Grid &grid, int j)
 South boundary of a sub-domain.
 
static std::map< int, std::set< int > > pism::details::detect_connections (array::Scalar1 &mask)
 
static std::vector< intpism::details::pack_data (const std::map< int, std::set< int > > &graph)
 
static std::map< int, std::set< int > > pism::details::unpack_data (const std::vector< int > &buffer)
 
static std::map< int, std::set< int > > pism::details::assemble_graph (MPI_Comm comm, const std::map< int, std::set< int > > &subgraph)
 
static std::map< int, intpism::details::resolve_labels (const std::map< int, std::set< int > > &graph, bool mark_isolated_patches)
 
void pism::details::relabel (array::Scalar &mask, const std::map< int, int > &labels)
 Assign new labels to elements of mask. Does not touch background grid cells.
 
std::map< int, intpism::details::final_labels (array::Scalar1 &input, bool subdomain_is_not_empty, bool mark_isolated_patches)
 
int pism::details::first_label (const Grid &grid)
 
void pism::connected_components::label (array::Scalar1 &mask)
 
void pism::connected_components::label_isolated (array::Scalar1 &mask, int reachable)