Lines Matching refs:W
198 static PetscErrorCode PCDeflationSetSpace_Deflation(PC pc, Mat W, PetscBool transpose) in PCDeflationSetSpace_Deflation() argument
204 PetscCall(PetscObjectReference((PetscObject)W)); in PCDeflationSetSpace_Deflation()
207 def->Wt = W; in PCDeflationSetSpace_Deflation()
209 PetscCall(MatDestroy(&def->W)); in PCDeflationSetSpace_Deflation()
210 def->W = W; in PCDeflationSetSpace_Deflation()
238 PetscErrorCode PCDeflationSetSpace(PC pc, Mat W, PetscBool transpose) in PCDeflationSetSpace() argument
242 PetscValidHeaderSpecific(W, MAT_CLASSID, 2); in PCDeflationSetSpace()
244 PetscTryMethod(pc, "PCDeflationSetSpace_C", (PC, Mat, PetscBool), (pc, W, transpose)); in PCDeflationSetSpace()
408 PetscCall(MatMultHermitianTranspose(def->W, r, w1)); /* w1 <- W'*r */ in PCPreSolve_Deflation()
411 PetscCall(MatMult(def->W, w2, r)); /* r <- W*w2 */ in PCPreSolve_Deflation()
442 PetscCall(MatMultHermitianTranspose(def->W, r, w2)); /* w2 <- W'*r */ in PCApply_Deflation()
447 PetscCall(MatMult(def->W, w2, u)); /* u <- W*w2 */ in PCApply_Deflation()
475 if (def->W || def->Wt) { in PCSetUp_Deflation()
482 if (def->W) { in PCSetUp_Deflation()
483 PetscCall(PetscObjectTypeCompare((PetscObject)def->W, MATCOMPOSITE, &match)); in PCSetUp_Deflation()
485 PetscCall(MatCompositeGetType(def->W, &ctype)); in PCSetUp_Deflation()
486 PetscCall(MatCompositeGetNumberMat(def->W, &size)); in PCSetUp_Deflation()
489 PetscCall(MatCreateHermitianTranspose(def->Wt, &def->W)); in PCSetUp_Deflation()
501 for (i = 0; i < size; i++) PetscCall(MatCompositeGetMat(def->W, i, &mats[i])); in PCSetUp_Deflation()
503 PetscCall(MatDestroy(&def->W)); in PCSetUp_Deflation()
504 def->W = mats[size]; in PCSetUp_Deflation()
517 PetscCall(MatCompositeMerge(def->W)); in PCSetUp_Deflation()
543 PetscCall(MatDestroy(&def->W)); in PCSetUp_Deflation()
544 PetscCall(MatHermitianTranspose(def->Wt, MAT_INITIAL_MATRIX, &def->W)); in PCSetUp_Deflation()
553 PetscCall(MatHermitianTranspose(def->W, MAT_INITIAL_MATRIX, &def->Wt)); in PCSetUp_Deflation()
556 PetscCall(MatTransposeMatMult(def->W, Amat, MAT_INITIAL_MATRIX, PETSC_CURRENT, &def->WtA)); in PCSetUp_Deflation()
562 PetscCall(MatGetSize(def->W, NULL, &m)); in PCSetUp_Deflation()
564 PetscCall(MatMatMult(def->WtA, def->W, MAT_INITIAL_MATRIX, PETSC_CURRENT, &def->WtAW)); in PCSetUp_Deflation()
684 PetscCall(MatDestroy(&def->W)); in PCReset_Deflation()
854 def->W = NULL; in PCCreate_Deflation()