Skip to main content
`Ctrl`+`K`

# ISRegister

Adds a new index set implementation

## Synopsis

    #include "petscis.h"
    PetscErrorCode ISRegister(const char sname[], PetscErrorCode (*function)(IS))

Not Collective, No Fortran Support

## Input Parameters

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

- function - The creation routine itself

## Example Usage

        ISRegister("my_is_name",  MyISCreate);

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

        ISCreate(MPI_Comm, IS *);
        ISSetType(IS,"my_is_name");

or at runtime via the option

        -is_type my_is_name

## Notes

`ISRegister()` may be called multiple times to add several user-defined vectors

This is no `ISSetFromOptions()` and the current implementations do not have a way to dynamically determine type, so dynamic registration of custom `IS` types will be of limited use to users.

## See Also

Low-level Vector Communication, `IS`, `ISType`, `ISSetType()`, `ISRegisterAll()`, `ISRegisterDestroy()`

## Level

developer

## Location

src/vec/is/is/interface/isreg.c

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