PETSc version 3.15.5
Fix/Edit manual page

# DMClone

Creates a DM object with the same topology as the original.

### Synopsis

    #include "petscdm.h"
    #include "petscdmlabel.h"
    #include "petscds.h"
    PetscErrorCode DMClone(DM dm, DM *newdm)

Collective

### Input Parameter

| dm | - The original DM object

### Output Parameter

| newdm | - The new DM object

### Notes

For some DM implementations this is a shallow clone, the result of which may share (referent counted) information with its parent. For example, DMClone() applied to a DMPLEX object will result in a new DMPLEX that shares the topology with the original DMPLEX. It does not share the PetscSection of the original DM.

The clone is considered set up iff the original is.

### See Also

DMDestroy(), DMCreate(), DMSetType(), DMSetLocalSection(), DMSetGlobalSection()

### Level

beginner

### Location

src/dm/interface/dm.c

### Examples

src/snes/tutorials/ex12.c.html
src/snes/tutorials/ex56.c.html
src/snes/tutorials/ex77.c.html
src/ts/tutorials/ex11.c.html
src/ts/tutorials/ex48.c.html
src/tao/tutorials/ex3.c.html

### Implementations

DMClone_DA in src/dm/impls/da/dacreate.c
DMClone_Forest in src/dm/impls/forest/forest.c
DMClone_pforest in src/dm/impls/forest/p4est/pforest.c
DMClone_Moab in src/dm/impls/moab/dmmoab.cxx
DMClone_Network in src/dm/impls/network/networkcreate.c
DMClone_Plex in src/dm/impls/plex/plexcreate.c
DMClone_Stag in src/dm/impls/stag/stag.c
Index of all DM routines
Table of Contents for all manual pages
Index of all manual pages