:orphan:
# DMSetNearNullSpaceConstructor
Provide a callback function which constructs the near-nullspace for a given field, defined with `DMAddField()`
## Synopsis
```
#include "petscdm.h"
#include "petscdmlabel.h"
#include "petscds.h"
PetscErrorCode DMSetNearNullSpaceConstructor(DM dm, PetscInt field, PetscErrorCode (*nullsp)(DM, PetscInt, PetscInt, MatNullSpace *))
```
Logically Collective; No Fortran Support
## Input Parameters
- ***dm -*** The `DM`
- ***field -*** The field number for the nullspace
- ***nullsp -*** A callback to create the near-nullspace
## Calling sequence of `nullsp`
```none
PetscErrorCode nullsp(DM dm, PetscInt origField, PetscInt field, MatNullSpace *nullSpace)
```
- ***dm -*** The present `DM`
- ***origField -*** The field number given above, in the original `DM`
- ***field -*** The field number in dm
- ***nullSpace -*** The nullspace for the given field
## See Also
[](ch_dmbase), `DM`, `DMAddField()`, `DMGetNearNullSpaceConstructor()`, `DMSetNullSpaceConstructor()`, `DMGetNullSpaceConstructor()`, `DMCreateSubDM()`, `DMCreateSuperDM()`,
`MatNullSpace`
## Level
intermediate
## Location
src/dm/interface/dm.c
## Examples
src/snes/tutorials/ex17.c
src/ts/tutorials/ex53.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/interface/dm.c)
[Index of all DM routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)