DMPlexIsInterpolatedCollective#
Find out to what extent the DMPLEX
is topologically interpolated (in collective manner).
Synopsis#
#include "petscdmplex.h"
PetscErrorCode DMPlexIsInterpolatedCollective(DM dm, DMPlexInterpolatedFlag *interpolated)
Collective
Input Parameter#
dm - The
DMPLEX
object
Output Parameter#
interpolated - Flag whether the
DM
is interpolated
Notes#
Unlike DMPlexIsInterpolated()
, this is collective so the results are guaranteed to be the same on all ranks.
This function will return DMPLEX_INTERPOLATED_MIXED
if the results of DMPlexIsInterpolated()
are different on different ranks.
Developer Notes#
Initially, plex->interpolatedCollective = DMPLEX_INTERPOLATED_INVALID
.
If plex->interpolatedCollective == DMPLEX_INTERPOLATED_INVALID
, this function calls DMPlexIsInterpolated()
which sets plex->interpolated.
MPI_Allreduce()
is then called and collectively consistent flag plex->interpolatedCollective is set and returned;
if plex->interpolated varies on different ranks, plex->interpolatedCollective = DMPLEX_INTERPOLATED_MIXED
,
otherwise sets plex->interpolatedCollective = plex->interpolated.
If plex->interpolatedCollective != DMPLEX_INTERPOLATED_INVALID
, this function just returns plex->interpolatedCollective.
See Also#
Level#
intermediate
Location#
src/dm/impls/plex/plexinterpolate.c
Index of all DMPlex routines
Table of Contents for all manual pages
Index of all manual pages