Lines Matching refs:pcis
124 PC_IS *pcis = (PC_IS *)pc->data; in PCView_BDDC() local
190 PetscCall(VecSet(pcis->vec1_B, 1.0)); in PCView_BDDC()
193 …PetscCall(VecScatterBegin(pcis->global_to_B, pcis->vec1_B, counter, INSERT_VALUES, SCATTER_REVERSE… in PCView_BDDC()
194 …PetscCall(VecScatterEnd(pcis->global_to_B, pcis->vec1_B, counter, INSERT_VALUES, SCATTER_REVERSE)); in PCView_BDDC()
201 loc[0] = !!pcis->n; in PCView_BDDC()
202 loc[1] = pcis->n - pcis->n_B; in PCView_BDDC()
203 loc[2] = pcis->n_B; in PCView_BDDC()
205 loc[4] = pcis->n; in PCView_BDDC()
206 … = pcbddc->n_local_subs > 0 ? pcbddc->n_local_subs : (pcis->n ? 1 : 0); in PCView_BDDC()
1206 PC_IS *pcis = (PC_IS *)pc->data; in PCPreSolve_BDDC() local
1219 if (!pcbddc->original_rhs) PetscCall(VecDuplicate(pcis->vec1_global, &pcbddc->original_rhs)); in PCPreSolve_BDDC()
1220 if (!pcbddc->temp_solution) PetscCall(VecDuplicate(pcis->vec1_global, &pcbddc->temp_solution)); in PCPreSolve_BDDC()
1256 PetscCall(MatGetDiagonal(pc->pmat, pcis->vec1_global)); in PCPreSolve_BDDC()
1257 PetscCall(VecPointwiseDivide(pcis->vec1_global, rhs, pcis->vec1_global)); in PCPreSolve_BDDC()
1258 …PetscCall(VecScatterBegin(matis->rctx, pcis->vec1_global, pcis->vec2_N, INSERT_VALUES, SCATTER_FOR… in PCPreSolve_BDDC()
1259 …PetscCall(VecScatterEnd(matis->rctx, pcis->vec1_global, pcis->vec2_N, INSERT_VALUES, SCATTER_FORWA… in PCPreSolve_BDDC()
1260 … PetscCall(VecScatterBegin(matis->rctx, used_vec, pcis->vec1_N, INSERT_VALUES, SCATTER_FORWARD)); in PCPreSolve_BDDC()
1261 PetscCall(VecScatterEnd(matis->rctx, used_vec, pcis->vec1_N, INSERT_VALUES, SCATTER_FORWARD)); in PCPreSolve_BDDC()
1263 PetscCall(VecGetArray(pcis->vec1_N, &array_x)); in PCPreSolve_BDDC()
1264 PetscCall(VecGetArrayRead(pcis->vec2_N, &array_diagonal)); in PCPreSolve_BDDC()
1268 PetscCall(VecRestoreArrayRead(pcis->vec2_N, &array_diagonal)); in PCPreSolve_BDDC()
1269 PetscCall(VecRestoreArray(pcis->vec1_N, &array_x)); in PCPreSolve_BDDC()
1270 … PetscCall(VecScatterBegin(matis->rctx, pcis->vec1_N, used_vec, INSERT_VALUES, SCATTER_REVERSE)); in PCPreSolve_BDDC()
1271 PetscCall(VecScatterEnd(matis->rctx, pcis->vec1_N, used_vec, INSERT_VALUES, SCATTER_REVERSE)); in PCPreSolve_BDDC()
1326 PetscCall(VecDuplicate(pcis->vec1_global, &v)); in PCPreSolve_BDDC()
1345 PetscCall(VecLockReadPop(pcis->vec1_global)); in PCPreSolve_BDDC()
1347 PetscCall(MatMultTranspose(pcbddc->ChangeOfBasisMatrix, rhs, pcis->vec1_global)); in PCPreSolve_BDDC()
1349 …PetscCall(VecScatterBegin(pcis->global_to_D, pcis->vec1_global, pcis->vec1_D, INSERT_VALUES, SCATT… in PCPreSolve_BDDC()
1350 …PetscCall(VecScatterEnd(pcis->global_to_D, pcis->vec1_global, pcis->vec1_D, INSERT_VALUES, SCATTER… in PCPreSolve_BDDC()
1352 … PetscCall(VecScatterBegin(pcis->global_to_D, rhs, pcis->vec1_D, INSERT_VALUES, SCATTER_FORWARD)); in PCPreSolve_BDDC()
1353 … PetscCall(VecScatterEnd(pcis->global_to_D, rhs, pcis->vec1_D, INSERT_VALUES, SCATTER_FORWARD)); in PCPreSolve_BDDC()
1356 PetscCall(KSPSolve(pcbddc->ksp_D, pcis->vec1_D, pcis->vec2_D)); in PCPreSolve_BDDC()
1358 PetscCall(KSPCheckSolve(pcbddc->ksp_D, pc, pcis->vec2_D)); in PCPreSolve_BDDC()
1360 PetscCall(VecSet(pcis->vec1_global, 0.)); in PCPreSolve_BDDC()
1361 …PetscCall(VecScatterBegin(pcis->global_to_D, pcis->vec2_D, pcis->vec1_global, INSERT_VALUES, SCATT… in PCPreSolve_BDDC()
1362 …PetscCall(VecScatterEnd(pcis->global_to_D, pcis->vec2_D, pcis->vec1_global, INSERT_VALUES, SCATTER… in PCPreSolve_BDDC()
1363 PetscCall(MatMult(pcbddc->ChangeOfBasisMatrix, pcis->vec1_global, x)); in PCPreSolve_BDDC()
1365 … PetscCall(VecScatterBegin(pcis->global_to_D, pcis->vec2_D, x, INSERT_VALUES, SCATTER_REVERSE)); in PCPreSolve_BDDC()
1366 PetscCall(VecScatterEnd(pcis->global_to_D, pcis->vec2_D, x, INSERT_VALUES, SCATTER_REVERSE)); in PCPreSolve_BDDC()
1371 PetscCall(VecLockReadPop(pcis->vec1_global)); in PCPreSolve_BDDC()
1491 PC_IS *pcis = (PC_IS *)pc->data; in PCSetUp_BDDC() local
1499 if (pc->flag == SAME_NONZERO_PATTERN && pcis->reusesubmatrices == PETSC_TRUE) { in PCSetUp_BDDC()
1501 pcis->reusesubmatrices = PETSC_FALSE; in PCSetUp_BDDC()
1503 pcis->reusesubmatrices = PETSC_TRUE; in PCSetUp_BDDC()
1506 pcis->reusesubmatrices = PETSC_FALSE; in PCSetUp_BDDC()
1617 PC_IS *pcis = (PC_IS *)pc->data; in PCSetUp_BDDC() local
1626 PetscCall(MatDestroy(&pcis->A_IB)); in PCSetUp_BDDC()
1627 PetscCall(MatDestroy(&pcis->A_BI)); in PCSetUp_BDDC()
1628 PetscCall(MatDestroy(&pcis->A_BB)); in PCSetUp_BDDC()
1629 …tscCall(MatCreateSubMatrix(pcbddc->local_mat, pcis->is_B_local, pcis->is_B_local, MAT_INITIAL_MATR… in PCSetUp_BDDC()
1630 …tscCall(MatCreateSubMatrix(pcbddc->local_mat, pcis->is_I_local, pcis->is_B_local, MAT_INITIAL_MATR… in PCSetUp_BDDC()
1631 …tscCall(MatCreateSubMatrix(pcbddc->local_mat, pcis->is_B_local, pcis->is_I_local, MAT_INITIAL_MATR… in PCSetUp_BDDC()
1633 pcis->reusesubmatrices = PETSC_FALSE; in PCSetUp_BDDC()
1644 PC_IS *pcis = (PC_IS *)pc->data; in PCSetUp_BDDC() local
1650 PetscCall(MatCreateSubMatrix(lA, lP, pcis->is_I_local, MAT_INITIAL_MATRIX, &B_BI)); in PCSetUp_BDDC()
1651 PetscCall(MatCreateSubMatrix(lA, lP, pcis->is_B_local, MAT_INITIAL_MATRIX, &B_BB)); in PCSetUp_BDDC()
1655 PetscCall(MatCreateSubMatrix(lA, lP, pcis->is_I_local, MAT_INITIAL_MATRIX, &B_BI)); in PCSetUp_BDDC()
1656 PetscCall(MatCreateSubMatrix(lA, lP, pcis->is_B_local, MAT_INITIAL_MATRIX, &B_BB)); in PCSetUp_BDDC()
1657 PetscCall(MatCreateSubMatrix(lA, pcis->is_I_local, lP, MAT_INITIAL_MATRIX, &Bt_BI)); in PCSetUp_BDDC()
1658 PetscCall(MatCreateSubMatrix(lA, pcis->is_B_local, lP, MAT_INITIAL_MATRIX, &Bt_BB)); in PCSetUp_BDDC()
1704 PC_IS *pcis = (PC_IS *)pc->data; in PCApply_BDDC() local
1707 PetscInt n_B = pcis->n_B, n_D = pcis->n - n_B; in PCApply_BDDC()
1728 PetscCall(VecCopy(r, pcis->vec1_global)); in PCApply_BDDC()
1729 PetscCall(VecLockReadPush(pcis->vec1_global)); in PCApply_BDDC()
1738 PetscCall(VecScatterBegin(pcis->global_to_D, r, pcis->vec1_D, INSERT_VALUES, SCATTER_FORWARD)); in PCApply_BDDC()
1739 PetscCall(VecScatterEnd(pcis->global_to_D, r, pcis->vec1_D, INSERT_VALUES, SCATTER_FORWARD)); in PCApply_BDDC()
1747 PetscCall(KSPSolve(pcbddc->ksp_D, pcis->vec1_D, pcis->vec2_D)); in PCApply_BDDC()
1749 PetscCall(KSPCheckSolve(pcbddc->ksp_D, pc, pcis->vec2_D)); in PCApply_BDDC()
1750 PetscCall(VecScale(pcis->vec2_D, m_one)); in PCApply_BDDC()
1752 PetscCall(VecSet(pcis->vec1_N, 0.)); in PCApply_BDDC()
1753 …PetscCall(VecScatterBegin(pcis->N_to_D, pcis->vec2_D, pcis->vec1_N, INSERT_VALUES, SCATTER_REVERSE… in PCApply_BDDC()
1754 …PetscCall(VecScatterEnd(pcis->N_to_D, pcis->vec2_D, pcis->vec1_N, INSERT_VALUES, SCATTER_REVERSE)); in PCApply_BDDC()
1756 PetscCall(MatMult(lA, pcis->vec1_N, pcis->vec2_N)); in PCApply_BDDC()
1758 PetscCall(MatMult(pcbddc->switch_static_change, pcis->vec1_N, pcis->vec2_N)); in PCApply_BDDC()
1759 PetscCall(MatMult(lA, pcis->vec2_N, pcis->vec1_N)); in PCApply_BDDC()
1760 PetscCall(MatMultTranspose(pcbddc->switch_static_change, pcis->vec1_N, pcis->vec2_N)); in PCApply_BDDC()
1762 … PetscCall(VecScatterBegin(pcis->N_to_D, pcis->vec2_N, pcis->vec1_D, ADD_VALUES, SCATTER_FORWARD)); in PCApply_BDDC()
1763 … PetscCall(VecScatterEnd(pcis->N_to_D, pcis->vec2_N, pcis->vec1_D, ADD_VALUES, SCATTER_FORWARD)); in PCApply_BDDC()
1764 …PetscCall(VecScatterBegin(pcis->N_to_B, pcis->vec2_N, pcis->vec1_B, INSERT_VALUES, SCATTER_FORWARD… in PCApply_BDDC()
1765 …PetscCall(VecScatterEnd(pcis->N_to_B, pcis->vec2_N, pcis->vec1_B, INSERT_VALUES, SCATTER_FORWARD)); in PCApply_BDDC()
1767 PetscCall(MatMult(pcis->A_BI, pcis->vec2_D, pcis->vec1_B)); in PCApply_BDDC()
1771 PetscCall(VecSet(pcis->vec1_B, zero)); in PCApply_BDDC()
1773 PetscCall(VecScatterBegin(pcis->global_to_B, pcis->vec1_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCApply_BDDC()
1774 PetscCall(VecScatterEnd(pcis->global_to_B, pcis->vec1_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCApply_BDDC()
1775 PetscCall(PCBDDCScalingRestriction(pc, z, pcis->vec1_B)); in PCApply_BDDC()
1777 if (!pcbddc->benign_apply_coarse_only) PetscCall(PCBDDCScalingRestriction(pc, r, pcis->vec1_B)); in PCApply_BDDC()
1781 PetscCall(VecScatterBegin(pcis->global_to_D, r, pcis->vec1_D, INSERT_VALUES, SCATTER_FORWARD)); in PCApply_BDDC()
1782 PetscCall(VecScatterEnd(pcis->global_to_D, r, pcis->vec1_D, INSERT_VALUES, SCATTER_FORWARD)); in PCApply_BDDC()
1790 PetscCall(PCBDDCScalingExtension(pc, pcis->vec1_B, z)); in PCApply_BDDC()
1792 PetscCall(VecScatterBegin(pcis->global_to_D, pcis->vec1_D, z, INSERT_VALUES, SCATTER_REVERSE)); in PCApply_BDDC()
1793 PetscCall(VecScatterEnd(pcis->global_to_D, pcis->vec1_D, z, INSERT_VALUES, SCATTER_REVERSE)); in PCApply_BDDC()
1797 PetscCall(VecScatterBegin(pcis->global_to_B, z, pcis->vec1_B, INSERT_VALUES, SCATTER_FORWARD)); in PCApply_BDDC()
1798 PetscCall(VecScatterEnd(pcis->global_to_B, z, pcis->vec1_B, INSERT_VALUES, SCATTER_FORWARD)); in PCApply_BDDC()
1801 …PetscCall(VecScatterBegin(pcis->N_to_D, pcis->vec1_D, pcis->vec1_N, INSERT_VALUES, SCATTER_REVERSE… in PCApply_BDDC()
1802 …PetscCall(VecScatterEnd(pcis->N_to_D, pcis->vec1_D, pcis->vec1_N, INSERT_VALUES, SCATTER_REVERSE)); in PCApply_BDDC()
1803 …PetscCall(VecScatterBegin(pcis->N_to_B, pcis->vec1_B, pcis->vec1_N, INSERT_VALUES, SCATTER_REVERSE… in PCApply_BDDC()
1804 …PetscCall(VecScatterEnd(pcis->N_to_B, pcis->vec1_B, pcis->vec1_N, INSERT_VALUES, SCATTER_REVERSE)); in PCApply_BDDC()
1806 PetscCall(MatMult(lA, pcis->vec1_N, pcis->vec2_N)); in PCApply_BDDC()
1808 PetscCall(MatMult(pcbddc->switch_static_change, pcis->vec1_N, pcis->vec2_N)); in PCApply_BDDC()
1809 PetscCall(MatMult(lA, pcis->vec2_N, pcis->vec1_N)); in PCApply_BDDC()
1810 PetscCall(MatMultTranspose(pcbddc->switch_static_change, pcis->vec1_N, pcis->vec2_N)); in PCApply_BDDC()
1812 …PetscCall(VecScatterBegin(pcis->N_to_D, pcis->vec2_N, pcis->vec3_D, INSERT_VALUES, SCATTER_FORWARD… in PCApply_BDDC()
1813 …PetscCall(VecScatterEnd(pcis->N_to_D, pcis->vec2_N, pcis->vec3_D, INSERT_VALUES, SCATTER_FORWARD)); in PCApply_BDDC()
1815 PetscCall(MatMult(pcis->A_IB, pcis->vec1_B, pcis->vec3_D)); in PCApply_BDDC()
1819 PetscCall(MatMult(lA, pcis->vec1_D, pcis->vec3_D)); in PCApply_BDDC()
1821 PetscCall(MatMult(pcbddc->switch_static_change, pcis->vec1_D, pcis->vec1_N)); in PCApply_BDDC()
1822 PetscCall(MatMult(lA, pcis->vec1_N, pcis->vec2_N)); in PCApply_BDDC()
1823 PetscCall(MatMultTranspose(pcbddc->switch_static_change, pcis->vec2_N, pcis->vec3_D)); in PCApply_BDDC()
1827 PetscCall(KSPSolve(pcbddc->ksp_D, pcis->vec3_D, pcis->vec4_D)); in PCApply_BDDC()
1829 PetscCall(KSPCheckSolve(pcbddc->ksp_D, pc, pcis->vec4_D)); in PCApply_BDDC()
1833 PetscCall(VecAXPBYPCZ(pcis->vec2_D, m_one, one, m_one, pcis->vec4_D, pcis->vec1_D)); in PCApply_BDDC()
1835 PetscCall(VecAXPBY(pcis->vec2_D, m_one, m_one, pcis->vec4_D)); in PCApply_BDDC()
1837 PetscCall(VecScatterBegin(pcis->global_to_D, pcis->vec2_D, z, INSERT_VALUES, SCATTER_REVERSE)); in PCApply_BDDC()
1838 PetscCall(VecScatterEnd(pcis->global_to_D, pcis->vec2_D, z, INSERT_VALUES, SCATTER_REVERSE)); in PCApply_BDDC()
1841 PetscCall(VecAXPBY(pcis->vec4_D, one, m_one, pcis->vec1_D)); in PCApply_BDDC()
1843 PetscCall(VecScale(pcis->vec4_D, m_one)); in PCApply_BDDC()
1845 PetscCall(VecScatterBegin(pcis->global_to_D, pcis->vec4_D, z, INSERT_VALUES, SCATTER_REVERSE)); in PCApply_BDDC()
1846 PetscCall(VecScatterEnd(pcis->global_to_D, pcis->vec4_D, z, INSERT_VALUES, SCATTER_REVERSE)); in PCApply_BDDC()
1863 PC_IS *pcis = (PC_IS *)pc->data; in PCApplyTranspose_BDDC() local
1866 PetscInt n_B = pcis->n_B, n_D = pcis->n - n_B; in PCApplyTranspose_BDDC()
1883 PetscCall(VecCopy(r, pcis->vec1_global)); in PCApplyTranspose_BDDC()
1884 PetscCall(VecLockReadPush(pcis->vec1_global)); in PCApplyTranspose_BDDC()
1893 PetscCall(VecScatterBegin(pcis->global_to_D, r, pcis->vec1_D, INSERT_VALUES, SCATTER_FORWARD)); in PCApplyTranspose_BDDC()
1894 PetscCall(VecScatterEnd(pcis->global_to_D, r, pcis->vec1_D, INSERT_VALUES, SCATTER_FORWARD)); in PCApplyTranspose_BDDC()
1902 PetscCall(KSPSolveTranspose(pcbddc->ksp_D, pcis->vec1_D, pcis->vec2_D)); in PCApplyTranspose_BDDC()
1904 PetscCall(KSPCheckSolve(pcbddc->ksp_D, pc, pcis->vec2_D)); in PCApplyTranspose_BDDC()
1905 PetscCall(VecScale(pcis->vec2_D, m_one)); in PCApplyTranspose_BDDC()
1907 PetscCall(VecSet(pcis->vec1_N, 0.)); in PCApplyTranspose_BDDC()
1908 …PetscCall(VecScatterBegin(pcis->N_to_D, pcis->vec2_D, pcis->vec1_N, INSERT_VALUES, SCATTER_REVERSE… in PCApplyTranspose_BDDC()
1909 …PetscCall(VecScatterEnd(pcis->N_to_D, pcis->vec2_D, pcis->vec1_N, INSERT_VALUES, SCATTER_REVERSE)); in PCApplyTranspose_BDDC()
1911 PetscCall(MatMultTranspose(lA, pcis->vec1_N, pcis->vec2_N)); in PCApplyTranspose_BDDC()
1913 PetscCall(MatMult(pcbddc->switch_static_change, pcis->vec1_N, pcis->vec2_N)); in PCApplyTranspose_BDDC()
1914 PetscCall(MatMultTranspose(lA, pcis->vec2_N, pcis->vec1_N)); in PCApplyTranspose_BDDC()
1915 PetscCall(MatMultTranspose(pcbddc->switch_static_change, pcis->vec1_N, pcis->vec2_N)); in PCApplyTranspose_BDDC()
1917 … PetscCall(VecScatterBegin(pcis->N_to_D, pcis->vec2_N, pcis->vec1_D, ADD_VALUES, SCATTER_FORWARD)); in PCApplyTranspose_BDDC()
1918 … PetscCall(VecScatterEnd(pcis->N_to_D, pcis->vec2_N, pcis->vec1_D, ADD_VALUES, SCATTER_FORWARD)); in PCApplyTranspose_BDDC()
1919 …PetscCall(VecScatterBegin(pcis->N_to_B, pcis->vec2_N, pcis->vec1_B, INSERT_VALUES, SCATTER_FORWARD… in PCApplyTranspose_BDDC()
1920 …PetscCall(VecScatterEnd(pcis->N_to_B, pcis->vec2_N, pcis->vec1_B, INSERT_VALUES, SCATTER_FORWARD)); in PCApplyTranspose_BDDC()
1922 PetscCall(MatMultTranspose(pcis->A_IB, pcis->vec2_D, pcis->vec1_B)); in PCApplyTranspose_BDDC()
1925 PetscCall(VecSet(pcis->vec1_B, zero)); in PCApplyTranspose_BDDC()
1927 PetscCall(VecScatterBegin(pcis->global_to_B, pcis->vec1_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCApplyTranspose_BDDC()
1928 PetscCall(VecScatterEnd(pcis->global_to_B, pcis->vec1_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCApplyTranspose_BDDC()
1929 PetscCall(PCBDDCScalingRestriction(pc, z, pcis->vec1_B)); in PCApplyTranspose_BDDC()
1931 PetscCall(PCBDDCScalingRestriction(pc, r, pcis->vec1_B)); in PCApplyTranspose_BDDC()
1939 PetscCall(PCBDDCScalingExtension(pc, pcis->vec1_B, z)); in PCApplyTranspose_BDDC()
1942 PetscCall(VecScatterBegin(pcis->global_to_B, z, pcis->vec1_B, INSERT_VALUES, SCATTER_FORWARD)); in PCApplyTranspose_BDDC()
1943 PetscCall(VecScatterEnd(pcis->global_to_B, z, pcis->vec1_B, INSERT_VALUES, SCATTER_FORWARD)); in PCApplyTranspose_BDDC()
1946 …PetscCall(VecScatterBegin(pcis->N_to_D, pcis->vec1_D, pcis->vec1_N, INSERT_VALUES, SCATTER_REVERSE… in PCApplyTranspose_BDDC()
1947 …PetscCall(VecScatterEnd(pcis->N_to_D, pcis->vec1_D, pcis->vec1_N, INSERT_VALUES, SCATTER_REVERSE)); in PCApplyTranspose_BDDC()
1948 …PetscCall(VecScatterBegin(pcis->N_to_B, pcis->vec1_B, pcis->vec1_N, INSERT_VALUES, SCATTER_REVERSE… in PCApplyTranspose_BDDC()
1949 …PetscCall(VecScatterEnd(pcis->N_to_B, pcis->vec1_B, pcis->vec1_N, INSERT_VALUES, SCATTER_REVERSE)); in PCApplyTranspose_BDDC()
1951 PetscCall(MatMultTranspose(lA, pcis->vec1_N, pcis->vec2_N)); in PCApplyTranspose_BDDC()
1953 PetscCall(MatMult(pcbddc->switch_static_change, pcis->vec1_N, pcis->vec2_N)); in PCApplyTranspose_BDDC()
1954 PetscCall(MatMultTranspose(lA, pcis->vec2_N, pcis->vec1_N)); in PCApplyTranspose_BDDC()
1955 PetscCall(MatMultTranspose(pcbddc->switch_static_change, pcis->vec1_N, pcis->vec2_N)); in PCApplyTranspose_BDDC()
1957 …PetscCall(VecScatterBegin(pcis->N_to_D, pcis->vec2_N, pcis->vec3_D, INSERT_VALUES, SCATTER_FORWARD… in PCApplyTranspose_BDDC()
1958 …PetscCall(VecScatterEnd(pcis->N_to_D, pcis->vec2_N, pcis->vec3_D, INSERT_VALUES, SCATTER_FORWARD)); in PCApplyTranspose_BDDC()
1960 PetscCall(MatMultTranspose(pcis->A_BI, pcis->vec1_B, pcis->vec3_D)); in PCApplyTranspose_BDDC()
1964 PetscCall(MatMultTranspose(lA, pcis->vec1_D, pcis->vec3_D)); in PCApplyTranspose_BDDC()
1966 PetscCall(MatMult(pcbddc->switch_static_change, pcis->vec1_D, pcis->vec1_N)); in PCApplyTranspose_BDDC()
1967 PetscCall(MatMultTranspose(lA, pcis->vec1_N, pcis->vec2_N)); in PCApplyTranspose_BDDC()
1968 PetscCall(MatMultTranspose(pcbddc->switch_static_change, pcis->vec2_N, pcis->vec3_D)); in PCApplyTranspose_BDDC()
1972 PetscCall(KSPSolveTranspose(pcbddc->ksp_D, pcis->vec3_D, pcis->vec4_D)); in PCApplyTranspose_BDDC()
1974 PetscCall(KSPCheckSolve(pcbddc->ksp_D, pc, pcis->vec4_D)); in PCApplyTranspose_BDDC()
1977 PetscCall(VecAXPBYPCZ(pcis->vec2_D, m_one, one, m_one, pcis->vec4_D, pcis->vec1_D)); in PCApplyTranspose_BDDC()
1979 PetscCall(VecAXPBY(pcis->vec2_D, m_one, m_one, pcis->vec4_D)); in PCApplyTranspose_BDDC()
1981 PetscCall(VecScatterBegin(pcis->global_to_D, pcis->vec2_D, z, INSERT_VALUES, SCATTER_REVERSE)); in PCApplyTranspose_BDDC()
1982 PetscCall(VecScatterEnd(pcis->global_to_D, pcis->vec2_D, z, INSERT_VALUES, SCATTER_REVERSE)); in PCApplyTranspose_BDDC()
1985 PetscCall(VecAXPBY(pcis->vec4_D, one, m_one, pcis->vec1_D)); in PCApplyTranspose_BDDC()
1987 PetscCall(VecScale(pcis->vec4_D, m_one)); in PCApplyTranspose_BDDC()
1989 PetscCall(VecScatterBegin(pcis->global_to_D, pcis->vec4_D, z, INSERT_VALUES, SCATTER_REVERSE)); in PCApplyTranspose_BDDC()
1990 PetscCall(VecScatterEnd(pcis->global_to_D, pcis->vec4_D, z, INSERT_VALUES, SCATTER_REVERSE)); in PCApplyTranspose_BDDC()
2006 PC_IS *pcis = (PC_IS *)pc->data; in PCReset_BDDC() local
2029 pcis->n_neigh = -1; in PCReset_BDDC()
2030 pcis->scaling_factor = 1.0; in PCReset_BDDC()
2031 pcis->reusesubmatrices = PETSC_TRUE; in PCReset_BDDC()
2122 PC_IS *pcis; in PCBDDCMatFETIDPGetRHS_BDDC() local
2127 pcis = (PC_IS *)mat_ctx->pc->data; in PCBDDCMatFETIDPGetRHS_BDDC()
2132 if (!pcbddc->original_rhs) PetscCall(VecDuplicate(pcis->vec1_global, &pcbddc->original_rhs)); 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()
2170 PetscCall(KSPSolve(pcbddc->ksp_D, mat_ctx->temp_solution_D, pcis->vec1_D)); in PCBDDCMatFETIDPGetRHS_BDDC()
2173 PetscCall(MatMult(pcis->A_BI, pcis->vec1_D, pcis->vec1_B)); 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()
2192 PetscCall(MatMult(mat_ctx->B_delta, pcis->vec1_B, mat_ctx->lambda_local)); 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()
2244 PC_IS *pcis; in PCBDDCMatFETIDPGetSolution_BDDC() local
2250 pcis = (PC_IS *)mat_ctx->pc->data; in PCBDDCMatFETIDPGetSolution_BDDC()
2254 PetscCall(VecSet(pcis->vec1_B, 0.)); in PCBDDCMatFETIDPGetSolution_BDDC()
2257 PetscCall(MatMultTranspose(mat_ctx->B_delta, mat_ctx->lambda_local, pcis->vec1_B)); 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()
2270 PetscCall(MatMultAdd(mat_ctx->Bt_BI, mat_ctx->vP, pcis->vec1_D, pcis->vec1_D)); in PCBDDCMatFETIDPGetSolution_BDDC()
2281 PetscCall(VecScatterBegin(pcis->global_to_B, pcis->vec1_B, work, INSERT_VALUES, SCATTER_REVERSE)); in PCBDDCMatFETIDPGetSolution_BDDC()
2282 PetscCall(VecScatterEnd(pcis->global_to_B, pcis->vec1_B, work, INSERT_VALUES, SCATTER_REVERSE)); in PCBDDCMatFETIDPGetSolution_BDDC()
2285 PetscCall(MatMult(pcis->A_IB, pcis->vec1_B, pcis->vec1_D)); in PCBDDCMatFETIDPGetSolution_BDDC()
2286 PetscCall(VecAYPX(pcis->vec1_D, -1.0, mat_ctx->temp_solution_D)); in PCBDDCMatFETIDPGetSolution_BDDC()
2288 PetscCall(KSPSolve(pcbddc->ksp_D, pcis->vec1_D, pcis->vec1_D)); in PCBDDCMatFETIDPGetSolution_BDDC()
2293 PetscCall(VecScatterBegin(pcis->global_to_D, pcis->vec1_D, work, INSERT_VALUES, SCATTER_REVERSE)); in PCBDDCMatFETIDPGetSolution_BDDC()
2294 PetscCall(VecScatterEnd(pcis->global_to_D, pcis->vec1_D, work, INSERT_VALUES, SCATTER_REVERSE)); in PCBDDCMatFETIDPGetSolution_BDDC()
2327 PC_IS *pcis; in PCSetUp_BDDCIPC() local
2336 pcis = (PC_IS *)bddcipc_ctx->bddc->data; in PCSetUp_BDDCIPC()
2339 PetscCall(ISRenumber(pcis->is_B_global, NULL, NULL, &is)); in PCSetUp_BDDCIPC()
2340 PetscCall(VecScatterCreate(vv, is, pcis->vec1_B, NULL, &bddcipc_ctx->g2l)); in PCSetUp_BDDCIPC()
2349 PC_IS *pcis; in PCApply_BDDCIPC() local
2354 pcis = (PC_IS *)bddcipc_ctx->bddc->data; in PCApply_BDDCIPC()
2355 tmps = pcis->global_to_B; in PCApply_BDDCIPC()
2356 pcis->global_to_B = bddcipc_ctx->g2l; in PCApply_BDDCIPC()
2357 PetscCall(PCBDDCScalingRestriction(bddcipc_ctx->bddc, r, pcis->vec1_B)); in PCApply_BDDCIPC()
2359 PetscCall(PCBDDCScalingExtension(bddcipc_ctx->bddc, pcis->vec1_B, x)); in PCApply_BDDCIPC()
2360 pcis->global_to_B = tmps; in PCApply_BDDCIPC()
2367 PC_IS *pcis; in PCApplyTranspose_BDDCIPC() local
2372 pcis = (PC_IS *)bddcipc_ctx->bddc->data; in PCApplyTranspose_BDDCIPC()
2373 tmps = pcis->global_to_B; in PCApplyTranspose_BDDCIPC()
2374 pcis->global_to_B = bddcipc_ctx->g2l; in PCApplyTranspose_BDDCIPC()
2375 PetscCall(PCBDDCScalingRestriction(bddcipc_ctx->bddc, r, pcis->vec1_B)); in PCApplyTranspose_BDDCIPC()
2377 PetscCall(PCBDDCScalingExtension(bddcipc_ctx->bddc, pcis->vec1_B, x)); in PCApplyTranspose_BDDCIPC()
2378 pcis->global_to_B = tmps; in PCApplyTranspose_BDDCIPC()