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: static PetscBool KSPMatRegisterAllCalled = PETSC_FALSE;

  7: /*@C
  8:   KSPMatRegisterAll - Registers all matrix implementations in the `KSP` package.

 10:   Not Collective

 12:   Level: advanced

 14: .seealso: [](chapter_ksp), `Mat`, `MatRegister()`, `MatRegisterAll()`, `KSPInitializePackage()`
 15: @*/
 16: PetscErrorCode KSPMatRegisterAll(void)
 17: {
 18:   if (KSPMatRegisterAllCalled) return 0;
 19:   KSPMatRegisterAllCalled = PETSC_TRUE;
 20:   MatRegister(MATSCHURCOMPLEMENT, MatCreate_SchurComplement);
 21:   MatRegister(MATLMVMDFP, MatCreate_LMVMDFP);
 22:   MatRegister(MATLMVMBFGS, MatCreate_LMVMBFGS);
 23:   MatRegister(MATLMVMSR1, MatCreate_LMVMSR1);
 24:   MatRegister(MATLMVMBROYDEN, MatCreate_LMVMBrdn);
 25:   MatRegister(MATLMVMBADBROYDEN, MatCreate_LMVMBadBrdn);
 26:   MatRegister(MATLMVMSYMBROYDEN, MatCreate_LMVMSymBrdn);
 27:   MatRegister(MATLMVMSYMBADBROYDEN, MatCreate_LMVMSymBadBrdn);
 28:   MatRegister(MATLMVMDIAGBROYDEN, MatCreate_LMVMDiagBrdn);
 29:   return 0;
 30: }