Lines Matching refs:bjac
548 PC_BJacobi_Singleblock *bjac = (PC_BJacobi_Singleblock *)jac->data; in PCReset_BJacobi_Singleblock() local
552 PetscCall(VecDestroy(&bjac->x)); in PCReset_BJacobi_Singleblock()
553 PetscCall(VecDestroy(&bjac->y)); in PCReset_BJacobi_Singleblock()
560 PC_BJacobi_Singleblock *bjac = (PC_BJacobi_Singleblock *)jac->data; in PCDestroy_BJacobi_Singleblock() local
566 PetscCall(PetscFree(bjac)); in PCDestroy_BJacobi_Singleblock()
587 PC_BJacobi_Singleblock *bjac = (PC_BJacobi_Singleblock *)jac->data; in PCApply_BJacobi_Singleblock() local
590 PetscCall(VecGetLocalVectorRead(x, bjac->x)); in PCApply_BJacobi_Singleblock()
591 PetscCall(VecGetLocalVector(y, bjac->y)); in PCApply_BJacobi_Singleblock()
596 PetscCall(PetscLogEventBegin(PC_ApplyOnBlocks, jac->ksp[0], bjac->x, bjac->y, 0)); in PCApply_BJacobi_Singleblock()
597 PetscCall(KSPSolve(jac->ksp[0], bjac->x, bjac->y)); in PCApply_BJacobi_Singleblock()
598 PetscCall(KSPCheckSolve(jac->ksp[0], pc, bjac->y)); in PCApply_BJacobi_Singleblock()
599 PetscCall(PetscLogEventEnd(PC_ApplyOnBlocks, jac->ksp[0], bjac->x, bjac->y, 0)); in PCApply_BJacobi_Singleblock()
600 PetscCall(VecRestoreLocalVectorRead(x, bjac->x)); in PCApply_BJacobi_Singleblock()
601 PetscCall(VecRestoreLocalVector(y, bjac->y)); in PCApply_BJacobi_Singleblock()
646 PC_BJacobi_Singleblock *bjac = (PC_BJacobi_Singleblock *)jac->data; in PCApplySymmetricLeft_BJacobi_Singleblock() local
660 PetscCall(VecPlaceArray(bjac->x, x_array)); in PCApplySymmetricLeft_BJacobi_Singleblock()
661 PetscCall(VecPlaceArray(bjac->y, y_array)); in PCApplySymmetricLeft_BJacobi_Singleblock()
665 PetscCall(PCApplySymmetricLeft(subpc, bjac->x, bjac->y)); in PCApplySymmetricLeft_BJacobi_Singleblock()
666 PetscCall(VecResetArray(bjac->x)); in PCApplySymmetricLeft_BJacobi_Singleblock()
667 PetscCall(VecResetArray(bjac->y)); in PCApplySymmetricLeft_BJacobi_Singleblock()
676 PC_BJacobi_Singleblock *bjac = (PC_BJacobi_Singleblock *)jac->data; in PCApplySymmetricRight_BJacobi_Singleblock() local
690 PetscCall(VecPlaceArray(bjac->x, x_array)); in PCApplySymmetricRight_BJacobi_Singleblock()
691 PetscCall(VecPlaceArray(bjac->y, y_array)); in PCApplySymmetricRight_BJacobi_Singleblock()
697 PetscCall(PCApplySymmetricRight(subpc, bjac->x, bjac->y)); in PCApplySymmetricRight_BJacobi_Singleblock()
699 PetscCall(VecResetArray(bjac->x)); in PCApplySymmetricRight_BJacobi_Singleblock()
700 PetscCall(VecResetArray(bjac->y)); in PCApplySymmetricRight_BJacobi_Singleblock()
709 PC_BJacobi_Singleblock *bjac = (PC_BJacobi_Singleblock *)jac->data; in PCApplyTranspose_BJacobi_Singleblock() local
722 PetscCall(VecPlaceArray(bjac->x, x_array)); in PCApplyTranspose_BJacobi_Singleblock()
723 PetscCall(VecPlaceArray(bjac->y, y_array)); in PCApplyTranspose_BJacobi_Singleblock()
724 PetscCall(PetscLogEventBegin(PC_ApplyTransposeOnBlocks, jac->ksp[0], bjac->x, bjac->y, 0)); in PCApplyTranspose_BJacobi_Singleblock()
725 PetscCall(KSPSolveTranspose(jac->ksp[0], bjac->x, bjac->y)); in PCApplyTranspose_BJacobi_Singleblock()
726 PetscCall(KSPCheckSolve(jac->ksp[0], pc, bjac->y)); in PCApplyTranspose_BJacobi_Singleblock()
727 PetscCall(PetscLogEventEnd(PC_ApplyTransposeOnBlocks, jac->ksp[0], bjac->x, bjac->y, 0)); in PCApplyTranspose_BJacobi_Singleblock()
728 PetscCall(VecResetArray(bjac->x)); in PCApplyTranspose_BJacobi_Singleblock()
729 PetscCall(VecResetArray(bjac->y)); in PCApplyTranspose_BJacobi_Singleblock()
740 PC_BJacobi_Singleblock *bjac; in PCSetUp_BJacobi_Singleblock() local
775 PetscCall(PetscNew(&bjac)); in PCSetUp_BJacobi_Singleblock()
776 jac->data = (void *)bjac; in PCSetUp_BJacobi_Singleblock()
779 bjac = (PC_BJacobi_Singleblock *)jac->data; in PCSetUp_BJacobi_Singleblock()
790 PetscCall(VecCreateSeqWithArray(PETSC_COMM_SELF, 1, m, NULL, &bjac->x)); in PCSetUp_BJacobi_Singleblock()
791 PetscCall(VecCreateSeqWithArray(PETSC_COMM_SELF, 1, m, NULL, &bjac->y)); in PCSetUp_BJacobi_Singleblock()
793 PetscCall(VecSetType(bjac->x, vectype)); in PCSetUp_BJacobi_Singleblock()
794 PetscCall(VecSetType(bjac->y, vectype)); in PCSetUp_BJacobi_Singleblock()
797 bjac = (PC_BJacobi_Singleblock *)jac->data; in PCSetUp_BJacobi_Singleblock()
817 PC_BJacobi_Multiblock *bjac = (PC_BJacobi_Multiblock *)jac->data; in PCReset_BJacobi_Multiblock() local
821 if (bjac && bjac->pmat) { in PCReset_BJacobi_Multiblock()
822 PetscCall(MatDestroyMatrices(jac->n_local, &bjac->pmat)); in PCReset_BJacobi_Multiblock()
823 if (pc->useAmat) PetscCall(MatDestroyMatrices(jac->n_local, &bjac->mat)); in PCReset_BJacobi_Multiblock()
828 if (bjac && bjac->x) { in PCReset_BJacobi_Multiblock()
829 PetscCall(VecDestroy(&bjac->x[i])); in PCReset_BJacobi_Multiblock()
830 PetscCall(VecDestroy(&bjac->y[i])); in PCReset_BJacobi_Multiblock()
831 PetscCall(ISDestroy(&bjac->is[i])); in PCReset_BJacobi_Multiblock()
842 PC_BJacobi_Multiblock *bjac = (PC_BJacobi_Multiblock *)jac->data; in PCDestroy_BJacobi_Multiblock() local
847 if (bjac) { in PCDestroy_BJacobi_Multiblock()
848 PetscCall(PetscFree2(bjac->x, bjac->y)); in PCDestroy_BJacobi_Multiblock()
849 PetscCall(PetscFree(bjac->starts)); in PCDestroy_BJacobi_Multiblock()
850 PetscCall(PetscFree(bjac->is)); in PCDestroy_BJacobi_Multiblock()
878 PC_BJacobi_Multiblock *bjac = (PC_BJacobi_Multiblock *)jac->data; in PCApply_BJacobi_Multiblock() local
891 PetscCall(VecPlaceArray(bjac->x[i], xin + bjac->starts[i])); in PCApply_BJacobi_Multiblock()
892 PetscCall(VecPlaceArray(bjac->y[i], yin + bjac->starts[i])); in PCApply_BJacobi_Multiblock()
894 PetscCall(PetscLogEventBegin(PC_ApplyOnBlocks, jac->ksp[i], bjac->x[i], bjac->y[i], 0)); in PCApply_BJacobi_Multiblock()
895 PetscCall(KSPSolve(jac->ksp[i], bjac->x[i], bjac->y[i])); in PCApply_BJacobi_Multiblock()
896 PetscCall(KSPCheckSolve(jac->ksp[i], pc, bjac->y[i])); in PCApply_BJacobi_Multiblock()
897 PetscCall(PetscLogEventEnd(PC_ApplyOnBlocks, jac->ksp[i], bjac->x[i], bjac->y[i], 0)); in PCApply_BJacobi_Multiblock()
899 PetscCall(VecResetArray(bjac->x[i])); in PCApply_BJacobi_Multiblock()
900 PetscCall(VecResetArray(bjac->y[i])); in PCApply_BJacobi_Multiblock()
911 PC_BJacobi_Multiblock *bjac = (PC_BJacobi_Multiblock *)jac->data; in PCApplySymmetricLeft_BJacobi_Multiblock() local
925 PetscCall(VecPlaceArray(bjac->x[i], xin + bjac->starts[i])); in PCApplySymmetricLeft_BJacobi_Multiblock()
926 PetscCall(VecPlaceArray(bjac->y[i], yin + bjac->starts[i])); in PCApplySymmetricLeft_BJacobi_Multiblock()
928 PetscCall(PetscLogEventBegin(PC_ApplyOnBlocks, jac->ksp[i], bjac->x[i], bjac->y[i], 0)); in PCApplySymmetricLeft_BJacobi_Multiblock()
932 PetscCall(PCApplySymmetricLeft(subpc, bjac->x[i], bjac->y[i])); in PCApplySymmetricLeft_BJacobi_Multiblock()
933 PetscCall(PetscLogEventEnd(PC_ApplyOnBlocks, jac->ksp[i], bjac->x[i], bjac->y[i], 0)); in PCApplySymmetricLeft_BJacobi_Multiblock()
935 PetscCall(VecResetArray(bjac->x[i])); in PCApplySymmetricLeft_BJacobi_Multiblock()
936 PetscCall(VecResetArray(bjac->y[i])); in PCApplySymmetricLeft_BJacobi_Multiblock()
947 PC_BJacobi_Multiblock *bjac = (PC_BJacobi_Multiblock *)jac->data; in PCApplySymmetricRight_BJacobi_Multiblock() local
961 PetscCall(VecPlaceArray(bjac->x[i], xin + bjac->starts[i])); in PCApplySymmetricRight_BJacobi_Multiblock()
962 PetscCall(VecPlaceArray(bjac->y[i], yin + bjac->starts[i])); in PCApplySymmetricRight_BJacobi_Multiblock()
964 PetscCall(PetscLogEventBegin(PC_ApplyOnBlocks, jac->ksp[i], bjac->x[i], bjac->y[i], 0)); in PCApplySymmetricRight_BJacobi_Multiblock()
968 PetscCall(PCApplySymmetricRight(subpc, bjac->x[i], bjac->y[i])); in PCApplySymmetricRight_BJacobi_Multiblock()
969 PetscCall(PetscLogEventEnd(PC_ApplyOnBlocks, jac->ksp[i], bjac->x[i], bjac->y[i], 0)); in PCApplySymmetricRight_BJacobi_Multiblock()
971 PetscCall(VecResetArray(bjac->x[i])); in PCApplySymmetricRight_BJacobi_Multiblock()
972 PetscCall(VecResetArray(bjac->y[i])); in PCApplySymmetricRight_BJacobi_Multiblock()
983 PC_BJacobi_Multiblock *bjac = (PC_BJacobi_Multiblock *)jac->data; in PCApplyTranspose_BJacobi_Multiblock() local
996 PetscCall(VecPlaceArray(bjac->x[i], xin + bjac->starts[i])); in PCApplyTranspose_BJacobi_Multiblock()
997 PetscCall(VecPlaceArray(bjac->y[i], yin + bjac->starts[i])); in PCApplyTranspose_BJacobi_Multiblock()
999 … PetscCall(PetscLogEventBegin(PC_ApplyTransposeOnBlocks, jac->ksp[i], bjac->x[i], bjac->y[i], 0)); in PCApplyTranspose_BJacobi_Multiblock()
1000 PetscCall(KSPSolveTranspose(jac->ksp[i], bjac->x[i], bjac->y[i])); in PCApplyTranspose_BJacobi_Multiblock()
1001 PetscCall(KSPCheckSolve(jac->ksp[i], pc, bjac->y[i])); in PCApplyTranspose_BJacobi_Multiblock()
1002 PetscCall(PetscLogEventEnd(PC_ApplyTransposeOnBlocks, jac->ksp[i], bjac->x[i], bjac->y[i], 0)); in PCApplyTranspose_BJacobi_Multiblock()
1004 PetscCall(VecResetArray(bjac->x[i])); in PCApplyTranspose_BJacobi_Multiblock()
1005 PetscCall(VecResetArray(bjac->y[i])); in PCApplyTranspose_BJacobi_Multiblock()
1019 PC_BJacobi_Multiblock *bjac = (PC_BJacobi_Multiblock *)jac->data; in PCSetUp_BJacobi_Multiblock() local
1053 PetscCall(PetscNew(&bjac)); in PCSetUp_BJacobi_Multiblock()
1055 PetscCall(PetscMalloc2(n_local, &bjac->x, n_local, &bjac->y)); in PCSetUp_BJacobi_Multiblock()
1056 PetscCall(PetscMalloc1(n_local, &bjac->starts)); in PCSetUp_BJacobi_Multiblock()
1058 jac->data = (void *)bjac; in PCSetUp_BJacobi_Multiblock()
1059 PetscCall(PetscMalloc1(n_local, &bjac->is)); in PCSetUp_BJacobi_Multiblock()
1076 bjac = (PC_BJacobi_Multiblock *)jac->data; in PCSetUp_BJacobi_Multiblock()
1096 bjac->x[i] = x; in PCSetUp_BJacobi_Multiblock()
1097 bjac->y[i] = y; in PCSetUp_BJacobi_Multiblock()
1098 bjac->starts[i] = start; in PCSetUp_BJacobi_Multiblock()
1101 bjac->is[i] = is; in PCSetUp_BJacobi_Multiblock()
1106 bjac = (PC_BJacobi_Multiblock *)jac->data; in PCSetUp_BJacobi_Multiblock()
1111 PetscCall(MatGetNullSpaces(n_local, bjac->pmat, &nullsp_pmat)); in PCSetUp_BJacobi_Multiblock()
1112 PetscCall(MatDestroyMatrices(n_local, &bjac->pmat)); in PCSetUp_BJacobi_Multiblock()
1114 PetscCall(MatGetNullSpaces(n_local, bjac->mat, &nullsp_mat)); in PCSetUp_BJacobi_Multiblock()
1115 PetscCall(MatDestroyMatrices(n_local, &bjac->mat)); in PCSetUp_BJacobi_Multiblock()
1121 PetscCall(MatCreateSubMatrices(pmat, n_local, bjac->is, bjac->is, scall, &bjac->pmat)); in PCSetUp_BJacobi_Multiblock()
1122 if (nullsp_pmat) PetscCall(MatRestoreNullSpaces(n_local, bjac->pmat, &nullsp_pmat)); in PCSetUp_BJacobi_Multiblock()
1124 PetscCall(MatCreateSubMatrices(mat, n_local, bjac->is, bjac->is, scall, &bjac->mat)); in PCSetUp_BJacobi_Multiblock()
1125 if (nullsp_mat) PetscCall(MatRestoreNullSpaces(n_local, bjac->mat, &nullsp_mat)); in PCSetUp_BJacobi_Multiblock()
1129 …PetscCall(PCModifySubMatrices(pc, n_local, bjac->is, bjac->is, bjac->pmat, pc->modifysubmatricesP)… in PCSetUp_BJacobi_Multiblock()
1134 PetscCall(KSPSetOperators(jac->ksp[i], bjac->mat[i], bjac->pmat[i])); in PCSetUp_BJacobi_Multiblock()
1135 PetscCall(MatSetOptionsPrefix(bjac->mat[i], prefix)); in PCSetUp_BJacobi_Multiblock()
1137 PetscCall(KSPSetOperators(jac->ksp[i], bjac->pmat[i], bjac->pmat[i])); in PCSetUp_BJacobi_Multiblock()
1139 PetscCall(MatSetOptionsPrefix(bjac->pmat[i], prefix)); in PCSetUp_BJacobi_Multiblock()