Lines Matching refs:diag

56 …Vec          diag;     /* vector containing the reciprocals of the diagonal elements of the matrix…  member
144 static PetscErrorCode PCJacobiGetDiagonal_Jacobi(PC pc, Vec diag, Vec diagsqrt) in PCJacobiGetDiagonal_Jacobi() argument
150 …PetscCheck(j->diag || j->diagsqrt, comm, PETSC_ERR_ARG_WRONGSTATE, "Jacobi diagonal has not been c… in PCJacobiGetDiagonal_Jacobi()
151 …PetscCheck(!diag || (diag && j->diag), comm, PETSC_ERR_ARG_WRONGSTATE, "Jacobi diagonal not availa… in PCJacobiGetDiagonal_Jacobi()
154 if (diag) PetscCall(VecCopy(j->diag, diag)); in PCJacobiGetDiagonal_Jacobi()
175 Vec diag, diagsqrt; in PCSetUp_Jacobi() local
200 diag = jac->diag; in PCSetUp_Jacobi()
203 if (diag) { in PCSetUp_Jacobi()
206 PetscCall(VecLockReadPop(diag)); in PCSetUp_Jacobi()
209 PetscCall(MatGetDiagonal(pc->pmat, diag)); in PCSetUp_Jacobi()
212 PetscCall(MatGetRowMaxAbs(pc->pmat, diag, NULL)); in PCSetUp_Jacobi()
215 PetscCall(MatGetRowSumAbs(pc->pmat, diag)); in PCSetUp_Jacobi()
222 PetscCall(VecDuplicate(diag, &true_diag)); in PCSetUp_Jacobi()
224 PetscCall(VecGetLocalSize(diag, &n)); in PCSetUp_Jacobi()
225 PetscCall(VecGetArrayWrite(diag, &x2)); in PCSetUp_Jacobi()
234 PetscCall(VecRestoreArrayWrite(diag, &x2)); in PCSetUp_Jacobi()
240 PetscCall(VecDuplicate(diag, &true_diag)); in PCSetUp_Jacobi()
242 PetscCall(VecAXPY(diag, -1, true_diag)); // subtract off diag in PCSetUp_Jacobi()
243 PetscCall(VecScale(diag, jac->scale)); // scale off-diag in PCSetUp_Jacobi()
244 PetscCall(VecAXPY(diag, 1, true_diag)); // add diag back in in PCSetUp_Jacobi()
249 PetscCall(MatGetRowSum(pc->pmat, diag)); in PCSetUp_Jacobi()
252 PetscCall(VecReciprocal(diag)); in PCSetUp_Jacobi()
253 if (jac->useabs) PetscCall(VecAbs(diag)); in PCSetUp_Jacobi()
257 PetscCall(VecGetLocalSize(diag, &n)); in PCSetUp_Jacobi()
258 PetscCall(VecGetArray(diag, &x)); in PCSetUp_Jacobi()
265 PetscCall(VecRestoreArray(diag, &x)); in PCSetUp_Jacobi()
267 PetscCall(VecLockReadPush(diag)); in PCSetUp_Jacobi()
336 PetscCall(MatCreateVecs(pc->pmat, &jac->diag, NULL)); in PCSetUp_Jacobi_NonSymmetric()
337 PetscCall(VecLockReadPush(jac->diag)); in PCSetUp_Jacobi_NonSymmetric()
359 if (!jac->diag) PetscCall(PCSetUp_Jacobi_NonSymmetric(pc)); in PCApply_Jacobi()
360 PetscCall(VecPointwiseMult(y, x, jac->diag)); in PCApply_Jacobi()
392 if (jac->diag) PetscCall(VecLockReadPop(jac->diag)); in PCReset_Jacobi()
394 PetscCall(VecDestroy(&jac->diag)); in PCReset_Jacobi()
468 … if (format == PETSC_VIEWER_ASCII_INFO_DETAIL && jac->diag) PetscCall(VecView(jac->diag, viewer)); in PCView_Jacobi()
525 jac->diag = NULL; in PCCreate_Jacobi()