Searched refs:AinvBd (Results 1 – 2 of 2) sorted by relevance
| /petsc/src/ksp/ksp/utils/schurm/ |
| H A D | schurm.c | 481 Mat P, B, C, D, E = NULL, Bd, AinvBd, sub = NULL; in MatSchurComplementComputeExplicitOperator() local 492 PetscCall(PetscObjectQuery((PetscObject)A, "AinvB", (PetscObject *)&AinvBd)); in MatSchurComplementComputeExplicitOperator() 493 set = (PetscBool)(AinvBd != NULL); in MatSchurComplementComputeExplicitOperator() 494 …if (set && AinvBd->cmap->N == -1) PetscFunctionReturn(PETSC_SUCCESS); // early bail out if compose… in MatSchurComplementComputeExplicitOperator() 501 …AinvBd->cmap->N >= A->cmap->N, PetscObjectComm((PetscObject)A), PETSC_ERR_ARG_SIZ, "Composed Mat s… in MatSchurComplementComputeExplicitOperator() 502 PetscCall(MatGetType(AinvBd, &mtype)); in MatSchurComplementComputeExplicitOperator() 503 if (AinvBd->cmap->N > A->cmap->N) { in MatSchurComplementComputeExplicitOperator() 506 PetscCall(MatDuplicate(AinvBd, MAT_DO_NOT_COPY_VALUES, &Bd)); in MatSchurComplementComputeExplicitOperator() 507 … PetscCall(MatDenseGetSubMatrix(Bd, PETSC_DECIDE, PETSC_DECIDE, A->cmap->N, AinvBd->cmap->N, s)); in MatSchurComplementComputeExplicitOperator() 508 …PetscCall(MatDenseGetSubMatrix(AinvBd, PETSC_DECIDE, PETSC_DECIDE, A->cmap->N, AinvBd->cmap->N, s … in MatSchurComplementComputeExplicitOperator() [all …]
|
| /petsc/src/ksp/pc/impls/bddc/ |
| H A D | bddcschurs.c | 268 Mat B, C, D, Bd, Cd, AinvBd; in PCBDDCComputeExplicitSchur() local 305 PetscCall(MatDuplicate(Bd, MAT_DO_NOT_COPY_VALUES, &AinvBd)); in PCBDDCComputeExplicitSchur() 306 PetscCall(MatMatSolve(fact, Bd, AinvBd)); in PCBDDCComputeExplicitSchur() 314 PetscCall(MatMatMult(Ainvd, Bd, MAT_INITIAL_MATRIX, fill, &AinvBd)); in PCBDDCComputeExplicitSchur() 321 PetscCall(MatDuplicate(Bd, MAT_DO_NOT_COPY_VALUES, &AinvBd)); in PCBDDCComputeExplicitSchur() 324 PetscCall(MatDenseGetArray(AinvBd, &arraysol)); in PCBDDCComputeExplicitSchur() 335 PetscCall(MatDenseRestoreArray(AinvBd, &arrayrhs)); in PCBDDCComputeExplicitSchur() 346 PetscCall(MatMatMult(Cd, AinvBd, reuse, fill, S)); in PCBDDCComputeExplicitSchur() 349 PetscCall(MatTransposeMatMult(Bd, AinvBd, reuse, fill, S)); in PCBDDCComputeExplicitSchur() 352 PetscCall(MatDestroy(&AinvBd)); in PCBDDCComputeExplicitSchur()
|