Lines Matching refs:coarse_ksp
4045 PetscCall(KSPReset(pcbddc->coarse_ksp)); in PCBDDCResetSolvers()
6374 if (pcbddc->coarse_ksp) { in PCBDDCApplyInterfacePreconditioner()
6383 PetscCall(KSPGetPC(pcbddc->coarse_ksp, &coarse_pc)); in PCBDDCApplyInterfacePreconditioner()
6392 PetscCall(KSPGetRhs(pcbddc->coarse_ksp, &rhs)); in PCBDDCApplyInterfacePreconditioner()
6393 PetscCall(KSPGetSolution(pcbddc->coarse_ksp, &sol)); in PCBDDCApplyInterfacePreconditioner()
6394 PetscCall(KSPGetOperators(pcbddc->coarse_ksp, &coarse_mat, NULL)); in PCBDDCApplyInterfacePreconditioner()
6396 …PetscCheck(!pcbddc->benign_apply_coarse_only, PetscObjectComm((PetscObject)pcbddc->coarse_ksp), PE… in PCBDDCApplyInterfacePreconditioner()
6397 PetscCall(KSPSolveTranspose(pcbddc->coarse_ksp, rhs, sol)); in PCBDDCApplyInterfacePreconditioner()
6398 PetscCall(KSPCheckSolve(pcbddc->coarse_ksp, pc, sol)); in PCBDDCApplyInterfacePreconditioner()
6407 PetscCall(KSPGetPC(pcbddc->coarse_ksp, &coarse_pc)); in PCBDDCApplyInterfacePreconditioner()
6408 PetscCall(PCPreSolve(coarse_pc, pcbddc->coarse_ksp)); in PCBDDCApplyInterfacePreconditioner()
6410 PetscCall(PCPostSolve(coarse_pc, pcbddc->coarse_ksp)); in PCBDDCApplyInterfacePreconditioner()
6412 PetscCall(KSPSolve(pcbddc->coarse_ksp, rhs, sol)); in PCBDDCApplyInterfacePreconditioner()
6413 PetscCall(KSPCheckSolve(pcbddc->coarse_ksp, pc, sol)); in PCBDDCApplyInterfacePreconditioner()
6422 PetscCall(KSPGetPC(pcbddc->coarse_ksp, &coarse_pc)); in PCBDDCApplyInterfacePreconditioner()
6474 if (pcbddc->coarse_ksp) { /* get array from coarse processes */ in PCBDDCScatterCoarseDataBegin()
6477 PetscCall(KSPGetRhs(pcbddc->coarse_ksp, &tvec)); in PCBDDCScatterCoarseDataBegin()
6479 PetscCall(KSPGetSolution(pcbddc->coarse_ksp, &tvec)); in PCBDDCScatterCoarseDataBegin()
6508 if (pcbddc->coarse_ksp) { /* get array from coarse processes */ in PCBDDCScatterCoarseDataEnd()
6511 PetscCall(KSPGetRhs(pcbddc->coarse_ksp, &tvec)); in PCBDDCScatterCoarseDataEnd()
6517 if (pcbddc->coarse_ksp) { /* restore array of pcbddc->coarse_vec */ in PCBDDCScatterCoarseDataEnd()
8550 if (pcbddc->coarse_ksp) { /* coarse ksp has already been created */ in PCBDDCSetUpCoarseSolver()
8553 PetscCall(KSPReset(pcbddc->coarse_ksp)); in PCBDDCSetUpCoarseSolver()
8566 if (coarse_reuse && pcbddc->coarse_ksp) { in PCBDDCSetUpCoarseSolver()
8567 PetscCall(KSPGetOperators(pcbddc->coarse_ksp, &coarse_mat, NULL)); in PCBDDCSetUpCoarseSolver()
8634 if (pcbddc->coarse_ksp) psum = 1; in PCBDDCSetUpCoarseSolver()
8883 if (!pcbddc->coarse_ksp) { in PCBDDCSetUpCoarseSolver()
8887 PetscCall(KSPCreate(PetscObjectComm((PetscObject)coarse_mat), &pcbddc->coarse_ksp)); in PCBDDCSetUpCoarseSolver()
8888 PetscCall(KSPSetNestLevel(pcbddc->coarse_ksp, pc->kspnestlevel)); in PCBDDCSetUpCoarseSolver()
8889 PetscCall(KSPSetErrorIfNotConverged(pcbddc->coarse_ksp, pc->erroriffailure)); in PCBDDCSetUpCoarseSolver()
8890 PetscCall(PetscObjectIncrementTabLevel((PetscObject)pcbddc->coarse_ksp, (PetscObject)pc, 1)); in PCBDDCSetUpCoarseSolver()
8891 … PetscCall(KSPSetTolerances(pcbddc->coarse_ksp, PETSC_CURRENT, PETSC_CURRENT, PETSC_CURRENT, 1)); in PCBDDCSetUpCoarseSolver()
8892 PetscCall(KSPSetOperators(pcbddc->coarse_ksp, coarse_mat, coarse_mat)); in PCBDDCSetUpCoarseSolver()
8893 PetscCall(KSPSetType(pcbddc->coarse_ksp, coarse_ksp_type)); in PCBDDCSetUpCoarseSolver()
8894 PetscCall(KSPSetNormType(pcbddc->coarse_ksp, KSP_NORM_NONE)); in PCBDDCSetUpCoarseSolver()
8895 PetscCall(KSPGetPC(pcbddc->coarse_ksp, &pc_temp)); in PCBDDCSetUpCoarseSolver()
8913 PetscCall(KSPSetOptionsPrefix(pcbddc->coarse_ksp, prefix)); in PCBDDCSetUpCoarseSolver()
8919 PetscCall(KSPSetFromOptions(pcbddc->coarse_ksp)); in PCBDDCSetUpCoarseSolver()
8921 PetscCall(KSPGetPC(pcbddc->coarse_ksp, &pc_temp)); in PCBDDCSetUpCoarseSolver()
8943 PetscCall(KSPGetPC(pcbddc->coarse_ksp, &pc_temp)); in PCBDDCSetUpCoarseSolver()
9035 PetscCall(MatSetOptionsPrefix(coarse_mat, ((PetscObject)pcbddc->coarse_ksp)->prefix)); in PCBDDCSetUpCoarseSolver()
9036 PetscCall(KSPSetOperators(pcbddc->coarse_ksp, coarse_mat, coarse_mat)); in PCBDDCSetUpCoarseSolver()
9089 if (pcbddc->coarse_ksp) { in PCBDDCSetUpCoarseSolver()
9093 PetscCall(KSPGetPC(pcbddc->coarse_ksp, &coarse_pc)); in PCBDDCSetUpCoarseSolver()
9116 if (pcbddc->coarse_ksp) { in PCBDDCSetUpCoarseSolver()
9119 PetscCall(KSPGetSolution(pcbddc->coarse_ksp, &csol)); in PCBDDCSetUpCoarseSolver()
9120 PetscCall(KSPGetRhs(pcbddc->coarse_ksp, &crhs)); in PCBDDCSetUpCoarseSolver()
9121 if (!csol) PetscCall(MatCreateVecs(coarse_mat, &pcbddc->coarse_ksp->vec_sol, NULL)); in PCBDDCSetUpCoarseSolver()
9122 if (!crhs) PetscCall(MatCreateVecs(coarse_mat, NULL, &pcbddc->coarse_ksp->vec_rhs)); in PCBDDCSetUpCoarseSolver()
9154 if (pcbddc->coarse_ksp) { in PCBDDCSetUpCoarseSolver()
9165 PetscCall(KSPSetUp(pcbddc->coarse_ksp)); in PCBDDCSetUpCoarseSolver()
9167 PetscCall(PetscObjectTypeCompare((PetscObject)pcbddc->coarse_ksp, KSPPREONLY, &ispreonly)); in PCBDDCSetUpCoarseSolver()
9181 PetscCall(KSPCreate(PetscObjectComm((PetscObject)pcbddc->coarse_ksp), &check_ksp)); in PCBDDCSetUpCoarseSolver()
9183 …etscCall(PetscObjectIncrementTabLevel((PetscObject)check_ksp, (PetscObject)pcbddc->coarse_ksp, 0)); in PCBDDCSetUpCoarseSolver()
9184 PetscCall(KSPSetErrorIfNotConverged(pcbddc->coarse_ksp, PETSC_FALSE)); in PCBDDCSetUpCoarseSolver()
9201 PetscCall(KSPGetOptionsPrefix(pcbddc->coarse_ksp, &prefix)); in PCBDDCSetUpCoarseSolver()
9206 PetscCall(KSPGetPC(pcbddc->coarse_ksp, &check_pc)); in PCBDDCSetUpCoarseSolver()
9225 … PetscCall(KSPChebyshevSetEigenvalues(pcbddc->coarse_ksp, lambda_max + PETSC_SMALL, lambda_min)); in PCBDDCSetUpCoarseSolver()
9226 PetscCall(KSPRichardsonSetScale(pcbddc->coarse_ksp, 2.0 / (lambda_max + lambda_min))); in PCBDDCSetUpCoarseSolver()
9234 … PetscViewer dbg_viewer = PETSC_VIEWER_STDOUT_(PetscObjectComm((PetscObject)pcbddc->coarse_ksp)); in PCBDDCSetUpCoarseSolver()
9241 PetscCall(PetscObjectPrintClassNamePrefixType((PetscObject)pcbddc->coarse_ksp, dbg_viewer)); in PCBDDCSetUpCoarseSolver()