:orphan:
# DMStagCreateCompatibleDMStag
create a compatible `DMSTAG` with different dof/stratum
## Synopsis
```
PetscErrorCode DMStagCreateCompatibleDMStag(DM dm, PetscInt dof0, PetscInt dof1, PetscInt dof2, PetscInt dof3, DM *newdm)
```
Collective
## Input Parameters
- ***dm -*** the `DMSTAG` object
- ***dof0 -*** number of dof on the first stratum in the new `DMSTAG`
- ***dof1 -*** number of dof on the second stratum in the new `DMSTAG`
- ***dof2 -*** number of dof on the third stratum in the new `DMSTAG`
- ***dof3 -*** number of dof on the fourth stratum in the new `DMSTAG`
## Output Parameter
- ***newdm -*** the new, compatible `DMSTAG`
## Notes
DOF supplied for strata too big for the dimension are ignored; these may be set to `0`.
For example, for a 2-dimensional `DMSTAG`, `dof2` sets the number of dof per element,
and `dof3` is unused. For a 3-dimensional `DMSTAG`, `dof3` sets the number of DOF per element.
In contrast to `DMDACreateCompatibleDMDA()`, coordinates are not reused.
## See Also
[](ch_stag), `DMSTAG`, `DMDACreateCompatibleDMDA()`, `DMGetCompatibility()`, `DMStagMigrateVec()`
## Level
intermediate
## Location
src/dm/impls/stag/stagutils.c
## Examples
src/dm/impls/stag/tutorials/ex1.c
src/dm/impls/stag/tutorials/ex2.c
src/dm/impls/stag/tutorials/ex3.c
src/dm/impls/stag/tutorials/ex4.c
src/dm/impls/stag/tutorials/ex6.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/stag/stagutils.c)
[Index of all DMStag routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)