Skip to main content
`Ctrl`+`K`

# PetscDualSpaceRegister

Adds a new `PetscDualSpaceType`

## Synopsis

    #include "petscfe.h"
    PetscErrorCode PetscDualSpaceRegister(const char sname[], PetscErrorCode (*function)(PetscDualSpace))

Not Collective, No Fortran Support

## Input Parameters

- sname - The name of a new user-defined creation routine

- function - The creation routine

## Example Usage

        PetscDualSpaceRegister("my_space", MyPetscDualSpaceCreate);

Then, your PetscDualSpace type can be chosen with the procedural interface via

        PetscDualSpaceCreate(MPI_Comm, PetscDualSpace *);
        PetscDualSpaceSetType(PetscDualSpace, "my_dual_space");

or at runtime via the option

        -petscdualspace_type my_dual_space

## Note

`PetscDualSpaceRegister()` may be called multiple times to add several user-defined `PetscDualSpace`

## See Also

`PetscDualSpace`, `PetscDualSpaceType`, `PetscDualSpaceRegisterAll()`, `PetscDualSpaceRegisterDestroy()`

## Level

advanced

## Location

src/dm/dt/dualspace/interface/dualspace.c

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