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