Actual source code: kspmatregi.c
1: #include <petsc/private/kspimpl.h>
2: #include <../src/ksp/ksp/utils/schurm/schurm.h>
3: #include <../src/ksp/ksp/utils/lmvm/lmvm.h>
5: #if PetscDefined(HAVE_HTOOL)
6: PETSC_INTERN PetscErrorCode MatSolverTypeRegister_NestHtool(void);
7: #endif
9: static PetscBool KSPMatRegisterAllCalled = PETSC_FALSE;
11: /*@
12: KSPMatRegisterAll - Registers all matrix implementations in the `KSP` package.
14: Not Collective
16: Level: advanced
18: .seealso: [](ch_ksp), `Mat`, `MatRegister()`, `MatRegisterAll()`, `KSPInitializePackage()`
19: @*/
20: PetscErrorCode KSPMatRegisterAll(void)
21: {
22: PetscFunctionBegin;
23: if (KSPMatRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
24: KSPMatRegisterAllCalled = PETSC_TRUE;
25: PetscCall(MatRegister(MATSCHURCOMPLEMENT, MatCreate_SchurComplement));
26: PetscCall(MatRegister(MATLMVMDFP, MatCreate_LMVMDFP));
27: PetscCall(MatRegister(MATLMVMDDFP, MatCreate_LMVMDDFP));
28: PetscCall(MatRegister(MATLMVMBFGS, MatCreate_LMVMBFGS));
29: PetscCall(MatRegister(MATLMVMDBFGS, MatCreate_LMVMDBFGS));
30: PetscCall(MatRegister(MATLMVMDQN, MatCreate_LMVMDQN));
31: PetscCall(MatRegister(MATLMVMSR1, MatCreate_LMVMSR1));
32: PetscCall(MatRegister(MATLMVMBROYDEN, MatCreate_LMVMBrdn));
33: PetscCall(MatRegister(MATLMVMBADBROYDEN, MatCreate_LMVMBadBrdn));
34: PetscCall(MatRegister(MATLMVMSYMBROYDEN, MatCreate_LMVMSymBrdn));
35: PetscCall(MatRegister(MATLMVMSYMBADBROYDEN, MatCreate_LMVMSymBadBrdn));
36: PetscCall(MatRegister(MATLMVMDIAGBROYDEN, MatCreate_LMVMDiagBrdn));
37: #if PetscDefined(HAVE_HTOOL)
38: PetscCall(MatSolverTypeRegister_NestHtool());
39: #endif
40: PetscFunctionReturn(PETSC_SUCCESS);
41: }