# CharacteristicRegisterDynamic

Adds a solver to the method of characteristics package.

### Synopsis

    PetscErrorCode CharacteristicRegisterDynamic(char *name_solver,char *path,char *name_create,PetscErrorCode (*routine_create)(Characteristic))

Not Collective

### Input Parameters

| name_solver | - name of a new user-defined solver
| path | - path (either absolute or relative) the library containing this solver
| name_create | - name of routine to create method context
| routine_create | - routine to create method context

### Notes

CharacteristicRegisterDynamic() may be called multiple times to add several user-defined solvers.

If dynamic libraries are used, then the fourth input argument (routine_create) is ignored.

### Sample usage

       CharacteristicRegisterDynamic("my_solver",/home/username/my_lib/lib/libO/solaris/mylib.a,
                   "MySolverCreate",MySolverCreate);

Then, your solver can be chosen with the procedural interface via

        CharacteristicSetType(ksp,"my_solver")

or at runtime via the option

        -characteristic_type my_solver

Notes: Environmental variables such as ${PETSC_ARCH}, ${PETSC_DIR}, ${PETSC_LIB_DIR}, ${BOPT}, and others of the form ${any_environmental_variable} occuring in pathname will be replaced with appropriate values. If your function is not being put into a shared library then use CharacteristicRegister() instead

### Keywords

Characteristic, register

### See Also

CharacteristicRegisterAll(), CharacteristicRegisterDestroy()

Level:advanced
Location: src/contrib/semiLagrange/characteristic.h
Index of all SemiLagrange routines
Table of Contents for all manual pages
Index of all manual pages