xref: /petsc/src/ts/characteristic/interface/mocregis.c (revision af33a6ddd8c26b2cc9ba32efc1680b0f4477c91d)
1*af33a6ddSJed Brown #include <../src/ts/characteristic/characteristicimpl.h>  /*I "characteristic.h" I*/
2*af33a6ddSJed Brown 
3*af33a6ddSJed Brown EXTERN_C_BEGIN
4*af33a6ddSJed Brown extern PetscErrorCode CharacteristicCreate_DA(Characteristic);
5*af33a6ddSJed Brown EXTERN_C_END
6*af33a6ddSJed Brown 
7*af33a6ddSJed Brown /*
8*af33a6ddSJed Brown     This is used by CharacteristicSetType() to make sure that at least one
9*af33a6ddSJed Brown     CharacteristicRegisterAll() is called. In general, if there is more than one
10*af33a6ddSJed Brown     DLL, then CharacteristicRegisterAll() may be called several times.
11*af33a6ddSJed Brown */
12*af33a6ddSJed Brown extern PetscBool  CharacteristicRegisterAllCalled;
13*af33a6ddSJed Brown 
14*af33a6ddSJed Brown #undef __FUNCT__
15*af33a6ddSJed Brown #define __FUNCT__ "CharacteristicRegisterAll"
16*af33a6ddSJed Brown /*@C
17*af33a6ddSJed Brown   CharacteristicRegisterAll - Registers all of the Krylov subspace methods in the Characteristic package.
18*af33a6ddSJed Brown 
19*af33a6ddSJed Brown   Not Collective
20*af33a6ddSJed Brown 
21*af33a6ddSJed Brown   Level: advanced
22*af33a6ddSJed Brown 
23*af33a6ddSJed Brown .keywords: Characteristic, register, all
24*af33a6ddSJed Brown 
25*af33a6ddSJed Brown .seealso:  CharacteristicRegisterDestroy()
26*af33a6ddSJed Brown @*/
27*af33a6ddSJed Brown PetscErrorCode CharacteristicRegisterAll(const char path[])
28*af33a6ddSJed Brown {
29*af33a6ddSJed Brown   PetscErrorCode ierr;
30*af33a6ddSJed Brown 
31*af33a6ddSJed Brown   PetscFunctionBegin;
32*af33a6ddSJed Brown   CharacteristicRegisterAllCalled = PETSC_TRUE;
33*af33a6ddSJed Brown 
34*af33a6ddSJed Brown   ierr = CharacteristicRegisterDynamic(CHARACTERISTICDA, path, "CharacteristicCreate_DA", CharacteristicCreate_DA);CHKERRQ(ierr);
35*af33a6ddSJed Brown   PetscFunctionReturn(0);
36*af33a6ddSJed Brown }
37