:orphan:
# 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
src/dm/impls/plex/plexinterpolate.c
## Implementations
DMPlexIsInterpolated_Internal in src/dm/impls/plex/plexinterpolate.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plexinterpolate.c)
[Index of all DMPlex routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)