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: }