Lines Matching refs:sub_schurs

2271     PCBDDCReuseSolvers reuse = pcbddc->sub_schurs ? pcbddc->sub_schurs->reuse_solver : NULL;  in PCBDDCBenignShellMat()
3354 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCAdaptiveSelection() local
3369 …PetscCheck(sub_schurs, PETSC_COMM_SELF, PETSC_ERR_PLIB, "Adaptive selection of constraints require… in PCBDDCAdaptiveSelection()
3370 …PetscCheck(sub_schurs->schur_explicit || !sub_schurs->n_subs, PetscObjectComm((PetscObject)pc), PE… in PCBDDCAdaptiveSelection()
3371sub_schurs->n_subs || sub_schurs->is_symmetric, PETSC_COMM_SELF, PETSC_ERR_SUP, "Adaptive selectio… in PCBDDCAdaptiveSelection()
3372 sub_schurs->is_posdef); in PCBDDCAdaptiveSelection()
3383 …%" PetscInt_FMT " (%d,%d).\n", PetscGlobalRank, sub_schurs->n_subs, sub_schurs->is_hermitian, sub_… in PCBDDCAdaptiveSelection()
3387 for (i = 0; i < sub_schurs->n_subs; i++) { in PCBDDCAdaptiveSelection()
3390 PetscCall(ISGetLocalSize(sub_schurs->is_subs[i], &subset_size)); in PCBDDCAdaptiveSelection()
3399 if (nmin || !sub_schurs->is_posdef) { /* XXX */ in PCBDDCAdaptiveSelection()
3406 for (i = 0; i < sub_schurs->n_subs; i++) { in PCBDDCAdaptiveSelection()
3409 PetscCall(ISGetLocalSize(sub_schurs->is_subs[i], &subset_size)); in PCBDDCAdaptiveSelection()
3423 PetscCheck(sub_schurs->is_symmetric, PETSC_COMM_SELF, PETSC_ERR_SUP, "Not yet implemented"); in PCBDDCAdaptiveSelection()
3448 …if (sub_schurs->is_vertices && pcbddc->use_vertices) { /* complement set of active subsets, each e… in PCBDDCAdaptiveSelection()
3449 PetscCall(ISGetLocalSize(sub_schurs->is_vertices, &nv)); in PCBDDCAdaptiveSelection()
3457 …c5(nv + sub_schurs->n_subs, &pcbddc->adaptive_constraints_n, nv + sub_schurs->n_subs + 1, &pcbddc-… in PCBDDCAdaptiveSelection()
3459 PetscCall(PetscArrayzero(pcbddc->adaptive_constraints_n, nv + sub_schurs->n_subs)); in PCBDDCAdaptiveSelection()
3465 if (sub_schurs->is_vertices && pcbddc->use_vertices) { in PCBDDCAdaptiveSelection()
3468 PetscCall(ISGetIndices(sub_schurs->is_vertices, &idxs)); in PCBDDCAdaptiveSelection()
3476 PetscCall(ISRestoreIndices(sub_schurs->is_vertices, &idxs)); in PCBDDCAdaptiveSelection()
3480 if (sub_schurs->gdsw) { in PCBDDCAdaptiveSelection()
3481 PetscCall(MatSeqAIJGetArray(sub_schurs->sum_S_Ej_all, &Sarray)); in PCBDDCAdaptiveSelection()
3482 PetscCall(MatSeqAIJGetArray(sub_schurs->sum_S_Ej_tilda_all, &Starray)); in PCBDDCAdaptiveSelection()
3484 PetscCall(MatSeqAIJGetArray(sub_schurs->sum_S_Ej_inv_all, &Sarray)); in PCBDDCAdaptiveSelection()
3485 PetscCall(MatSeqAIJGetArray(sub_schurs->sum_S_Ej_tilda_all, &Starray)); in PCBDDCAdaptiveSelection()
3492 for (i = 0; i < sub_schurs->n_subs; i++) { in PCBDDCAdaptiveSelection()
3504 if (sub_schurs->gdsw) { in PCBDDCAdaptiveSelection()
3508 …PetscCheck(sub_schurs->is_posdef, PETSC_COMM_SELF, PETSC_ERR_SUP, "Not yet implemented without del… in PCBDDCAdaptiveSelection()
3513 PetscCall(ISGetLocalSize(sub_schurs->is_subs[i], &subset_size)); in PCBDDCAdaptiveSelection()
3514 PetscCall(ISGetIndices(sub_schurs->is_subs[i], &idxs)); in PCBDDCAdaptiveSelection()
3518 if (!sub_schurs->is_posdef) { in PCBDDCAdaptiveSelection()
3529 if (sub_schurs->change_primal_sub) { in PCBDDCAdaptiveSelection()
3533 PetscCall(ISGetLocalSize(sub_schurs->change_primal_sub[i], &nz)); in PCBDDCAdaptiveSelection()
3534 PetscCall(ISGetIndices(sub_schurs->change_primal_sub[i], &idxs)); in PCBDDCAdaptiveSelection()
3539 PetscCall(ISRestoreIndices(sub_schurs->change_primal_sub[i], &idxs)); in PCBDDCAdaptiveSelection()
3548 if (sub_schurs->is_symmetric) { in PCBDDCAdaptiveSelection()
3550 if (sub_schurs->n_subs == 1) { /* zeroing memory to use PetscArraycmp() later */ in PCBDDCAdaptiveSelection()
3569 …if (sub_schurs->n_subs == 1 && pcbddc->use_deluxe_scaling) PetscCall(PetscArraycmp(S, St, subset_s… in PCBDDCAdaptiveSelection()
3571 if (same_data && !sub_schurs->change) { /* there's no need of constraints here */ in PCBDDCAdaptiveSelection()
3579 PetscCheck(sub_schurs->is_symmetric, PETSC_COMM_SELF, PETSC_ERR_SUP, "Not yet implemented"); in PCBDDCAdaptiveSelection()
3587 …if (sub_schurs->change_primal_sub) PetscCall(ISGetLocalSize(sub_schurs->change_primal_sub[i], &nc)… in PCBDDCAdaptiveSelection()
3589 … " fid %" PetscInt_FMT " (range %d) (change %" PetscInt_FMT ").\n", i, sub_schurs->n_subs, subset_… in PCBDDCAdaptiveSelection()
3595 if (sub_schurs->is_posdef) { in PCBDDCAdaptiveSelection()
3780 …PetscCheck(sub_schurs->change_primal_sub, PETSC_COMM_SELF, PETSC_ERR_PLIB, "This should not happen… in PCBDDCAdaptiveSelection()
3781 PetscCall(ISGetLocalSize(sub_schurs->change_primal_sub[i], &nmax)); in PCBDDCAdaptiveSelection()
3822 if (sub_schurs->is_symmetric) { in PCBDDCAdaptiveSelection()
3852 if (!sub_schurs->gdsw) { in PCBDDCAdaptiveSelection()
3871 if (sub_schurs->change) { in PCBDDCAdaptiveSelection()
3889 PetscCall(KSPGetOperators(sub_schurs->change[i], &change, NULL)); in PCBDDCAdaptiveSelection()
3921 PetscCall(ISRestoreIndices(sub_schurs->is_subs[i], &idxs)); in PCBDDCAdaptiveSelection()
3928 if (sub_schurs->gdsw) { in PCBDDCAdaptiveSelection()
3929 PetscCall(MatSeqAIJGetArray(sub_schurs->sum_S_Ej_all, &Sarray)); in PCBDDCAdaptiveSelection()
3930 PetscCall(MatSeqAIJGetArray(sub_schurs->sum_S_Ej_tilda_all, &Starray)); in PCBDDCAdaptiveSelection()
3932 PetscCall(MatSeqAIJRestoreArray(sub_schurs->sum_S_Ej_inv_all, &Sarray)); in PCBDDCAdaptiveSelection()
3933 PetscCall(MatSeqAIJRestoreArray(sub_schurs->sum_S_Ej_tilda_all, &Starray)); in PCBDDCAdaptiveSelection()
3935 PetscCall(MatDestroy(&sub_schurs->sum_S_Ej_inv_all)); in PCBDDCAdaptiveSelection()
3936 PetscCall(MatDestroy(&sub_schurs->sum_S_Ej_tilda_all)); in PCBDDCAdaptiveSelection()
4016 PetscCall(PCBDDCSubSchursDestroy(&pcbddc->sub_schurs)); in PCBDDCResetTopography()
4281 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCSetUpCorrection() local
4468 } else if (sub_schurs && sub_schurs->reuse_solver) { in PCBDDCSetUpCorrection()
4469 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpCorrection()
4556 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpCorrection()
4564 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; 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()
4845 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpCorrection()
4868 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpCorrection()
4966 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpCorrection()
5712 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCSetUpLocalScatters() local
5740 if (!sub_schurs || !sub_schurs->reuse_solver) { in PCBDDCSetUpLocalScatters()
5749 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; 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()
5816 if (!sub_schurs || !sub_schurs->reuse_solver) { in PCBDDCSetUpLocalScatters()
5852 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpLocalScatters()
5989 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCSetUpLocalSolvers() local
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()
6071 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCSetUpLocalSolvers() local
6077 if (sub_schurs && sub_schurs->reuse_solver) { in PCBDDCSetUpLocalSolvers()
6081 PetscCall(PetscObjectQuery((PetscObject)sub_schurs->A, "__KSPFETIDP_iP", (PetscObject *)&iP)); in PCBDDCSetUpLocalSolvers()
6133 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpLocalSolvers()
6206 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSetUpLocalSolvers()
6255 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCSolveSubstructureCorrection() local
6256 …PetscBool reuse_solver = sub_schurs ? (sub_schurs->reuse_solver ? PETSC_TRUE : PETSC_FALSE) … in PCBDDCSolveSubstructureCorrection()
6269 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSolveSubstructureCorrection()
6295 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSolveSubstructureCorrection()
6310 PCBDDCReuseSolvers reuse_solver = sub_schurs->reuse_solver; in PCBDDCSolveSubstructureCorrection()
6598 if (pcbddc->dbg_flag && (!pcbddc->sub_schurs || pcbddc->sub_schurs_rebuild)) { in PCBDDCConstraintsSetUp()
6919 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCConstraintsSetUp() local
6923 …if (sub_schurs->is_vertices && pcbddc->use_vertices) PetscCall(ISGetLocalSize(sub_schurs->is_verti… in PCBDDCConstraintsSetUp()
6926 for (i = 0; i < sub_schurs->n_subs + n_vertices; i++) { in PCBDDCConstraintsSetUp()
6938 for (i = 0; i < sub_schurs->n_subs + n_vertices; i++) { in PCBDDCConstraintsSetUp()
6948 for (i = 0; i < sub_schurs->n_subs; i++) { in PCBDDCConstraintsSetUp()
6949 …if (PetscBTLookup(sub_schurs->is_edge, i) || pcbddc->use_change_on_faces) PetscCall(PetscBTSet(cha… in PCBDDCConstraintsSetUp()
7382 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCConstraintsSetUp() local
7385 if (sub_schurs && sub_schurs->S_Ej_all) { in PCBDDCConstraintsSetUp()
7389 PetscCall(ISLocalToGlobalMappingApplyIS(pcis->BtoNmap, sub_schurs->is_Ej_all, &is_all_N)); in PCBDDCConstraintsSetUp()
7401 PetscCall(MatPtAP(sub_schurs->S_Ej_all, tmat, MAT_INITIAL_MATRIX, 1.0, &S_new)); in PCBDDCConstraintsSetUp()
7402 PetscCall(MatDestroy(&sub_schurs->S_Ej_all)); in PCBDDCConstraintsSetUp()
7412 PetscCall(ISGetIndices(sub_schurs->is_Ej_all, &idxs_all)); in PCBDDCConstraintsSetUp()
7425 PetscCall(ISRestoreIndices(sub_schurs->is_Ej_all, &idxs_all)); in PCBDDCConstraintsSetUp()
7428 sub_schurs->S_Ej_all = S_new; in PCBDDCConstraintsSetUp()
7430 if (sub_schurs->sum_S_Ej_all) { in PCBDDCConstraintsSetUp()
7431 PetscCall(MatPtAP(sub_schurs->sum_S_Ej_all, tmat, MAT_INITIAL_MATRIX, 1.0, &S_new)); in PCBDDCConstraintsSetUp()
7432 PetscCall(MatDestroy(&sub_schurs->sum_S_Ej_all)); in PCBDDCConstraintsSetUp()
7435 sub_schurs->sum_S_Ej_all = S_new; in PCBDDCConstraintsSetUp()
7442 if (sub_schurs && sub_schurs->change) { in PCBDDCConstraintsSetUp()
7445 for (i = 0; i < sub_schurs->n_subs; i++) PetscCall(KSPDestroy(&sub_schurs->change[i])); in PCBDDCConstraintsSetUp()
7446 PetscCall(PetscFree(sub_schurs->change)); in PCBDDCConstraintsSetUp()
9386 PetscCall(PetscFree(pcbddcf->sub_schurs)); in PCBDDCComputeFakeChange()
9388 pcbddcf->sub_schurs = schurs; in PCBDDCComputeFakeChange()
9409 if (schurs) pcbddcf->sub_schurs = NULL; in PCBDDCComputeFakeChange()
9423 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCSetUpSubSchurs() local
9464 if (!sub_schurs->schur_explicit) { in PCBDDCSetUpSubSchurs()
9467 …PetscCall(PCBDDCSubSchursSetUp(sub_schurs, NULL, S_j, PETSC_FALSE, used_xadj, used_adjncy, pcbddc-… in PCBDDCSetUpSubSchurs()
9480 PetscCall(ISGetLocalSize(sub_schurs->is_vertices, &n_vertices)); in PCBDDCSetUpSubSchurs()
9492 PetscBool have_loc_change = (PetscBool)(!!sub_schurs->change); in PCBDDCSetUpSubSchurs()
9499 …akeChange(pc, PETSC_FALSE, NULL, NULL, &change, &change_primal, NULL, &sub_schurs->change_with_qr)… in PCBDDCSetUpSubSchurs()
9505 …PetscOptionsBegin(PetscObjectComm((PetscObject)iP), sub_schurs->prefix, "BDDC sub_schurs options",… in PCBDDCSetUpSubSchurs()
9514 …PetscCall(PCBDDCSubSchursSetUp(sub_schurs, A, S_j, pcbddc->sub_schurs_exact_schur, used_xadj, used… in PCBDDCSetUpSubSchurs()
9518 …PetscCall(PCBDDCSubSchursSetUp(sub_schurs, pcbddc->local_mat, S_j, pcbddc->sub_schurs_exact_schur,… in PCBDDCSetUpSubSchurs()
9576 if (!pcbddc->sub_schurs) PetscCall(PCBDDCSubSchursCreate(&pcbddc->sub_schurs)); in PCBDDCInitSubSchurs()
9577 …PetscCall(PCBDDCSubSchursInit(pcbddc->sub_schurs, ((PetscObject)pc)->prefix, pcis->is_I_local, pci… in PCBDDCInitSubSchurs()