Home
last modified time | relevance | path

Searched refs:AinvBd (Results 1 – 2 of 2) sorted by relevance

/petsc/src/ksp/ksp/utils/schurm/
H A Dschurm.c481 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()
501AinvBd->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 Dbddcschurs.c268 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()