Lines Matching refs:mat_ctx
2120 FETIDPMat_ctx mat_ctx; in PCBDDCMatFETIDPGetRHS_BDDC() local
2126 PetscCall(MatShellGetContext(fetidp_mat, &mat_ctx)); in PCBDDCMatFETIDPGetRHS_BDDC()
2127 pcis = (PC_IS *)mat_ctx->pc->data; in PCBDDCMatFETIDPGetRHS_BDDC()
2128 pcbddc = (PC_BDDC *)mat_ctx->pc->data; in PCBDDCMatFETIDPGetRHS_BDDC()
2133 if (mat_ctx->rhs_flip) { in PCBDDCMatFETIDPGetRHS_BDDC()
2134 PetscCall(VecPointwiseMult(pcbddc->original_rhs, standard_rhs, mat_ctx->rhs_flip)); in PCBDDCMatFETIDPGetRHS_BDDC()
2138 if (mat_ctx->g2g_p) { in PCBDDCMatFETIDPGetRHS_BDDC()
2140 …PetscCall(VecScatterBegin(mat_ctx->g2g_p, fetidp_flux_rhs, pcbddc->original_rhs, INSERT_VALUES, SC… in PCBDDCMatFETIDPGetRHS_BDDC()
2141 …PetscCall(VecScatterEnd(mat_ctx->g2g_p, fetidp_flux_rhs, pcbddc->original_rhs, INSERT_VALUES, SCAT… in PCBDDCMatFETIDPGetRHS_BDDC()
2142 …PetscCall(VecScatterBegin(mat_ctx->g2g_p, standard_rhs, fetidp_flux_rhs, INSERT_VALUES, SCATTER_FO… in PCBDDCMatFETIDPGetRHS_BDDC()
2143 …PetscCall(VecScatterEnd(mat_ctx->g2g_p, standard_rhs, fetidp_flux_rhs, INSERT_VALUES, SCATTER_FORW… in PCBDDCMatFETIDPGetRHS_BDDC()
2144 if (!mat_ctx->rhs_flip) PetscCall(VecScale(fetidp_flux_rhs, -1.)); in PCBDDCMatFETIDPGetRHS_BDDC()
2150 PetscCall(PCPreSolve_BDDC(mat_ctx->pc, NULL, pcbddc->original_rhs, NULL)); in PCBDDCMatFETIDPGetRHS_BDDC()
2158 …PetscCall(VecScatterBegin(pcis->global_to_D, work, mat_ctx->temp_solution_D, INSERT_VALUES, SCATTE… in PCBDDCMatFETIDPGetRHS_BDDC()
2159 …PetscCall(VecScatterEnd(pcis->global_to_D, work, mat_ctx->temp_solution_D, INSERT_VALUES, SCATTER_… in PCBDDCMatFETIDPGetRHS_BDDC()
2162 …PetscCall(VecScatterBegin(pcis->global_to_B, work, mat_ctx->temp_solution_B, INSERT_VALUES, SCATTE… in PCBDDCMatFETIDPGetRHS_BDDC()
2163 …PetscCall(VecScatterEnd(pcis->global_to_B, work, mat_ctx->temp_solution_B, INSERT_VALUES, SCATTER_… in PCBDDCMatFETIDPGetRHS_BDDC()
2165 PetscCall(VecPointwiseMult(mat_ctx->temp_solution_B, pcis->D, mat_ctx->temp_solution_B)); in PCBDDCMatFETIDPGetRHS_BDDC()
2169 PetscCall(PetscLogEventBegin(PC_BDDC_Solves[pcbddc->current_level][0], mat_ctx->pc, 0, 0, 0)); in PCBDDCMatFETIDPGetRHS_BDDC()
2170 PetscCall(KSPSolve(pcbddc->ksp_D, mat_ctx->temp_solution_D, pcis->vec1_D)); in PCBDDCMatFETIDPGetRHS_BDDC()
2171 PetscCall(PetscLogEventEnd(PC_BDDC_Solves[pcbddc->current_level][0], mat_ctx->pc, 0, 0, 0)); in PCBDDCMatFETIDPGetRHS_BDDC()
2174 PetscCall(VecAXPY(mat_ctx->temp_solution_B, -1.0, pcis->vec1_B)); in PCBDDCMatFETIDPGetRHS_BDDC()
2176 …PetscCall(VecScatterBegin(pcis->global_to_B, mat_ctx->temp_solution_B, work, ADD_VALUES, SCATTER_R… in PCBDDCMatFETIDPGetRHS_BDDC()
2177 …PetscCall(VecScatterEnd(pcis->global_to_B, mat_ctx->temp_solution_B, work, ADD_VALUES, SCATTER_REV… in PCBDDCMatFETIDPGetRHS_BDDC()
2179 …PetscCall(VecScatterBegin(pcis->global_to_B, work, mat_ctx->temp_solution_B, INSERT_VALUES, SCATTE… in PCBDDCMatFETIDPGetRHS_BDDC()
2180 …PetscCall(VecScatterEnd(pcis->global_to_B, work, mat_ctx->temp_solution_B, INSERT_VALUES, SCATTER_… in PCBDDCMatFETIDPGetRHS_BDDC()
2181 PetscCall(VecPointwiseMult(mat_ctx->temp_solution_B, pcis->D, mat_ctx->temp_solution_B)); in PCBDDCMatFETIDPGetRHS_BDDC()
2184 PetscCall(VecCopy(mat_ctx->temp_solution_B, pcis->vec1_B)); in PCBDDCMatFETIDPGetRHS_BDDC()
2185 if (pcbddc->switch_static) PetscCall(VecCopy(mat_ctx->temp_solution_D, pcis->vec1_D)); in PCBDDCMatFETIDPGetRHS_BDDC()
2188 PetscCall(PCBDDCApplyInterfacePreconditioner(mat_ctx->pc, PETSC_FALSE)); in PCBDDCMatFETIDPGetRHS_BDDC()
2192 PetscCall(MatMult(mat_ctx->B_delta, pcis->vec1_B, mat_ctx->lambda_local)); in PCBDDCMatFETIDPGetRHS_BDDC()
2193 …PetscCall(VecScatterBegin(mat_ctx->l2g_lambda, mat_ctx->lambda_local, fetidp_flux_rhs, ADD_VALUES,… in PCBDDCMatFETIDPGetRHS_BDDC()
2194 …PetscCall(VecScatterEnd(mat_ctx->l2g_lambda, mat_ctx->lambda_local, fetidp_flux_rhs, ADD_VALUES, S… in PCBDDCMatFETIDPGetRHS_BDDC()
2196 if (mat_ctx->l2g_p) { in PCBDDCMatFETIDPGetRHS_BDDC()
2197 PetscCall(VecISSet(pcis->vec1_B, mat_ctx->lP_B, 0)); in PCBDDCMatFETIDPGetRHS_BDDC()
2198 PetscCall(MatMult(mat_ctx->B_BB, pcis->vec1_B, mat_ctx->vP)); in PCBDDCMatFETIDPGetRHS_BDDC()
2200 PetscCall(VecISSet(pcis->vec1_D, mat_ctx->lP_I, 0)); in PCBDDCMatFETIDPGetRHS_BDDC()
2201 PetscCall(MatMultAdd(mat_ctx->B_BI, pcis->vec1_D, mat_ctx->vP, mat_ctx->vP)); in PCBDDCMatFETIDPGetRHS_BDDC()
2203 …PetscCall(VecScatterBegin(mat_ctx->l2g_p, mat_ctx->vP, fetidp_flux_rhs, ADD_VALUES, SCATTER_FORWAR… in PCBDDCMatFETIDPGetRHS_BDDC()
2204 …PetscCall(VecScatterEnd(mat_ctx->l2g_p, mat_ctx->vP, fetidp_flux_rhs, ADD_VALUES, SCATTER_FORWARD)… in PCBDDCMatFETIDPGetRHS_BDDC()
2230 FETIDPMat_ctx mat_ctx; in PCBDDCMatFETIDPGetRHS() local
2236 PetscCall(MatShellGetContext(fetidp_mat, &mat_ctx)); in PCBDDCMatFETIDPGetRHS()
2237 …PetscUseMethod(mat_ctx->pc, "PCBDDCMatFETIDPGetRHS_C", (Mat, Vec, Vec), (fetidp_mat, standard_rhs,… in PCBDDCMatFETIDPGetRHS()
2243 FETIDPMat_ctx mat_ctx; in PCBDDCMatFETIDPGetSolution_BDDC() local
2249 PetscCall(MatShellGetContext(fetidp_mat, &mat_ctx)); in PCBDDCMatFETIDPGetSolution_BDDC()
2250 pcis = (PC_IS *)mat_ctx->pc->data; in PCBDDCMatFETIDPGetSolution_BDDC()
2251 pcbddc = (PC_BDDC *)mat_ctx->pc->data; in PCBDDCMatFETIDPGetSolution_BDDC()
2255 …PetscCall(VecScatterBegin(mat_ctx->l2g_lambda, fetidp_flux_sol, mat_ctx->lambda_local, INSERT_VALU… in PCBDDCMatFETIDPGetSolution_BDDC()
2256 …PetscCall(VecScatterEnd(mat_ctx->l2g_lambda, fetidp_flux_sol, mat_ctx->lambda_local, INSERT_VALUES… in PCBDDCMatFETIDPGetSolution_BDDC()
2257 PetscCall(MatMultTranspose(mat_ctx->B_delta, mat_ctx->lambda_local, pcis->vec1_B)); in PCBDDCMatFETIDPGetSolution_BDDC()
2258 if (mat_ctx->l2g_p) { in PCBDDCMatFETIDPGetSolution_BDDC()
2259 …PetscCall(VecScatterBegin(mat_ctx->l2g_p, fetidp_flux_sol, mat_ctx->vP, INSERT_VALUES, SCATTER_REV… in PCBDDCMatFETIDPGetSolution_BDDC()
2260 …PetscCall(VecScatterEnd(mat_ctx->l2g_p, fetidp_flux_sol, mat_ctx->vP, INSERT_VALUES, SCATTER_REVER… in PCBDDCMatFETIDPGetSolution_BDDC()
2261 PetscCall(MatMultAdd(mat_ctx->Bt_BB, mat_ctx->vP, pcis->vec1_B, pcis->vec1_B)); in PCBDDCMatFETIDPGetSolution_BDDC()
2265 PetscCall(VecAYPX(pcis->vec1_B, -1.0, mat_ctx->temp_solution_B)); in PCBDDCMatFETIDPGetSolution_BDDC()
2267 PetscCall(VecCopy(mat_ctx->temp_solution_D, pcis->vec1_D)); in PCBDDCMatFETIDPGetSolution_BDDC()
2268 if (mat_ctx->l2g_p) { in PCBDDCMatFETIDPGetSolution_BDDC()
2269 PetscCall(VecScale(mat_ctx->vP, -1.)); in PCBDDCMatFETIDPGetSolution_BDDC()
2270 PetscCall(MatMultAdd(mat_ctx->Bt_BI, mat_ctx->vP, pcis->vec1_D, pcis->vec1_D)); in PCBDDCMatFETIDPGetSolution_BDDC()
2276 PetscCall(PCBDDCApplyInterfacePreconditioner(mat_ctx->pc, PETSC_FALSE)); in PCBDDCMatFETIDPGetSolution_BDDC()
2286 PetscCall(VecAYPX(pcis->vec1_D, -1.0, mat_ctx->temp_solution_D)); in PCBDDCMatFETIDPGetSolution_BDDC()
2287 PetscCall(PetscLogEventBegin(PC_BDDC_Solves[pcbddc->current_level][0], mat_ctx->pc, 0, 0, 0)); in PCBDDCMatFETIDPGetSolution_BDDC()
2289 PetscCall(PetscLogEventEnd(PC_BDDC_Solves[pcbddc->current_level][0], mat_ctx->pc, 0, 0, 0)); in PCBDDCMatFETIDPGetSolution_BDDC()
2296 PetscCall(PCBDDCBenignGetOrSetP0(mat_ctx->pc, work, PETSC_FALSE)); in PCBDDCMatFETIDPGetSolution_BDDC()
2298 PetscCall(PCPostSolve_BDDC(mat_ctx->pc, NULL, NULL, standard_sol)); in PCBDDCMatFETIDPGetSolution_BDDC()
2299 if (mat_ctx->g2g_p) { in PCBDDCMatFETIDPGetSolution_BDDC()
2300 …PetscCall(VecScatterBegin(mat_ctx->g2g_p, fetidp_flux_sol, standard_sol, INSERT_VALUES, SCATTER_RE… in PCBDDCMatFETIDPGetSolution_BDDC()
2301 …PetscCall(VecScatterEnd(mat_ctx->g2g_p, fetidp_flux_sol, standard_sol, INSERT_VALUES, SCATTER_REVE… in PCBDDCMatFETIDPGetSolution_BDDC()
2415 FETIDPMat_ctx mat_ctx; in PCBDDCMatFETIDPGetSolution() local
2421 PetscCall(MatShellGetContext(fetidp_mat, &mat_ctx)); in PCBDDCMatFETIDPGetSolution()
2422 …PetscUseMethod(mat_ctx->pc, "PCBDDCMatFETIDPGetSolution_C", (Mat, Vec, Vec), (fetidp_mat, fetidp_f… in PCBDDCMatFETIDPGetSolution()