Skip to main content
`Ctrl`+`K`

# DMPlexSetAdjacencyUser

Define adjacency in the mesh using a user-provided callback

## Synopsis

    #include "petscdmplex.h"
    #include "petscdmlabel.h"
    PetscErrorCode DMPlexSetAdjacencyUser(DM dm, PetscErrorCode (*user)(DM, PetscInt, PetscInt *, PetscInt[], void *), PetscCtx ctx)

## Input Parameters

- dm - The DM object

- user - The user callback, may be `NULL` (to clear the callback)

- ctx - context for callback evaluation, may be `NULL`

## Notes

The caller of `DMPlexGetAdjacency()` may need to arrange that a large enough array is available for the adjacency.

Any setting here overrides other configuration of `DMPLEX` adjacency determination.

## See Also

`DMPLEX`, `DMSetAdjacency()`, `DMPlexDistribute()`, `DMPlexPreallocateOperator()`, `DMPlexGetAdjacency()`, `DMPlexGetAdjacencyUser()`

## Level

advanced

## Location

src/dm/impls/plex/plexdistribute.c

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