1 #include <petsc/private/kspimpl.h> /*I "petscsnes.h" I*/ 2 #include <../src/ksp/ksp/utils/schurm/schurm.h> 3 #include <../src/ksp/ksp/utils/lmvm/lmvm.h> 4 5 static PetscBool KSPMatRegisterAllCalled = PETSC_FALSE; 6 7 /*@C 8 KSPMatRegisterAll - Registers all matrix implementations in the `KSP` package. 9 10 Not Collective 11 12 Level: advanced 13 14 .seealso: [](ch_ksp), `Mat`, `MatRegister()`, `MatRegisterAll()`, `KSPInitializePackage()` 15 @*/ 16 PetscErrorCode KSPMatRegisterAll(void) 17 { 18 PetscFunctionBegin; 19 if (KSPMatRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS); 20 KSPMatRegisterAllCalled = PETSC_TRUE; 21 PetscCall(MatRegister(MATSCHURCOMPLEMENT, MatCreate_SchurComplement)); 22 PetscCall(MatRegister(MATLMVMDFP, MatCreate_LMVMDFP)); 23 PetscCall(MatRegister(MATLMVMBFGS, MatCreate_LMVMBFGS)); 24 PetscCall(MatRegister(MATLMVMSR1, MatCreate_LMVMSR1)); 25 PetscCall(MatRegister(MATLMVMBROYDEN, MatCreate_LMVMBrdn)); 26 PetscCall(MatRegister(MATLMVMBADBROYDEN, MatCreate_LMVMBadBrdn)); 27 PetscCall(MatRegister(MATLMVMSYMBROYDEN, MatCreate_LMVMSymBrdn)); 28 PetscCall(MatRegister(MATLMVMSYMBADBROYDEN, MatCreate_LMVMSymBadBrdn)); 29 PetscCall(MatRegister(MATLMVMDIAGBROYDEN, MatCreate_LMVMDiagBrdn)); 30 PetscFunctionReturn(PETSC_SUCCESS); 31 } 32