# 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 DM 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
 `DMPlexInterpolate()`, `DMPlexIsInterpolatedCollective()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/plex/plexinterpolate.c.html#DMPlexIsInterpolated">src/dm/impls/plex/plexinterpolate.c</A>

## Implementations

<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/plex/plexinterpolate.c.html#DMPlexIsInterpolated_Internal">DMPlexIsInterpolated_Internal in src/dm/impls/plex/plexinterpolate.c</A><BR>


---
[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](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
