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