Lines Matching refs:Na

13   Mat_SubVirtual *Na = (Mat_SubVirtual *)N->data;  in MatScale_SubMatrix()  local
16 PetscCall(MatScale(Na->A, a)); in MatScale_SubMatrix()
22 Mat_SubVirtual *Na = (Mat_SubVirtual *)N->data; in MatShift_SubMatrix() local
25 PetscCall(MatShift(Na->A, a)); in MatShift_SubMatrix()
31 Mat_SubVirtual *Na = (Mat_SubVirtual *)N->data; in MatDiagonalScale_SubMatrix() local
35 PetscCall(VecZeroEntries(Na->rwork)); in MatDiagonalScale_SubMatrix()
36 PetscCall(VecScatterBegin(Na->rprolong, right, Na->rwork, INSERT_VALUES, SCATTER_FORWARD)); in MatDiagonalScale_SubMatrix()
37 PetscCall(VecScatterEnd(Na->rprolong, right, Na->rwork, INSERT_VALUES, SCATTER_FORWARD)); in MatDiagonalScale_SubMatrix()
40 PetscCall(VecZeroEntries(Na->lwork)); in MatDiagonalScale_SubMatrix()
41 PetscCall(VecScatterBegin(Na->lrestrict, left, Na->lwork, INSERT_VALUES, SCATTER_REVERSE)); in MatDiagonalScale_SubMatrix()
42 PetscCall(VecScatterEnd(Na->lrestrict, left, Na->lwork, INSERT_VALUES, SCATTER_REVERSE)); in MatDiagonalScale_SubMatrix()
44 PetscCall(MatDiagonalScale(Na->A, left ? Na->lwork : NULL, right ? Na->rwork : NULL)); in MatDiagonalScale_SubMatrix()
50 Mat_SubVirtual *Na = (Mat_SubVirtual *)N->data; in MatGetDiagonal_SubMatrix() local
53 PetscCall(MatGetDiagonal(Na->A, Na->rwork)); in MatGetDiagonal_SubMatrix()
54 PetscCall(VecScatterBegin(Na->rprolong, Na->rwork, d, INSERT_VALUES, SCATTER_REVERSE)); in MatGetDiagonal_SubMatrix()
55 PetscCall(VecScatterEnd(Na->rprolong, Na->rwork, d, INSERT_VALUES, SCATTER_REVERSE)); in MatGetDiagonal_SubMatrix()
61 Mat_SubVirtual *Na = (Mat_SubVirtual *)N->data; in MatMult_SubMatrix() local
64 PetscCall(VecZeroEntries(Na->rwork)); in MatMult_SubMatrix()
65 PetscCall(VecScatterBegin(Na->rprolong, x, Na->rwork, INSERT_VALUES, SCATTER_FORWARD)); in MatMult_SubMatrix()
66 PetscCall(VecScatterEnd(Na->rprolong, x, Na->rwork, INSERT_VALUES, SCATTER_FORWARD)); in MatMult_SubMatrix()
67 PetscCall(MatMult(Na->A, Na->rwork, Na->lwork)); in MatMult_SubMatrix()
68 PetscCall(VecScatterBegin(Na->lrestrict, Na->lwork, y, INSERT_VALUES, SCATTER_FORWARD)); in MatMult_SubMatrix()
69 PetscCall(VecScatterEnd(Na->lrestrict, Na->lwork, y, INSERT_VALUES, SCATTER_FORWARD)); in MatMult_SubMatrix()
75 Mat_SubVirtual *Na = (Mat_SubVirtual *)N->data; in MatMultAdd_SubMatrix() local
78 PetscCall(VecZeroEntries(Na->rwork)); in MatMultAdd_SubMatrix()
79 PetscCall(VecScatterBegin(Na->rprolong, v1, Na->rwork, INSERT_VALUES, SCATTER_FORWARD)); in MatMultAdd_SubMatrix()
80 PetscCall(VecScatterEnd(Na->rprolong, v1, Na->rwork, INSERT_VALUES, SCATTER_FORWARD)); in MatMultAdd_SubMatrix()
82 PetscCall(MatMultAdd(Na->A, Na->rwork, Na->rwork, Na->lwork)); in MatMultAdd_SubMatrix()
84 PetscCall(VecZeroEntries(Na->lwork)); in MatMultAdd_SubMatrix()
85 PetscCall(VecScatterBegin(Na->lrestrict, v2, Na->lwork, INSERT_VALUES, SCATTER_REVERSE)); in MatMultAdd_SubMatrix()
86 PetscCall(VecScatterEnd(Na->lrestrict, v2, Na->lwork, INSERT_VALUES, SCATTER_REVERSE)); in MatMultAdd_SubMatrix()
87 PetscCall(MatMultAdd(Na->A, Na->rwork, Na->lwork, Na->lwork)); in MatMultAdd_SubMatrix()
89 if (!Na->lwork2) { in MatMultAdd_SubMatrix()
90 PetscCall(VecDuplicate(Na->lwork, &Na->lwork2)); in MatMultAdd_SubMatrix()
92 PetscCall(VecZeroEntries(Na->lwork2)); in MatMultAdd_SubMatrix()
94 PetscCall(VecScatterBegin(Na->lrestrict, v2, Na->lwork2, INSERT_VALUES, SCATTER_REVERSE)); in MatMultAdd_SubMatrix()
95 PetscCall(VecScatterEnd(Na->lrestrict, v2, Na->lwork2, INSERT_VALUES, SCATTER_REVERSE)); in MatMultAdd_SubMatrix()
96 PetscCall(MatMultAdd(Na->A, Na->rwork, Na->lwork2, Na->lwork)); in MatMultAdd_SubMatrix()
98 PetscCall(VecScatterBegin(Na->lrestrict, Na->lwork, v3, INSERT_VALUES, SCATTER_FORWARD)); in MatMultAdd_SubMatrix()
99 PetscCall(VecScatterEnd(Na->lrestrict, Na->lwork, v3, INSERT_VALUES, SCATTER_FORWARD)); in MatMultAdd_SubMatrix()
105 Mat_SubVirtual *Na = (Mat_SubVirtual *)N->data; in MatMultTranspose_SubMatrix() local
108 PetscCall(VecZeroEntries(Na->lwork)); in MatMultTranspose_SubMatrix()
109 PetscCall(VecScatterBegin(Na->lrestrict, x, Na->lwork, INSERT_VALUES, SCATTER_REVERSE)); in MatMultTranspose_SubMatrix()
110 PetscCall(VecScatterEnd(Na->lrestrict, x, Na->lwork, INSERT_VALUES, SCATTER_REVERSE)); in MatMultTranspose_SubMatrix()
111 PetscCall(MatMultTranspose(Na->A, Na->lwork, Na->rwork)); in MatMultTranspose_SubMatrix()
112 PetscCall(VecScatterBegin(Na->rprolong, Na->rwork, y, INSERT_VALUES, SCATTER_REVERSE)); in MatMultTranspose_SubMatrix()
113 PetscCall(VecScatterEnd(Na->rprolong, Na->rwork, y, INSERT_VALUES, SCATTER_REVERSE)); in MatMultTranspose_SubMatrix()
119 Mat_SubVirtual *Na = (Mat_SubVirtual *)N->data; in MatMultTransposeAdd_SubMatrix() local
122 PetscCall(VecZeroEntries(Na->lwork)); in MatMultTransposeAdd_SubMatrix()
123 PetscCall(VecScatterBegin(Na->lrestrict, v1, Na->lwork, INSERT_VALUES, SCATTER_REVERSE)); in MatMultTransposeAdd_SubMatrix()
124 PetscCall(VecScatterEnd(Na->lrestrict, v1, Na->lwork, INSERT_VALUES, SCATTER_REVERSE)); in MatMultTransposeAdd_SubMatrix()
126 PetscCall(MatMultTransposeAdd(Na->A, Na->lwork, Na->lwork, Na->rwork)); in MatMultTransposeAdd_SubMatrix()
128 PetscCall(VecZeroEntries(Na->rwork)); in MatMultTransposeAdd_SubMatrix()
129 PetscCall(VecScatterBegin(Na->rprolong, v2, Na->rwork, INSERT_VALUES, SCATTER_FORWARD)); in MatMultTransposeAdd_SubMatrix()
130 PetscCall(VecScatterEnd(Na->rprolong, v2, Na->rwork, INSERT_VALUES, SCATTER_FORWARD)); in MatMultTransposeAdd_SubMatrix()
131 PetscCall(MatMultTransposeAdd(Na->A, Na->lwork, Na->rwork, Na->rwork)); in MatMultTransposeAdd_SubMatrix()
133 if (!Na->rwork2) { in MatMultTransposeAdd_SubMatrix()
134 PetscCall(VecDuplicate(Na->rwork, &Na->rwork2)); in MatMultTransposeAdd_SubMatrix()
136 PetscCall(VecZeroEntries(Na->rwork2)); in MatMultTransposeAdd_SubMatrix()
138 PetscCall(VecScatterBegin(Na->rprolong, v2, Na->rwork2, INSERT_VALUES, SCATTER_FORWARD)); in MatMultTransposeAdd_SubMatrix()
139 PetscCall(VecScatterEnd(Na->rprolong, v2, Na->rwork2, INSERT_VALUES, SCATTER_FORWARD)); in MatMultTransposeAdd_SubMatrix()
140 PetscCall(MatMultTransposeAdd(Na->A, Na->lwork, Na->rwork2, Na->rwork)); in MatMultTransposeAdd_SubMatrix()
142 PetscCall(VecScatterBegin(Na->rprolong, Na->rwork, v3, INSERT_VALUES, SCATTER_REVERSE)); in MatMultTransposeAdd_SubMatrix()
143 PetscCall(VecScatterEnd(Na->rprolong, Na->rwork, v3, INSERT_VALUES, SCATTER_REVERSE)); in MatMultTransposeAdd_SubMatrix()
149 Mat_SubVirtual *Na = (Mat_SubVirtual *)N->data; in MatDestroy_SubMatrix() local
152 PetscCall(ISDestroy(&Na->isrow)); in MatDestroy_SubMatrix()
153 PetscCall(ISDestroy(&Na->iscol)); in MatDestroy_SubMatrix()
154 PetscCall(VecDestroy(&Na->lwork)); in MatDestroy_SubMatrix()
155 PetscCall(VecDestroy(&Na->rwork)); in MatDestroy_SubMatrix()
156 PetscCall(VecDestroy(&Na->lwork2)); in MatDestroy_SubMatrix()
157 PetscCall(VecDestroy(&Na->rwork2)); in MatDestroy_SubMatrix()
158 PetscCall(VecScatterDestroy(&Na->lrestrict)); in MatDestroy_SubMatrix()
159 PetscCall(VecScatterDestroy(&Na->rprolong)); in MatDestroy_SubMatrix()
160 PetscCall(MatDestroy(&Na->A)); in MatDestroy_SubMatrix()
190 Mat_SubVirtual *Na; in MatCreateSubMatrixVirtual() local
205 PetscCall(PetscNew(&Na)); in MatCreateSubMatrixVirtual()
206 N->data = (void *)Na; in MatCreateSubMatrixVirtual()
210 Na->isrow = isrow; in MatCreateSubMatrixVirtual()
211 Na->iscol = iscol; in MatCreateSubMatrixVirtual()
217 PetscCall(MatConvertFrom_Shell(A, MATSHELL, MAT_INITIAL_MATRIX, &Na->A)); in MatCreateSubMatrixVirtual()
234 PetscCall(MatCreateVecs(A, &Na->rwork, &Na->lwork)); in MatCreateSubMatrixVirtual()
236 PetscCall(VecScatterCreate(Na->lwork, isrow, left, NULL, &Na->lrestrict)); in MatCreateSubMatrixVirtual()
237 PetscCall(VecScatterCreate(right, NULL, Na->rwork, iscol, &Na->rprolong)); in MatCreateSubMatrixVirtual()
280 Mat_SubVirtual *Na; in MatSubMatrixVirtualUpdate() local
290 Na = (Mat_SubVirtual *)N->data; in MatSubMatrixVirtualUpdate()
291 PetscCall(ISEqual(isrow, Na->isrow, &flg)); in MatSubMatrixVirtualUpdate()
293 PetscCall(ISEqual(iscol, Na->iscol, &flg)); in MatSubMatrixVirtualUpdate()
298 PetscCall(MatDestroy(&Na->A)); in MatSubMatrixVirtualUpdate()
301 PetscCall(MatConvertFrom_Shell(A, MATSHELL, MAT_INITIAL_MATRIX, &Na->A)); in MatSubMatrixVirtualUpdate()