TaoRegister(char *name_solver,char *path,char *name_Create,PetscErrorCode (*routine_Create)(Tao))Not collective
| sname | - name of a new user-defined solver | |
| func | - routine to Create method context | 
   TaoRegister("my_solver",MySolverCreate);
Then, your solver can be chosen with the procedural interface via
    TaoSetType(tao,"my_solver")
or at runtime via the option
    -tao_type my_solver