36 #ifndef PCTWOLEVELSBLOCKDIAGONAL_HPP_
37 #define PCTWOLEVELSBLOCKDIAGONAL_HPP_
56 #if (PETSC_VERSION_MAJOR == 3 && PETSC_VERSION_MINOR >= 1) //PETSc 3.1 or later
57 PetscErrorCode PCTwoLevelsBlockDiagonalApply(PC pc_context,
Vec x,
Vec y);
59 PetscErrorCode PCTwoLevelsBlockDiagonalApply(
void* pc_context,
Vec x,
Vec y);
Mat A22_B2_matrix_subblock
~PCTwoLevelsBlockDiagonal()
void PCTwoLevelsBlockDiagonalSetUp()
VecScatter A22_B2_scatter_ctx
VecScatter A11_scatter_ctx
PCTwoLevelsBlockDiagonalContext mPCContext
void PCTwoLevelsBlockDiagonalCreate(KSP &rKspObject, std::vector< PetscInt > &rBathNodes)
Mat A22_B1_matrix_subblock
PCTwoLevelsBlockDiagonal(KSP &rKspObject, std::vector< PetscInt > &rBathNodes)
VecScatter A22_B1_scatter_ctx