Lines Matching refs:B01
119 …Private(PC pc, Mat A, Mat N, Mat *B, const char *pcpre, Vec *diagonal = nullptr, Mat B01 = nullptr) in PCHPDDMSetAuxiliaryMatNormal_Private() argument
130 if (!B01) PetscCall(MatConvert(N, MATAIJ, MAT_INITIAL_MATRIX, B)); in PCHPDDMSetAuxiliaryMatNormal_Private()
131 else PetscCall(MatTransposeMatMult(B01, A, MAT_INITIAL_MATRIX, PETSC_DETERMINE, B)); in PCHPDDMSetAuxiliaryMatNormal_Private()
140 if (B01) { in PCHPDDMSetAuxiliaryMatNormal_Private()
141 PetscCall(PCHPDDMSplittingMatNormal_Private(B01, is, &splitting[1])); in PCHPDDMSetAuxiliaryMatNormal_Private()
142 PetscCall(MatDestroy(&B01)); in PCHPDDMSetAuxiliaryMatNormal_Private()
1355 static PetscErrorCode PCHPDDMCheckSymmetry_Private(PC pc, Mat A01, Mat A10, Mat *B01 = nullptr) in PCHPDDMCheckSymmetry_Private() argument
1363 if (B01) *B01 = nullptr; in PCHPDDMCheckSymmetry_Private()
1398 if (B01) PetscCall(MatDuplicate(T, MAT_COPY_VALUES, B01)); in PCHPDDMCheckSymmetry_Private()
1403 if (!B01) PetscCheck(flg, PetscObjectComm((PetscObject)pc), PETSC_ERR_SUP, "A01 != A10^T"); in PCHPDDMCheckSymmetry_Private()
1408 else *B01 = T; in PCHPDDMCheckSymmetry_Private()
1410 } else PetscCall(MatDestroy(B01)); in PCHPDDMCheckSymmetry_Private()
1416 if (!B01 || !*B01) PetscCall(MatDestroy(&T)); in PCHPDDMCheckSymmetry_Private()
2150 Mat B01; in PCSetUp_HPDDM() local
2155 PetscCall(PCHPDDMCheckSymmetry_Private(pc, A01, A10, &B01)); in PCSetUp_HPDDM()
2183 if (B01) PetscCall(MatDiagonalScale(B01, v, nullptr)); in PCSetUp_HPDDM()
2203 if (!B01) { /* symmetric case */ in PCSetUp_HPDDM()
2204 B01 = A01; in PCSetUp_HPDDM()
2205 PetscCall(PetscObjectReference((PetscObject)B01)); in PCSetUp_HPDDM()
2208 …if (B01 && B01 != A01) PetscCall(MatSetBlockSizesFromMats(B01, A01, A01)); /* TODO: remove this li… in PCSetUp_HPDDM()
2211 PetscCall(PCHPDDMSetAuxiliaryMatNormal_Private(pc, B, N, &P, pcpre, &diagonal, B01)); in PCSetUp_HPDDM()
2223 …} else PetscCall(PCSetOperators(pc, B01 ? P : N, P)); /* replace P by A01^T inv(diag(P00)) A01 … in PCSetUp_HPDDM()