Lines Matching refs:pcbddc
48 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCScalingExtension_Basic() local
52 PetscCall(VecPointwiseMult(pcbddc->work_scaling, pcis->D, local_interface_vector)); in PCBDDCScalingExtension_Basic()
54 …PetscCall(VecScatterBegin(pcis->global_to_B, pcbddc->work_scaling, global_vector, ADD_VALUES, SCAT… in PCBDDCScalingExtension_Basic()
55 …PetscCall(VecScatterEnd(pcis->global_to_B, pcbddc->work_scaling, global_vector, ADD_VALUES, SCATTE… in PCBDDCScalingExtension_Basic()
62 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCScalingExtension_Deluxe() local
63 PCBDDCDeluxeScaling deluxe_ctx = pcbddc->deluxe_ctx; in PCBDDCScalingExtension_Deluxe()
66 PetscCall(VecSet(pcbddc->work_scaling, 0.0)); in PCBDDCScalingExtension_Deluxe()
74 PetscCall(VecGetArray(pcbddc->work_scaling, &array)); in PCBDDCScalingExtension_Deluxe()
76 PetscCall(VecRestoreArray(pcbddc->work_scaling, &array)); in PCBDDCScalingExtension_Deluxe()
114 …PetscCall(VecScatterBegin(deluxe_ctx->seq_scctx[i], deluxe_ctx->seq_work1[i], pcbddc->work_scaling… in PCBDDCScalingExtension_Deluxe()
115 …PetscCall(VecScatterEnd(deluxe_ctx->seq_scctx[i], deluxe_ctx->seq_work1[i], pcbddc->work_scaling, … in PCBDDCScalingExtension_Deluxe()
117 …PetscCall(VecScatterBegin(deluxe_ctx->seq_scctx[i], deluxe_ctx->seq_work2[i], pcbddc->work_scaling… in PCBDDCScalingExtension_Deluxe()
118 …PetscCall(VecScatterEnd(deluxe_ctx->seq_scctx[i], deluxe_ctx->seq_work2[i], pcbddc->work_scaling, … in PCBDDCScalingExtension_Deluxe()
123 …PetscCall(VecScatterBegin(pcis->global_to_B, pcbddc->work_scaling, y, ADD_VALUES, SCATTER_REVERSE)… in PCBDDCScalingExtension_Deluxe()
124 PetscCall(VecScatterEnd(pcis->global_to_B, pcbddc->work_scaling, y, ADD_VALUES, SCATTER_REVERSE)); in PCBDDCScalingExtension_Deluxe()
130 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCScalingExtension() local
136 …PetscCheck(local_interface_vector != pcbddc->work_scaling, PETSC_COMM_SELF, PETSC_ERR_SUP, "Local … in PCBDDCScalingExtension()
156 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCScalingRestriction_Deluxe() local
157 PCBDDCDeluxeScaling deluxe_ctx = pcbddc->deluxe_ctx; in PCBDDCScalingRestriction_Deluxe()
220 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCScalingRestriction() local
226 …PetscCheck(local_interface_vector != pcbddc->work_scaling, PETSC_COMM_SELF, PETSC_ERR_SUP, "Local … in PCBDDCScalingRestriction()
234 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCScalingSetUp() local
238 PetscCall(PetscLogEventBegin(PC_BDDC_Scaling[pcbddc->current_level], pc, 0, 0, 0)); in PCBDDCScalingSetUp()
240 PetscCall(VecDestroy(&pcbddc->work_scaling)); in PCBDDCScalingSetUp()
241 PetscCall(VecDuplicate(pcis->vec1_B, &pcbddc->work_scaling)); in PCBDDCScalingSetUp()
247 PetscCall(MatGetDiagonal(pcbddc->local_mat, pcis->vec1_N)); in PCBDDCScalingSetUp()
264 if (pcbddc->use_deluxe_scaling) { in PCBDDCScalingSetUp()
265 if (!pcbddc->deluxe_ctx) PetscCall(PCBDDCScalingCreate_Deluxe(pc)); in PCBDDCScalingSetUp()
273 PetscCall(PetscLogEventEnd(PC_BDDC_Scaling[pcbddc->current_level], pc, 0, 0, 0)); in PCBDDCScalingSetUp()
276 if (pcbddc->dbg_flag) { in PCBDDCScalingSetUp()
280 PetscViewer viewer = pcbddc->dbg_viewer; in PCBDDCScalingSetUp()
292 if (pcbddc->benign_n) { in PCBDDCScalingSetUp()
295 PetscCall(ISCreateStride(PETSC_COMM_SELF, pcbddc->benign_n, 0, 1, &is_dummy)); in PCBDDCScalingSetUp()
296 …PetscCall(MatCreateSubMatrix(pcbddc->benign_B0, is_dummy, pcis->is_B_local, MAT_INITIAL_MATRIX, &B… in PCBDDCScalingSetUp()
303 if (pcbddc->benign_saddle_point) { in PCBDDCScalingSetUp()
307 if (pcbddc->benign_n) { in PCBDDCScalingSetUp()
340 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCScalingDestroy() local
343 if (pcbddc->deluxe_ctx) PetscCall(PCBDDCScalingDestroy_Deluxe(pc)); in PCBDDCScalingDestroy()
344 PetscCall(VecDestroy(&pcbddc->work_scaling)); in PCBDDCScalingDestroy()
352 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCScalingCreate_Deluxe() local
357 pcbddc->deluxe_ctx = deluxe_ctx; in PCBDDCScalingCreate_Deluxe()
363 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCScalingDestroy_Deluxe() local
366 PetscCall(PCBDDCScalingReset_Deluxe_Solvers(pcbddc->deluxe_ctx)); in PCBDDCScalingDestroy_Deluxe()
367 PetscCall(PetscFree(pcbddc->deluxe_ctx)); in PCBDDCScalingDestroy_Deluxe()
394 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCScalingSetUp_Deluxe() local
395 PCBDDCDeluxeScaling deluxe_ctx = pcbddc->deluxe_ctx; in PCBDDCScalingSetUp_Deluxe()
396 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCScalingSetUp_Deluxe()
400 if (pcbddc->recompute_topography) PetscCall(PCBDDCScalingReset_Deluxe_Solvers(deluxe_ctx)); in PCBDDCScalingSetUp_Deluxe()
446 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCScalingSetUp_Deluxe_Private() local
447 PCBDDCDeluxeScaling deluxe_ctx = pcbddc->deluxe_ctx; in PCBDDCScalingSetUp_Deluxe_Private()
448 PCBDDCSubSchurs sub_schurs = pcbddc->sub_schurs; in PCBDDCScalingSetUp_Deluxe_Private()
493 …PetscCall(VecScatterCreate(pcbddc->work_scaling, sub, deluxe_ctx->seq_work1[i], NULL, &deluxe_ctx-… in PCBDDCScalingSetUp_Deluxe_Private()
516 if (pcbddc->deluxe_singlemat) { in PCBDDCScalingSetUp_Deluxe_Private()
551 if (pcbddc->deluxe_singlemat) { in PCBDDCScalingSetUp_Deluxe_Private()