| /petsc/src/ksp/pc/impls/bddc/ |
| H A D | bddcschurs.c | 381 PetscErrorCode PCBDDCSubSchursSetUp(PCBDDCSubSchurs sub_schurs, Mat Ain, Mat Sin, PetscBool exact_s… in PCBDDCSubSchursSetUp() argument 392 PetscInt *local_subs = sub_schurs->graph->local_subs; in PCBDDCSubSchursSetUp() 393 PetscInt i, subset_size, max_subset_size, n_local_subs = sub_schurs->graph->n_local_subs; in PCBDDCSubSchursSetUp() 401 PetscBool flg, multi_element = sub_schurs->graph->multi_element; in PCBDDCSubSchursSetUp() 404 PetscCall(MatDestroy(&sub_schurs->A)); in PCBDDCSubSchursSetUp() 405 PetscCall(MatDestroy(&sub_schurs->S)); in PCBDDCSubSchursSetUp() 408 sub_schurs->A = Ain; in PCBDDCSubSchursSetUp() 412 sub_schurs->S = Sin; in PCBDDCSubSchursSetUp() 413 if (sub_schurs->schur_explicit) sub_schurs->schur_explicit = (PetscBool)(!!sub_schurs->A); in PCBDDCSubSchursSetUp() 416 …PetscCheck(sub_schurs->schur_explicit || !compute_Stilda, PetscObjectComm((PetscObject)sub_schurs-… in PCBDDCSubSchursSetUp() [all …]
|
| H A D | bddcscalingbasic.c | 396 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCScalingSetUp_Deluxe() local 406 if (sub_schurs->is_vertices || sub_schurs->is_dir) { in PCBDDCScalingSetUp_Deluxe() 409 if (sub_schurs->is_vertices) PetscCall(ISGetLocalSize(sub_schurs->is_vertices, &n_com)); in PCBDDCScalingSetUp_Deluxe() 411 if (sub_schurs->is_dir) PetscCall(ISGetLocalSize(sub_schurs->is_dir, &n_dir)); in PCBDDCScalingSetUp_Deluxe() 419 PetscCall(ISGetIndices(sub_schurs->is_vertices, &idxs)); in PCBDDCScalingSetUp_Deluxe() 422 PetscCall(ISRestoreIndices(sub_schurs->is_vertices, &idxs)); in PCBDDCScalingSetUp_Deluxe() 428 PetscCall(ISGetIndices(sub_schurs->is_dir, &idxs)); in PCBDDCScalingSetUp_Deluxe() 431 PetscCall(ISRestoreIndices(sub_schurs->is_dir, &idxs)); in PCBDDCScalingSetUp_Deluxe() 448 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCScalingSetUp_Deluxe_Private() local 455 …PetscCheck(sub_schurs, PetscObjectComm((PetscObject)pc), PETSC_ERR_PLIB, "Missing PCBDDCSubSchurs"… in PCBDDCScalingSetUp_Deluxe_Private() [all …]
|
| H A D | bddcfetidp.c | 484 if (!pcbddc->use_deluxe_scaling || !pcbddc->sub_schurs) { in PCBDDCSetupFETIDPMatContext() 493 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCSetupFETIDPMatContext() local 503 if (sub_schurs->is_Ej_all) { in PCBDDCSetupFETIDPMatContext() 504 PetscCall(ISGetIndices(sub_schurs->is_Ej_all, &idxs)); in PCBDDCSetupFETIDPMatContext() 505 for (i = 0, cum = 0; i < sub_schurs->n_subs; i++) { in PCBDDCSetupFETIDPMatContext() 508 PetscCall(ISGetLocalSize(sub_schurs->is_subs[i], &subset_size)); in PCBDDCSetupFETIDPMatContext() 535 for (i = 0, cum = 0; i < sub_schurs->n_subs; i++) { in PCBDDCSetupFETIDPMatContext() 539 PetscCall(ISGetLocalSize(sub_schurs->is_subs[i], &subset_size)); in PCBDDCSetupFETIDPMatContext() 561 if (sub_schurs->is_Ej_all) PetscCall(ISRestoreIndices(sub_schurs->is_Ej_all, &idxs)); in PCBDDCSetupFETIDPMatContext() 767 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCSetupFETIDPPCContext() local [all …]
|
| H A D | bddcprivate.c | 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() 3371 …sub_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() [all …]
|
| H A D | bddc.c | 1409 PCBDDCSubSchurs sub_schurs; in PCSetUp_BDDC() local 1558 sub_schurs = pcbddc->sub_schurs; in PCSetUp_BDDC() 1559 if (sub_schurs && sub_schurs->schur_explicit) { in PCSetUp_BDDC()
|
| /petsc/src/ksp/pc/impls/mg/ |
| H A D | gdsw.c | 14 PCBDDCSubSchurs sub_schurs = NULL; in PCMGGDSWSetUp() local 156 PetscCall(PCBDDCSubSchursCreate(&sub_schurs)); in PCMGGDSWSetUp() 157 …PetscCall(PCBDDCSubSchursInit(sub_schurs, prefix, ipcis->is_I_local, ipcis->is_B_local, graph, ipc… in PCMGGDSWSetUp() 163 …PetscCall(PCBDDCSubSchursSetUp(sub_schurs, lA, lS, PETSC_TRUE, NULL, NULL, -1, NULL, PETSC_TRUE, r… in PCMGGDSWSetUp() 167 if (sub_schurs->reuse_solver) { in PCMGGDSWSetUp() 168 PetscCall(KSPSetPC(sksp[0], sub_schurs->reuse_solver->interior_solver)); in PCMGGDSWSetUp() 169 PetscCall(PCDestroy(&sub_schurs->reuse_solver->interior_solver)); in PCMGGDSWSetUp() 170 sub_schurs->reuse_solver = NULL; in PCMGGDSWSetUp() 173 …PetscCall(PCBDDCComputeFakeChange(pcbddc, PETSC_TRUE, graph, sub_schurs, &cmat, &cref, &sGiM[0], N… in PCMGGDSWSetUp() 174 PetscCall(PCBDDCSubSchursDestroy(&sub_schurs)); in PCMGGDSWSetUp()
|
| /petsc/include/petsc/private/ |
| H A D | pcbddcimpl.h | 169 PCBDDCSubSchurs sub_schurs; member
|