Skip to main content
`Ctrl`+`K`

# PetscDSRegister

Adds a new `PetscDS` implementation

## Synopsis

    #include "petscds.h"
    PetscErrorCode PetscDSRegister(const char sname[], PetscErrorCode (*function)(PetscDS))

Not Collective; No Fortran Support

## Input Parameters

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

- function - The creation routine itself

## Example Usage

        PetscDSRegister("my_ds", MyPetscDSCreate);

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

        PetscDSCreate(MPI_Comm, PetscDS *);
        PetscDSSetType(PetscDS, "my_ds");

or at runtime via the option

        -petscds_type my_ds

## Note

`PetscDSRegister()` may be called multiple times to add several user-defined `PetscDSs`

## See Also

`PetscDSType`, `PetscDS`, `PetscDSRegisterAll()`, `PetscDSRegisterDestroy()`

## Level

advanced

## Location

src/dm/dt/interface/dtds.c

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