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