Lines Matching refs:msolv_ctx
1343 PCBDDCReuseSolvers msolv_ctx; in PCBDDCSubSchursSetUp() local
1351 msolv_ctx = sub_schurs->reuse_solver; in PCBDDCSubSchursSetUp()
1354 msolv_ctx->F = F; in PCBDDCSubSchursSetUp()
1355 PetscCall(MatCreateVecs(F, &msolv_ctx->sol, NULL)); in PCBDDCSubSchursSetUp()
1361 PetscCall(VecGetLocalSize(msolv_ctx->sol, &n)); in PCBDDCSubSchursSetUp()
1362 PetscCall(VecGetArray(msolv_ctx->sol, &array)); in PCBDDCSubSchursSetUp()
1363 …Call(VecCreateSeqWithArray(PetscObjectComm((PetscObject)msolv_ctx->sol), 1, n, array, &msolv_ctx->… in PCBDDCSubSchursSetUp()
1364 PetscCall(VecRestoreArray(msolv_ctx->sol, &array)); in PCBDDCSubSchursSetUp()
1366 msolv_ctx->has_vertices = schur_has_vertices; in PCBDDCSubSchursSetUp()
1369 PetscCall(PCCreate(PetscObjectComm((PetscObject)A_II), &msolv_ctx->interior_solver)); in PCBDDCSubSchursSetUp()
1370 PetscCall(PCSetOperators(msolv_ctx->interior_solver, A_II, pA_II)); in PCBDDCSubSchursSetUp()
1371 PetscCall(PCSetType(msolv_ctx->interior_solver, PCSHELL)); in PCBDDCSubSchursSetUp()
1372 …PetscCall(PCShellSetName(msolv_ctx->interior_solver, "Interior solver (w/o Schur factorization)")); in PCBDDCSubSchursSetUp()
1373 PetscCall(PCShellSetContext(msolv_ctx->interior_solver, msolv_ctx)); in PCBDDCSubSchursSetUp()
1374 PetscCall(PCShellSetView(msolv_ctx->interior_solver, PCBDDCReuseSolvers_View)); in PCBDDCSubSchursSetUp()
1375 PetscCall(PCShellSetApply(msolv_ctx->interior_solver, PCBDDCReuseSolvers_Interior)); in PCBDDCSubSchursSetUp()
1376 …PetscCall(PCShellSetApplyTranspose(msolv_ctx->interior_solver, PCBDDCReuseSolvers_InteriorTranspos… in PCBDDCSubSchursSetUp()
1377 …if (sub_schurs->gdsw) PetscCall(PCShellSetDestroy(msolv_ctx->interior_solver, PCBDDCReuseSolvers_D… in PCBDDCSubSchursSetUp()
1381 PetscCall(PCCreate(PetscObjectComm((PetscObject)A_II), &msolv_ctx->correction_solver)); in PCBDDCSubSchursSetUp()
1382 PetscCall(PCSetType(msolv_ctx->correction_solver, PCSHELL)); in PCBDDCSubSchursSetUp()
1383 …PetscCall(PCShellSetName(msolv_ctx->correction_solver, "Correction solver (with Schur factorizatio… in PCBDDCSubSchursSetUp()
1384 PetscCall(PCShellSetContext(msolv_ctx->correction_solver, msolv_ctx)); in PCBDDCSubSchursSetUp()
1385 PetscCall(PCShellSetView(msolv_ctx->interior_solver, PCBDDCReuseSolvers_View)); in PCBDDCSubSchursSetUp()
1386 PetscCall(PCShellSetApply(msolv_ctx->correction_solver, PCBDDCReuseSolvers_Correction)); in PCBDDCSubSchursSetUp()
1387 …PetscCall(PCShellSetApplyTranspose(msolv_ctx->correction_solver, PCBDDCReuseSolvers_CorrectionTran… in PCBDDCSubSchursSetUp()
1390 PetscCall(MatCreateVecs(S_all, &msolv_ctx->sol_B, &msolv_ctx->rhs_B)); in PCBDDCSubSchursSetUp()
1393 …all(ISGlobalToLocalMappingApplyIS(sub_schurs->BtoNmap, IS_GTOLM_DROP, is_A_all, &msolv_ctx->is_B)); in PCBDDCSubSchursSetUp()
1394 …PetscCall(VecScatterCreate(vec1_B, msolv_ctx->is_B, msolv_ctx->sol_B, NULL, &msolv_ctx->correction… in PCBDDCSubSchursSetUp()
1396 msolv_ctx->is_R = is_A_all; in PCBDDCSubSchursSetUp()
1407 …all(ISGlobalToLocalMappingApplyIS(sub_schurs->BtoNmap, IS_GTOLM_DROP, is_B_all, &msolv_ctx->is_B)); in PCBDDCSubSchursSetUp()
1410 …PetscCall(VecScatterCreate(vec1_B, msolv_ctx->is_B, msolv_ctx->sol_B, is_B_all, &msolv_ctx->correc… in PCBDDCSubSchursSetUp()
1412 …neral(PetscObjectComm((PetscObject)is_A_all), n - n_v, idxs, PETSC_COPY_VALUES, &msolv_ctx->is_R)); in PCBDDCSubSchursSetUp()
1415 PetscCall(ISGetLocalSize(msolv_ctx->is_R, &n_R)); in PCBDDCSubSchursSetUp()
1419 PetscCall(PCSetOperators(msolv_ctx->correction_solver, Afake, Afake)); in PCBDDCSubSchursSetUp()
1427 msolv_ctx->benign_n = benign_n; in PCBDDCSubSchursSetUp()
1428 msolv_ctx->benign_zerodiag_subs = is_p_r; in PCBDDCSubSchursSetUp()
1429 PetscCall(PetscMalloc1(benign_n, &msolv_ctx->benign_save_vals)); in PCBDDCSubSchursSetUp()
1430 msolv_ctx->benign_csAIB = cs_AIB_mat; in PCBDDCSubSchursSetUp()
1431 PetscCall(MatCreateVecs(cs_AIB_mat, &msolv_ctx->benign_corr_work, NULL)); in PCBDDCSubSchursSetUp()
1432 PetscCall(VecGetArray(msolv_ctx->benign_corr_work, &array)); in PCBDDCSubSchursSetUp()
1433 …PetscCall(VecCreateSeqWithArray(PETSC_COMM_SELF, 1, size_schur, array, &msolv_ctx->benign_dummy_sc… in PCBDDCSubSchursSetUp()
1434 PetscCall(VecRestoreArray(msolv_ctx->benign_corr_work, &array)); in PCBDDCSubSchursSetUp()
1435 msolv_ctx->benign_AIIm1ones = benign_AIIm1_ones_mat; in PCBDDCSubSchursSetUp()