Lines Matching refs:mat_ctx

70   FETIDPMat_ctx mat_ctx;  in PCBDDCDestroyFETIDPMat()  local
73 PetscCall(MatShellGetContext(A, &mat_ctx)); in PCBDDCDestroyFETIDPMat()
74 PetscCall(VecDestroy(&mat_ctx->lambda_local)); in PCBDDCDestroyFETIDPMat()
75 PetscCall(VecDestroy(&mat_ctx->temp_solution_D)); in PCBDDCDestroyFETIDPMat()
76 PetscCall(VecDestroy(&mat_ctx->temp_solution_B)); in PCBDDCDestroyFETIDPMat()
77 PetscCall(MatDestroy(&mat_ctx->B_delta)); in PCBDDCDestroyFETIDPMat()
78 PetscCall(MatDestroy(&mat_ctx->B_Ddelta)); in PCBDDCDestroyFETIDPMat()
79 PetscCall(ISDestroy(&mat_ctx->lP_I)); in PCBDDCDestroyFETIDPMat()
80 PetscCall(ISDestroy(&mat_ctx->lP_B)); in PCBDDCDestroyFETIDPMat()
81 PetscCall(MatDestroy(&mat_ctx->B_BB)); in PCBDDCDestroyFETIDPMat()
82 PetscCall(MatDestroy(&mat_ctx->B_BI)); in PCBDDCDestroyFETIDPMat()
83 PetscCall(MatDestroy(&mat_ctx->Bt_BB)); in PCBDDCDestroyFETIDPMat()
84 PetscCall(MatDestroy(&mat_ctx->Bt_BI)); in PCBDDCDestroyFETIDPMat()
85 PetscCall(MatDestroy(&mat_ctx->C)); in PCBDDCDestroyFETIDPMat()
86 PetscCall(VecDestroy(&mat_ctx->rhs_flip)); in PCBDDCDestroyFETIDPMat()
87 PetscCall(VecDestroy(&mat_ctx->vP)); in PCBDDCDestroyFETIDPMat()
88 PetscCall(VecDestroy(&mat_ctx->xPg)); in PCBDDCDestroyFETIDPMat()
89 PetscCall(VecDestroy(&mat_ctx->yPg)); in PCBDDCDestroyFETIDPMat()
90 PetscCall(VecScatterDestroy(&mat_ctx->l2g_lambda)); in PCBDDCDestroyFETIDPMat()
91 PetscCall(VecScatterDestroy(&mat_ctx->l2g_lambda_only)); in PCBDDCDestroyFETIDPMat()
92 PetscCall(VecScatterDestroy(&mat_ctx->l2g_p)); in PCBDDCDestroyFETIDPMat()
93 PetscCall(VecScatterDestroy(&mat_ctx->g2g_p)); in PCBDDCDestroyFETIDPMat()
94 PetscCall(PCDestroy(&mat_ctx->pc)); /* decrease PCBDDC reference count */ in PCBDDCDestroyFETIDPMat()
95 PetscCall(ISDestroy(&mat_ctx->pressure)); in PCBDDCDestroyFETIDPMat()
96 PetscCall(ISDestroy(&mat_ctx->lagrange)); in PCBDDCDestroyFETIDPMat()
97 PetscCall(PetscFree(mat_ctx)); in PCBDDCDestroyFETIDPMat()
718 FETIDPMat_ctx mat_ctx; in PCBDDCSetupFETIDPPCContext() local
724 PetscCall(MatShellGetContext(fetimat, &mat_ctx)); in PCBDDCSetupFETIDPPCContext()
726 PetscCall(PetscObjectReference((PetscObject)mat_ctx->lambda_local)); in PCBDDCSetupFETIDPPCContext()
727 fetidppc_ctx->lambda_local = mat_ctx->lambda_local; in PCBDDCSetupFETIDPPCContext()
728 PetscCall(PetscObjectReference((PetscObject)mat_ctx->B_Ddelta)); in PCBDDCSetupFETIDPPCContext()
729 fetidppc_ctx->B_Ddelta = mat_ctx->B_Ddelta; in PCBDDCSetupFETIDPPCContext()
730 if (mat_ctx->deluxe_nonred) { in PCBDDCSetupFETIDPPCContext()
736 PetscCall(MatShellGetContext(mat_ctx->B_Ddelta, &ctx)); in PCBDDCSetupFETIDPPCContext()
749 if (mat_ctx->l2g_lambda_only) { in PCBDDCSetupFETIDPPCContext()
750 PetscCall(PetscObjectReference((PetscObject)mat_ctx->l2g_lambda_only)); in PCBDDCSetupFETIDPPCContext()
751 fetidppc_ctx->l2g_lambda = mat_ctx->l2g_lambda_only; in PCBDDCSetupFETIDPPCContext()
753 PetscCall(PetscObjectReference((PetscObject)mat_ctx->l2g_lambda)); in PCBDDCSetupFETIDPPCContext()
754 fetidppc_ctx->l2g_lambda = mat_ctx->l2g_lambda; in PCBDDCSetupFETIDPPCContext()
847 if (mat_ctx->xPg) { in PCBDDCSetupFETIDPPCContext()
848 PetscCall(PetscObjectReference((PetscObject)mat_ctx->xPg)); in PCBDDCSetupFETIDPPCContext()
849 fetidppc_ctx->xPg = mat_ctx->xPg; in PCBDDCSetupFETIDPPCContext()
850 PetscCall(PetscObjectReference((PetscObject)mat_ctx->yPg)); in PCBDDCSetupFETIDPPCContext()
851 fetidppc_ctx->yPg = mat_ctx->yPg; in PCBDDCSetupFETIDPPCContext()
858 FETIDPMat_ctx mat_ctx; in FETIDPMatMult_Kernel() local
863 PetscCall(MatShellGetContext(fetimat, &mat_ctx)); in FETIDPMatMult_Kernel()
864 pcis = (PC_IS *)mat_ctx->pc->data; in FETIDPMatMult_Kernel()
865 pcbddc = (PC_BDDC *)mat_ctx->pc->data; in FETIDPMatMult_Kernel()
868 …PetscCall(VecScatterBegin(mat_ctx->l2g_lambda, x, mat_ctx->lambda_local, INSERT_VALUES, SCATTER_RE… in FETIDPMatMult_Kernel()
869 …PetscCall(VecScatterEnd(mat_ctx->l2g_lambda, x, mat_ctx->lambda_local, INSERT_VALUES, SCATTER_REVE… in FETIDPMatMult_Kernel()
870 PetscCall(MatMultTranspose(mat_ctx->B_delta, mat_ctx->lambda_local, pcis->vec1_B)); in FETIDPMatMult_Kernel()
873 if (mat_ctx->l2g_p) { in FETIDPMatMult_Kernel()
874 PetscCall(VecScatterBegin(mat_ctx->l2g_p, x, mat_ctx->vP, INSERT_VALUES, SCATTER_REVERSE)); in FETIDPMatMult_Kernel()
875 PetscCall(VecScatterEnd(mat_ctx->l2g_p, x, mat_ctx->vP, INSERT_VALUES, SCATTER_REVERSE)); in FETIDPMatMult_Kernel()
878 PetscCall(MatMultTranspose(mat_ctx->B_BI, mat_ctx->vP, pcis->vec1_D)); in FETIDPMatMult_Kernel()
880 PetscCall(MatMult(mat_ctx->Bt_BI, mat_ctx->vP, pcis->vec1_D)); in FETIDPMatMult_Kernel()
884 PetscCall(MatMultTransposeAdd(mat_ctx->B_BB, mat_ctx->vP, pcis->vec1_B, pcis->vec1_B)); in FETIDPMatMult_Kernel()
886 PetscCall(MatMultAdd(mat_ctx->Bt_BB, mat_ctx->vP, pcis->vec1_B, pcis->vec1_B)); in FETIDPMatMult_Kernel()
893 PetscCall(PCBDDCApplyInterfacePreconditioner(mat_ctx->pc, trans)); in FETIDPMatMult_Kernel()
897 PetscCall(MatMult(mat_ctx->B_delta, pcis->vec1_B, mat_ctx->lambda_local)); in FETIDPMatMult_Kernel()
899 if (mat_ctx->C) { in FETIDPMatMult_Kernel()
906 PetscCall(VecPlaceArray(mat_ctx->xPg, lx)); in FETIDPMatMult_Kernel()
907 PetscCall(VecPlaceArray(mat_ctx->yPg, ly)); in FETIDPMatMult_Kernel()
909 PetscCall(MatMultTranspose(mat_ctx->C, mat_ctx->xPg, mat_ctx->yPg)); in FETIDPMatMult_Kernel()
911 PetscCall(MatMult(mat_ctx->C, mat_ctx->xPg, mat_ctx->yPg)); in FETIDPMatMult_Kernel()
913 PetscCall(VecResetArray(mat_ctx->xPg)); in FETIDPMatMult_Kernel()
914 PetscCall(VecResetArray(mat_ctx->yPg)); in FETIDPMatMult_Kernel()
919 if (mat_ctx->l2g_p) { in FETIDPMatMult_Kernel()
920 PetscCall(VecISSet(pcis->vec1_B, mat_ctx->lP_B, 0)); in FETIDPMatMult_Kernel()
922 PetscCall(MatMultTranspose(mat_ctx->Bt_BB, pcis->vec1_B, mat_ctx->vP)); in FETIDPMatMult_Kernel()
924 PetscCall(MatMult(mat_ctx->B_BB, pcis->vec1_B, mat_ctx->vP)); in FETIDPMatMult_Kernel()
927 PetscCall(VecISSet(pcis->vec1_D, mat_ctx->lP_I, 0)); in FETIDPMatMult_Kernel()
929 PetscCall(MatMultTransposeAdd(mat_ctx->Bt_BI, pcis->vec1_D, mat_ctx->vP, mat_ctx->vP)); in FETIDPMatMult_Kernel()
931 PetscCall(MatMultAdd(mat_ctx->B_BI, pcis->vec1_D, mat_ctx->vP, mat_ctx->vP)); in FETIDPMatMult_Kernel()
934 PetscCall(VecScatterBegin(mat_ctx->l2g_p, mat_ctx->vP, y, ADD_VALUES, SCATTER_FORWARD)); in FETIDPMatMult_Kernel()
935 PetscCall(VecScatterEnd(mat_ctx->l2g_p, mat_ctx->vP, y, ADD_VALUES, SCATTER_FORWARD)); in FETIDPMatMult_Kernel()
937 …PetscCall(VecScatterBegin(mat_ctx->l2g_lambda, mat_ctx->lambda_local, y, ADD_VALUES, SCATTER_FORWA… in FETIDPMatMult_Kernel()
938 …PetscCall(VecScatterEnd(mat_ctx->l2g_lambda, mat_ctx->lambda_local, y, ADD_VALUES, SCATTER_FORWARD… in FETIDPMatMult_Kernel()