Lines Matching refs:pmat
45 Mat *pmat; /* The preconditioning diagonal block for each split */ member
99 return jac->pmat[1]; in FieldSplitSchurPre()
103 return jac->schur_user ? jac->schur_user : jac->pmat[1]; in FieldSplitSchurPre()
361 PetscCall(MatNestGetSize(pc->pmat, &bs, NULL)); in PCFieldSplitSetRuntimeSplits_Private()
471 if (pc->pmat) PetscCall(MatGetBlockSize(pc->pmat, &jac->bs)); in PCFieldSplitSetDefaults()
483 PetscCall(MatFindZeroDiagonals(pc->pmat, &zerodiags)); in PCFieldSplitSetDefaults()
498 PetscCall(MatFindOffBlockDiagonalEntries(pc->pmat, &coupling)); in PCFieldSplitSetDefaults()
515 Mat M = pc->pmat; in PCFieldSplitSetDefaults()
520 PetscCall(PetscObjectTypeCompare((PetscObject)pc->pmat, MATNEST, &isnest)); in PCFieldSplitSetDefaults()
589 if (pc->pmat) PetscCall(PetscObjectTypeCompare((PetscObject)pc->pmat, MATNEST, &matnest)); in PCSetUp_FieldSplit()
603 PetscCall(MatGetBlockSize(pc->pmat, &bs)); in PCSetUp_FieldSplit()
607 …PetscCall(PetscObjectTypeCompareAny((PetscObject)pc->pmat, &blk, MATBAIJ, MATSBAIJ, MATSEQBAIJ, MA… in PCSetUp_FieldSplit()
613 PetscCall(MatGetOwnershipRange(pc->pmat, &rstart, &rend)); in PCSetUp_FieldSplit()
661 PetscCall(MatNestGetSize(pc->pmat, &mis, &nis)); in PCSetUp_FieldSplit()
663 PetscCall(MatNestGetISs(pc->pmat, rowis, colis)); in PCSetUp_FieldSplit()
689 if (!jac->pmat) { in PCSetUp_FieldSplit()
692 PetscCall(MatCreateVecs(pc->pmat, &xtmp, NULL)); in PCSetUp_FieldSplit()
693 PetscCall(PetscMalloc1(nsplit, &jac->pmat)); in PCSetUp_FieldSplit()
699 PetscCall(PetscObjectQuery((PetscObject)ilink->is, "pmat", (PetscObject *)&jac->pmat[i])); in PCSetUp_FieldSplit()
700 if (jac->pmat[i]) { in PCSetUp_FieldSplit()
701 PetscCall(PetscObjectReference((PetscObject)jac->pmat[i])); in PCSetUp_FieldSplit()
703 jac->schur_user = jac->pmat[i]; in PCSetUp_FieldSplit()
709 …PetscCall(MatCreateSubMatrix(pc->pmat, ilink->is, ilink->is_col, MAT_INITIAL_MATRIX, &jac->pmat[i]… in PCSetUp_FieldSplit()
710 PetscCall(MatGetOptionsPrefix(jac->pmat[i], &prefix)); in PCSetUp_FieldSplit()
713 PetscCall(MatSetOptionsPrefix(jac->pmat[i], prefix)); in PCSetUp_FieldSplit()
715 PetscCall(MatSetFromOptions(jac->pmat[i])); in PCSetUp_FieldSplit()
716 PetscCall(MatViewFromOptions(jac->pmat[i], NULL, "-mat_view")); in PCSetUp_FieldSplit()
719 PetscCall(MatCreateVecs(jac->pmat[i], &jac->x[i], &jac->y[i])); in PCSetUp_FieldSplit()
726 if (sp) PetscCall(MatSetNearNullSpace(jac->pmat[i], sp)); in PCSetUp_FieldSplit()
735 PetscCall(MatGetNullSpaces(nsplit, jac->pmat, &nullsp)); in PCSetUp_FieldSplit()
736 for (i = 0; i < nsplit; i++) PetscCall(MatDestroy(&jac->pmat[i])); in PCSetUp_FieldSplit()
741 Mat pmat; in PCSetUp_FieldSplit() local
744 PetscCall(PetscObjectQuery((PetscObject)ilink->is, "pmat", (PetscObject *)&pmat)); in PCSetUp_FieldSplit()
745 …if (!pmat) PetscCall(MatCreateSubMatrix(pc->pmat, ilink->is, ilink->is_col, scall, &jac->pmat[i])); in PCSetUp_FieldSplit()
748 if (nullsp) PetscCall(MatRestoreNullSpaces(nsplit, jac->pmat, &nullsp)); in PCSetUp_FieldSplit()
775 jac->mat = jac->pmat; in PCSetUp_FieldSplit()
799 …PetscCall(MatCreateSubMatrix(pc->pmat, ilink->next->is, ilink->is, MAT_INITIAL_MATRIX, &jac->Afiel… in PCSetUp_FieldSplit()
812 … PetscCall(MatCreateSubMatrix(pc->pmat, ilink->next->is, ilink->is, scall, &jac->Afield[1])); in PCSetUp_FieldSplit()
822 … PetscCall(MatCreateSubMatrix(pc->pmat, ilink->is, NULL, MAT_INITIAL_MATRIX, &jac->Afield[i])); in PCSetUp_FieldSplit()
837 PetscCall(MatCreateSubMatrix(pc->pmat, ilink->is, NULL, scall, &jac->Afield[i])); in PCSetUp_FieldSplit()
853 PetscCall(MatIsSPDKnown(pc->pmat, &isset, &isspd)); in PCSetUp_FieldSplit()
855 PetscCall(MatIsSymmetricKnown(pc->pmat, &isset, &issym)); in PCSetUp_FieldSplit()
857 …ompareAny(jac->offdiag_use_amat ? (PetscObject)pc->mat : (PetscObject)pc->pmat, &flg, MATSEQSBAIJ,… in PCSetUp_FieldSplit()
871 …PetscCall(MatCreateSubMatrix(jac->offdiag_use_amat ? pc->mat : pc->pmat, ilink->is, ilink->next->i… in PCSetUp_FieldSplit()
872 …if (!flg) PetscCall(MatCreateSubMatrix(jac->offdiag_use_amat ? pc->mat : pc->pmat, ilink->next->is… in PCSetUp_FieldSplit()
874 PetscCall(MatIsHermitianKnown(jac->offdiag_use_amat ? pc->mat : pc->pmat, &isset, &flg)); in PCSetUp_FieldSplit()
879 …PetscCall(MatSchurComplementUpdateSubMatrices(jac->schur, jac->mat[0], jac->pmat[0], jac->B, jac->… in PCSetUp_FieldSplit()
887 if (kspA != kspInner) PetscCall(KSPSetOperators(kspA, jac->mat[0], jac->pmat[0])); in PCSetUp_FieldSplit()
888 if (kspUpper != kspA) PetscCall(KSPSetOperators(kspUpper, jac->mat[0], jac->pmat[0])); in PCSetUp_FieldSplit()
899 …PetscCall(MatCreateSubMatrix(jac->offdiag_use_amat ? pc->mat : pc->pmat, ilink->is, ilink->next->i… in PCSetUp_FieldSplit()
900 …if (!flg) PetscCall(MatCreateSubMatrix(jac->offdiag_use_amat ? pc->mat : pc->pmat, ilink->next->is… in PCSetUp_FieldSplit()
902 PetscCall(MatIsHermitianKnown(jac->offdiag_use_amat ? pc->mat : pc->pmat, &isset, &flg)); in PCSetUp_FieldSplit()
910 …PetscCall(MatSchurComplementSetSubMatrices(jac->schur, jac->mat[0], jac->pmat[0], jac->B, jac->C, … in PCSetUp_FieldSplit()
929 PetscCall(KSPSetOperators(kspInner, jac->mat[0], jac->pmat[0])); in PCSetUp_FieldSplit()
955 PetscCall(KSPSetOperators(jac->head->ksp, jac->mat[0], jac->pmat[0])); in PCSetUp_FieldSplit()
990 PetscCall(KSPSetOperators(jac->kspupper, jac->mat[0], jac->pmat[0])); in PCSetUp_FieldSplit()
1034 if (!LSC_L) PetscCall(PetscObjectQuery((PetscObject)pc->pmat, lscname, &LSC_L)); in PCSetUp_FieldSplit()
1037 PetscCall(PetscObjectQuery((PetscObject)pc->pmat, lscname, &LSC_L)); in PCSetUp_FieldSplit()
1043 …PetscCall(MatCreateSubMatrix(jac->offdiag_use_amat ? pc->mat : pc->pmat, ilink->is, ilink->next->i… in PCSetUp_FieldSplit()
1048 …PetscCall(MatCreateSubMatrix(jac->offdiag_use_amat ? pc->mat : pc->pmat, ilink->next->is, ilink->i… in PCSetUp_FieldSplit()
1074 PetscCall(KSPSetOperators(ilink->ksp, jac->mat[i], jac->pmat[i])); in PCSetUp_FieldSplit()
1689 PetscCall(PetscObjectTypeCompare((PetscObject)pc->pmat, MATNEST, &matnest)); in PCApply_FieldSplit()
1997 PetscCall(PetscObjectTypeCompare((PetscObject)pc->pmat, MATNEST, &matnest)); in PCApplyTranspose_FieldSplit()
2081 if (jac->mat && jac->mat != jac->pmat) { in PCReset_FieldSplit()
2086 if (jac->pmat) PetscCall(MatDestroyMatrices(jac->nsplits, &jac->pmat)); in PCReset_FieldSplit()
3139 if (A00) *A00 = jac->pmat[0]; in PCFieldSplitGetSchurBlocks()
3142 if (A11) *A11 = jac->pmat[1]; in PCFieldSplitGetSchurBlocks()