Lines Matching refs:reuse_solver
2271 PCBDDCReuseSolvers reuse = pcbddc->sub_schurs ? pcbddc->sub_schurs->reuse_solver : NULL; in PCBDDCBenignShellMat()
4468 } else if (sub_schurs && sub_schurs->reuse_solver) { in PCBDDCSetUpCorrection()
4469 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpCorrection() local
4472 F = reuse_solver->F; in PCBDDCSetUpCorrection()
4477 need_benign_correction = (PetscBool)(!!reuse_solver->benign_n); in PCBDDCSetUpCorrection()
4556 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpCorrection() local
4559 PetscCall(PetscArrayzero(reuse_solver->benign_save_vals, pcbddc->benign_n)); in PCBDDCSetUpCorrection()
4564 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpCorrection() local
4571 … PetscCall(PCBDDCReuseSolversBenignAdapt(reuse_solver, dummy_vec, NULL, PETSC_TRUE, PETSC_TRUE)); in PCBDDCSetUpCorrection()
4577 …PetscCall(PCBDDCReuseSolversBenignAdapt(reuse_solver, pcbddc->vec1_R, NULL, PETSC_TRUE, PETSC_TRUE… in PCBDDCSetUpCorrection()
4669 …if (sub_schurs && sub_schurs->reuse_solver) { /* is_R_local is not sorted, ISComplement doesn't li… in PCBDDCSetUpCorrection()
4779 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpCorrection() local
4791 for (i = 0; i < reuse_solver->benign_n; i++) { in PCBDDCSetUpCorrection()
4796 PetscCall(ISGetLocalSize(reuse_solver->benign_zerodiag_subs[i], &nz)); in PCBDDCSetUpCorrection()
4797 PetscCall(ISGetIndices(reuse_solver->benign_zerodiag_subs[i], &idxs_zero)); in PCBDDCSetUpCorrection()
4805 PetscCall(ISRestoreIndices(reuse_solver->benign_zerodiag_subs[i], &idxs_zero)); in PCBDDCSetUpCorrection()
4845 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpCorrection() local
4852 … PetscCall(PCBDDCReuseSolversBenignAdapt(reuse_solver, dummy_vec, NULL, PETSC_FALSE, PETSC_TRUE)); in PCBDDCSetUpCorrection()
4858 …PetscCall(PCBDDCReuseSolversBenignAdapt(reuse_solver, pcbddc->vec1_R, NULL, PETSC_FALSE, PETSC_TRU… in PCBDDCSetUpCorrection()
4868 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpCorrection() local
4875 … PetscCall(PCBDDCReuseSolversBenignAdapt(reuse_solver, dummy_vec, NULL, PETSC_TRUE, PETSC_TRUE)); in PCBDDCSetUpCorrection()
4881 …PetscCall(PCBDDCReuseSolversBenignAdapt(reuse_solver, pcbddc->vec1_R, NULL, PETSC_TRUE, PETSC_TRUE… in PCBDDCSetUpCorrection()
4966 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpCorrection() local
4972 for (i = 0; i < reuse_solver->benign_n; i++) { in PCBDDCSetUpCorrection()
4977 PetscCall(ISGetLocalSize(reuse_solver->benign_zerodiag_subs[i], &nz)); in PCBDDCSetUpCorrection()
4978 PetscCall(ISGetIndices(reuse_solver->benign_zerodiag_subs[i], &idxs_zero)); in PCBDDCSetUpCorrection()
4989 PetscCall(ISRestoreIndices(reuse_solver->benign_zerodiag_subs[i], &idxs_zero)); in PCBDDCSetUpCorrection()
5740 if (!sub_schurs || !sub_schurs->reuse_solver) { in PCBDDCSetUpLocalScatters()
5749 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpLocalScatters() local
5751 PetscCall(ISGetIndices(reuse_solver->is_R, (const PetscInt **)&idx_R_local)); in PCBDDCSetUpLocalScatters()
5752 PetscCall(ISGetLocalSize(reuse_solver->is_R, &n_R)); in PCBDDCSetUpLocalScatters()
5761 if (!sub_schurs || !sub_schurs->reuse_solver) { in PCBDDCSetUpLocalScatters()
5792 if (sub_schurs && sub_schurs->reuse_solver) { in PCBDDCSetUpLocalScatters()
5793 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpLocalScatters() local
5795 PetscCall(ISRestoreIndices(reuse_solver->is_R, (const PetscInt **)&idx_R_local)); in PCBDDCSetUpLocalScatters()
5796 PetscCall(ISDestroy(&reuse_solver->is_R)); in PCBDDCSetUpLocalScatters()
5798 reuse_solver->is_R = pcbddc->is_R_local; in PCBDDCSetUpLocalScatters()
5816 if (!sub_schurs || !sub_schurs->reuse_solver) { in PCBDDCSetUpLocalScatters()
5852 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpLocalScatters() local
5856 PetscCall(ISGetLocalSize(reuse_solver->is_B, &schur_size)); in PCBDDCSetUpLocalScatters()
5858 …PetscCall(VecScatterCreate(pcbddc->vec1_R, tis, pcis->vec1_B, reuse_solver->is_B, &pcbddc->R_to_B)… in PCBDDCSetUpLocalScatters()
5991 …PetscCheck(sub_schurs && sub_schurs->reuse_solver, PETSC_COMM_SELF, PETSC_ERR_SUP, "Not yet implem… in PCBDDCSetUpLocalSolvers()
6050 if (sub_schurs && sub_schurs->reuse_solver) { in PCBDDCSetUpLocalSolvers()
6051 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpLocalSolvers() local
6053 PetscCall(KSPSetPC(pcbddc->ksp_D, reuse_solver->interior_solver)); in PCBDDCSetUpLocalSolvers()
6077 if (sub_schurs && sub_schurs->reuse_solver) { in PCBDDCSetUpLocalSolvers()
6133 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpLocalSolvers() local
6137 … if (reuse_solver->benign_n) { /* we are not using the explicit change of basis on the pressures */ in PCBDDCSetUpLocalSolvers()
6144 PetscCall(PCGetOperators(reuse_solver->correction_solver, &A_RR, NULL)); in PCBDDCSetUpLocalSolvers()
6206 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpLocalSolvers() local
6208 PetscCall(KSPSetPC(pcbddc->ksp_R, reuse_solver->correction_solver)); in PCBDDCSetUpLocalSolvers()
6256 …PetscBool reuse_solver = sub_schurs ? (sub_schurs->reuse_solver ? PETSC_TRUE : PETSC_FALSE) … in PCBDDCSolveSubstructureCorrection() local
6259 if (!reuse_solver) PetscCall(VecSet(pcbddc->vec1_R, 0.)); in PCBDDCSolveSubstructureCorrection()
6265 if (!reuse_solver) { in PCBDDCSolveSubstructureCorrection()
6269 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSolveSubstructureCorrection() local
6271 …PetscCall(VecScatterBegin(reuse_solver->correction_scatter_B, inout_B, reuse_solver->rhs_B, INSERT… in PCBDDCSolveSubstructureCorrection()
6272 …PetscCall(VecScatterEnd(reuse_solver->correction_scatter_B, inout_B, reuse_solver->rhs_B, INSERT_V… in PCBDDCSolveSubstructureCorrection()
6287 if (!reuse_solver || pcbddc->switch_static) { in PCBDDCSolveSubstructureCorrection()
6295 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSolveSubstructureCorrection() local
6298 …PetscCall(MatFactorSolveSchurComplementTranspose(reuse_solver->F, reuse_solver->rhs_B, reuse_solve… in PCBDDCSolveSubstructureCorrection()
6300 …PetscCall(MatFactorSolveSchurComplement(reuse_solver->F, reuse_solver->rhs_B, reuse_solver->sol_B)… in PCBDDCSolveSubstructureCorrection()
6306 if (!reuse_solver) { in PCBDDCSolveSubstructureCorrection()
6310 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSolveSubstructureCorrection() local
6312 …PetscCall(VecScatterBegin(reuse_solver->correction_scatter_B, reuse_solver->sol_B, inout_B, INSERT… in PCBDDCSolveSubstructureCorrection()
6313 …PetscCall(VecScatterEnd(reuse_solver->correction_scatter_B, reuse_solver->sol_B, inout_B, INSERT_V… in PCBDDCSolveSubstructureCorrection()