xref: /petsc/src/ts/characteristic/interface/mocregis.c (revision af0996ce37bc06907c37d8d91773840993d61e62)
1*af0996ceSBarry Smith #include <petsc/private/characteristicimpl.h>  /*I "petsccharacteristic.h" I*/
2af33a6ddSJed Brown 
38cc058d9SJed 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 @*/
25607a6623SBarry Smith PetscErrorCode CharacteristicRegisterAll(void)
26af33a6ddSJed Brown {
27af33a6ddSJed Brown   PetscErrorCode ierr;
28af33a6ddSJed Brown 
29af33a6ddSJed Brown   PetscFunctionBegin;
300f51fdf8SToby Isaac   if (CharacteristicRegisterAllCalled) PetscFunctionReturn(0);
31af33a6ddSJed Brown   CharacteristicRegisterAllCalled = PETSC_TRUE;
32af33a6ddSJed Brown 
33bdf89e91SBarry Smith   ierr = CharacteristicRegister(CHARACTERISTICDA,  CharacteristicCreate_DA);CHKERRQ(ierr);
34af33a6ddSJed Brown   PetscFunctionReturn(0);
35af33a6ddSJed Brown }
36