:orphan: # 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 ## Sample usage ```none PetscDSRegister("my_ds", MyPetscDSCreate); ``` Then, your PetscDS type can be chosen with the procedural interface via ```none PetscDSCreate(MPI_Comm, PetscDS *); PetscDSSetType(PetscDS, "my_ds"); ``` or at runtime via the option ```none -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 --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/dt/interface/dtds.c) [Index of all DT routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)