Lines Matching refs:jac

174   PC_Jacobi *jac = (PC_Jacobi *)pc->data;  in PCSetUp_Jacobi()  local
200 diag = jac->diag; in PCSetUp_Jacobi()
201 diagsqrt = jac->diagsqrt; in PCSetUp_Jacobi()
207 switch (jac->type) { in PCSetUp_Jacobi()
218 if (jac->fixdiag && (!isset || !isspd)) { in PCSetUp_Jacobi()
235 …PetscCheck(!jac->useabs || !negflag, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_INCOMP, "Jaco… in PCSetUp_Jacobi()
238 if (jac->scale != 1.0) { in PCSetUp_Jacobi()
243 PetscCall(VecScale(diag, jac->scale)); // scale off-diag in PCSetUp_Jacobi()
253 if (jac->useabs) PetscCall(VecAbs(diag)); in PCSetUp_Jacobi()
255 if (jac->fixdiag && (!isset || !isspd)) { in PCSetUp_Jacobi()
273 switch (jac->type) { in PCSetUp_Jacobi()
314 PC_Jacobi *jac = (PC_Jacobi *)pc->data; in PCSetUp_Jacobi_Symmetric() local
317 PetscCall(MatCreateVecs(pc->pmat, &jac->diagsqrt, NULL)); in PCSetUp_Jacobi_Symmetric()
318 PetscCall(VecLockReadPush(jac->diagsqrt)); in PCSetUp_Jacobi_Symmetric()
333 PC_Jacobi *jac = (PC_Jacobi *)pc->data; in PCSetUp_Jacobi_NonSymmetric() local
336 PetscCall(MatCreateVecs(pc->pmat, &jac->diag, NULL)); in PCSetUp_Jacobi_NonSymmetric()
337 PetscCall(VecLockReadPush(jac->diag)); in PCSetUp_Jacobi_NonSymmetric()
356 PC_Jacobi *jac = (PC_Jacobi *)pc->data; in PCApply_Jacobi() local
359 if (!jac->diag) PetscCall(PCSetUp_Jacobi_NonSymmetric(pc)); in PCApply_Jacobi()
360 PetscCall(VecPointwiseMult(y, x, jac->diag)); in PCApply_Jacobi()
379 PC_Jacobi *jac = (PC_Jacobi *)pc->data; in PCApplySymmetricLeftOrRight_Jacobi() local
382 if (!jac->diagsqrt) PetscCall(PCSetUp_Jacobi_Symmetric(pc)); in PCApplySymmetricLeftOrRight_Jacobi()
383 PetscCall(VecPointwiseMult(y, x, jac->diagsqrt)); in PCApplySymmetricLeftOrRight_Jacobi()
389 PC_Jacobi *jac = (PC_Jacobi *)pc->data; in PCReset_Jacobi() local
392 if (jac->diag) PetscCall(VecLockReadPop(jac->diag)); in PCReset_Jacobi()
393 if (jac->diagsqrt) PetscCall(VecLockReadPop(jac->diagsqrt)); in PCReset_Jacobi()
394 PetscCall(VecDestroy(&jac->diag)); in PCReset_Jacobi()
395 PetscCall(VecDestroy(&jac->diagsqrt)); in PCReset_Jacobi()
431 PC_Jacobi *jac = (PC_Jacobi *)pc->data; in PCSetFromOptions_Jacobi() local
440 …s", "Use absolute values of diagonal entries", "PCJacobiSetUseAbs", jac->useabs, &jac->useabs, NUL… in PCSetFromOptions_Jacobi()
441 …diagonal", "Fix null terms on diagonal", "PCJacobiSetFixDiagonal", jac->fixdiag, &jac->fixdiag, NU… in PCSetFromOptions_Jacobi()
442 …aling of off-diagonal elements for rowl1", "PCJacobiSetRowl1Scale", jac->scale, &jac->scale, NULL,… in PCSetFromOptions_Jacobi()
449 PC_Jacobi *jac = (PC_Jacobi *)pc->data; in PCView_Jacobi() local
468 … if (format == PETSC_VIEWER_ASCII_INFO_DETAIL && jac->diag) PetscCall(VecView(jac->diag, viewer)); in PCView_Jacobi()
511 PC_Jacobi *jac; in PCCreate_Jacobi() local
518 PetscCall(PetscNew(&jac)); in PCCreate_Jacobi()
519 pc->data = (void *)jac; in PCCreate_Jacobi()
525 jac->diag = NULL; in PCCreate_Jacobi()
526 jac->diagsqrt = NULL; in PCCreate_Jacobi()
527 jac->type = PC_JACOBI_DIAGONAL; in PCCreate_Jacobi()
528 jac->useabs = PETSC_FALSE; in PCCreate_Jacobi()
529 jac->fixdiag = PETSC_TRUE; in PCCreate_Jacobi()
530 jac->scale = 1.0; in PCCreate_Jacobi()