Home
last modified time | relevance | path

Searched refs:sub_schurs (Results 1 – 7 of 7) sorted by relevance

/petsc/src/ksp/pc/impls/bddc/
H A Dbddcschurs.c381 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 Dbddcscalingbasic.c396 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 Dbddcfetidp.c484 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 Dbddcprivate.c2271 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()
[all …]
H A Dbddc.c1409 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 Dgdsw.c14 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 Dpcbddcimpl.h169 PCBDDCSubSchurs sub_schurs; member