#include "petscis.h" PetscErrorCode ISRegister(const char sname[], PetscErrorCode (*function)(IS))Not Collective
name | - The name of a new user-defined creation routine | |
create_func | - The creation routine itself |
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
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.