DMPlexIsInterpolated#
Find out to what extent the DMPLEX
is topologically interpolated.
Synopsis#
#include "petscdmplex.h"
PetscErrorCode DMPlexIsInterpolated(DM dm, DMPlexInterpolatedFlag *interpolated)
Not Collective
Input Parameter#
dm - The
DMPLEX
object
Output Parameter#
interpolated - Flag whether the
DM
is interpolated
Notes#
Unlike DMPlexIsInterpolatedCollective()
, this is NOT collective
so the results can be different on different ranks in special cases.
However, DMPlexInterpolate()
guarantees the result is the same on all.
Unlike DMPlexIsInterpolatedCollective()
, this cannot return DMPLEX_INTERPOLATED_MIXED
.
Developer Notes#
Initially, plex->interpolated = DMPLEX_INTERPOLATED_INVALID
.
If plex->interpolated == DMPLEX_INTERPOLATED_INVALID
, DMPlexIsInterpolated_Internal()
is called.
It checks the actual topology and sets plex->interpolated on each rank separately to one of
DMPLEX_INTERPOLATED_NONE
, DMPLEX_INTERPOLATED_PARTIAL
or DMPLEX_INTERPOLATED_FULL
.
If plex->interpolated != DMPLEX_INTERPOLATED_INVALID
, this function just returns plex->interpolated.
DMPlexInterpolate()
sets plex->interpolated = DMPLEX_INTERPOLATED_FULL
,
and DMPlexUninterpolate() sets plex->interpolated = DMPLEX_INTERPOLATED_NONE
.
See Also#
DMPLEX
, DMPlexInterpolate()
, DMPlexIsInterpolatedCollective()
Level#
intermediate
Location#
Implementations#
DMPlexIsInterpolated_Internal in src/dm/impls/plex/plexinterpolate.c
Index of all DMPlex routines
Table of Contents for all manual pages
Index of all manual pages