Skip to main content
`Ctrl`+`K`

# DMStagRestrictSimple

restricts data from a fine to a coarse `DMSTAG`, in the simplest way

## Synopsis

    #include "petscdmstag.h"
    PetscErrorCode DMStagRestrictSimple(DM dmf, Vec xf, DM dmc, Vec xc)

Values on coarse cells are averages of all fine cells that they cover. Thus, values on vertices are injected, values on edges are averages of the underlying two fine edges, and values on elements in d dimensions are averages of \(2^d\) underlying elements.

## Input Parameters

- dmf - fine `DM`

- xf - data on fine `DM`

- dmc - coarse `DM`

## Output Parameter

- xc - data on coarse `DM`

## See Also

DMSTAG: Staggered, Structured Grid, `DMSTAG`, `DM`, `DMRestrict()`, `DMCoarsen()`, `DMCreateInjection()`

## Level

advanced

## Location

src/dm/impls/stag/stagmulti.c

## Implementations

DMStagRestrictSimple_1d() in src/dm/impls/stag/stag1d.c
DMStagRestrictSimple_2d() in src/dm/impls/stag/stag2d.c
DMStagRestrictSimple_3d() in src/dm/impls/stag/stag3d.c

Index of all DMStag routines
Table of Contents for all manual pages
Index of all manual pages