Lines Matching refs:PetscCall
18 PetscCall(MatAXPY(B, -1.0, A, DIFFERENT_NONZERO_PATTERN)); in MatNormDifference()
19 PetscCall(MatNorm(B, NORM_FROBENIUS, norm)); in MatNormDifference()
44 PetscCall(PetscInitialize(&argc, &args, NULL, help)); in main()
48 PetscCall(PetscOptionsGetReal(NULL, NULL, "-fill", &fill, NULL)); in main()
49 PetscCall(PetscOptionsGetBool(NULL, NULL, "-matops_view", &view, NULL)); in main()
50 if (view) PetscCall(PetscViewerPushFormat(PETSC_VIEWER_STDOUT_WORLD, PETSC_VIEWER_ASCII_INFO)); in main()
53 PetscCall(PetscOptionsGetString(NULL, NULL, "-f0", file[0], sizeof(file[0]), &flg)); in main()
55 PetscCall(PetscOptionsGetString(NULL, NULL, "-f1", file[1], sizeof(file[1]), &flg)); in main()
57 PetscCall(PetscOptionsGetString(NULL, NULL, "-f2", file[2], sizeof(file[2]), &flg)); in main()
61 PetscCall(PetscOptionsGetString(NULL, NULL, "-f3", file[3], sizeof(file[3]), &flg)); in main()
66 …PetscCall(PetscViewerBinaryOpen(PETSC_COMM_WORLD, file[2 * PetscPreLoadIt], FILE_MODE_READ, &viewe… in main()
67 PetscCall(MatCreate(PETSC_COMM_WORLD, &A_save)); in main()
68 PetscCall(MatSetFromOptions(A_save)); in main()
69 PetscCall(MatLoad(A_save, viewer)); in main()
70 PetscCall(PetscViewerDestroy(&viewer)); in main()
72 …PetscCall(PetscViewerBinaryOpen(PETSC_COMM_WORLD, file[2 * PetscPreLoadIt + 1], FILE_MODE_READ, &v… in main()
73 PetscCall(MatCreate(PETSC_COMM_WORLD, &B)); in main()
74 PetscCall(MatSetFromOptions(B)); in main()
75 PetscCall(MatLoad(B, viewer)); in main()
76 PetscCall(PetscViewerDestroy(&viewer)); in main()
78 PetscCall(MatGetType(B, &mattype)); in main()
80 PetscCall(MatGetSize(B, &M, &N)); in main()
82 PetscCall(PetscMalloc2(nzp + 1, &idxn, nzp + 1, &a)); in main()
85 PetscCall(VecCreate(PETSC_COMM_WORLD, &v1)); in main()
86 PetscCall(MatGetLocalSize(A_save, &m, NULL)); in main()
87 PetscCall(VecSetSizes(v1, m, PETSC_DECIDE)); in main()
88 PetscCall(VecSetFromOptions(v1)); in main()
89 PetscCall(VecDuplicate(v1, &v2)); in main()
91 PetscCall(PetscRandomCreate(PETSC_COMM_WORLD, &rdm)); in main()
92 PetscCall(PetscRandomSetFromOptions(rdm)); in main()
93 PetscCall(PetscOptionsGetReal(NULL, NULL, "-fill", &fill, NULL)); in main()
97 PetscCall(PetscOptionsHasName(NULL, NULL, "-test_MatAXPY", &Test_MatAXPY)); in main()
100 PetscCall(MatDuplicate(A_save, MAT_COPY_VALUES, &A)); in main()
101 PetscCall(MatDuplicate(B, MAT_COPY_VALUES, &Btmp)); in main()
102 PetscCall(MatAXPY(A, -1.0, B, DIFFERENT_NONZERO_PATTERN)); /* A = -B + A_save */ in main()
104 PetscCall(MatScale(A, -1.0)); /* A = -A = B - A_save */ in main()
105 PetscCall(MatAXPY(Btmp, -1.0, A, DIFFERENT_NONZERO_PATTERN)); /* Btmp = -A + B = A_save */ in main()
106 PetscCall(MatMultEqual(A_save, Btmp, 10, &flg)); in main()
108 PetscCall(MatDestroy(&A)); in main()
109 PetscCall(MatDestroy(&Btmp)); in main()
121 PetscCall(MatDuplicate(A_save, MAT_COPY_VALUES, &A)); in main()
122 PetscCall(MatCreateTranspose(A, &AT)); in main()
123 PetscCall(MatCreateTranspose(AT, &ATT)); in main()
124 PetscCall(MatCreateTranspose(B, &BT)); in main()
125 PetscCall(MatCreateTranspose(BT, &BTT)); in main()
127 PetscCall(MatMatMult(AT, B, MAT_INITIAL_MATRIX, fill, &C)); in main()
128 PetscCall(MatMatMultEqual(AT, B, C, 10, &flg)); in main()
130 PetscCall(MatDestroy(&C)); in main()
132 PetscCall(MatMatMult(ATT, B, MAT_INITIAL_MATRIX, fill, &C)); in main()
133 PetscCall(MatMatMultEqual(ATT, B, C, 10, &flg)); in main()
135 PetscCall(MatDestroy(&C)); in main()
137 PetscCall(MatMatMult(A, B, MAT_INITIAL_MATRIX, fill, &C)); in main()
138 PetscCall(MatMatMultEqual(A, B, C, 10, &flg)); in main()
142 PetscCall(MatDestroy(&C)); in main()
144 PetscCall(MatMatMult(A, BTT, MAT_INITIAL_MATRIX, fill, &C)); in main()
145 PetscCall(MatMatMultEqual(A, BTT, C, 10, &flg)); in main()
147 PetscCall(MatDestroy(&C)); in main()
149 PetscCall(MatMatMult(ATT, BTT, MAT_INITIAL_MATRIX, fill, &C)); in main()
150 PetscCall(MatMatMultEqual(A, B, C, 10, &flg)); in main()
152 PetscCall(MatDestroy(&C)); in main()
154 PetscCall(MatDestroy(&BTT)); in main()
155 PetscCall(MatDestroy(&BT)); in main()
156 PetscCall(MatDestroy(&ATT)); in main()
157 PetscCall(MatDestroy(&AT)); in main()
159 PetscCall(MatMatMult(A, B, MAT_INITIAL_MATRIX, fill, &C)); in main()
160 … PetscCall(MatSetOptionsPrefix(C, "matmatmult_")); /* enable option '-matmatmult_' for matrix C */ in main()
161 PetscCall(MatGetInfo(C, MAT_GLOBAL_SUM, &info)); in main()
167 PetscCall(MatScale(A, alpha)); in main()
168 PetscCall(MatMatMult(A, B, MAT_REUSE_MATRIX, fill, &C)); in main()
170 PetscCall(MatMatMultEqual(A, B, C, 10, &flg)); in main()
172 PetscCall(MatDestroy(&A)); in main()
175 PetscCall(MatDuplicate(C, MAT_COPY_VALUES, &C1)); in main()
176 PetscCall(MatDestroy(&C1)); in main()
177 PetscCall(MatDestroy(&C)); in main()
187 PetscCall(MatCreate(PETSC_COMM_WORLD, &P)); in main()
188 PetscCall(MatSetSizes(P, PETSC_DECIDE, PETSC_DECIDE, M, PN)); in main()
189 PetscCall(MatSetType(P, mattype)); in main()
190 PetscCall(MatSeqAIJSetPreallocation(P, nzp, NULL)); in main()
191 PetscCall(MatMPIAIJSetPreallocation(P, nzp, NULL, nzp, NULL)); in main()
192 PetscCall(MatGetOwnershipRange(P, &rstart, &rend)); in main()
193 for (i = 0; i < nzp; i++) PetscCall(PetscRandomGetValue(rdm, &a[i])); in main()
196 PetscCall(PetscRandomGetValue(rdm, &rval)); in main()
199 PetscCall(MatSetValues(P, 1, &i, nzp, idxn, a, ADD_VALUES)); in main()
201 PetscCall(MatAssemblyBegin(P, MAT_FINAL_ASSEMBLY)); in main()
202 PetscCall(MatAssemblyEnd(P, MAT_FINAL_ASSEMBLY)); in main()
205 PetscCall(MatTranspose(P, MAT_INITIAL_MATRIX, &R)); in main()
208 PetscCall(MatMatMult(R, B, MAT_INITIAL_MATRIX, fill, &C1)); in main()
209 PetscCall(MatTranspose(P, MAT_REUSE_MATRIX, &R)); in main()
210 PetscCall(MatMatMult(R, B, MAT_REUSE_MATRIX, fill, &C1)); in main()
211 PetscCall(MatDestroy(&C1)); in main()
215 PetscCall(MatTransposeMatMult(P, B, MAT_INITIAL_MATRIX, fill, &C)); in main()
216 PetscCall(MatGetInfo(C, MAT_GLOBAL_SUM, &info)); in main()
219 PetscCall(MatTransposeMatMult(P, B, MAT_REUSE_MATRIX, fill, &C)); in main()
221 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "C = P^T * B:\n")); in main()
222 PetscCall(MatView(C, PETSC_VIEWER_STDOUT_WORLD)); in main()
224 PetscCall(MatProductClear(C)); in main()
226 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "\nC = P^T * B after MatProductClear():\n")); in main()
227 PetscCall(MatView(C, PETSC_VIEWER_STDOUT_WORLD)); in main()
231 PetscCall(MatMatMult(R, B, MAT_INITIAL_MATRIX, fill, &C1)); in main()
232 PetscCall(MatNormDifference(C, C1, &norm)); in main()
234 PetscCall(MatDestroy(&C1)); in main()
237 PetscCall(MatDuplicate(C, MAT_COPY_VALUES, &C1)); in main()
238 PetscCall(MatDestroy(&C1)); in main()
239 PetscCall(MatDestroy(&C)); in main()
242 PetscCall(PetscObjectTypeCompare((PetscObject)B, MATSEQAIJ, &seqaij)); in main()
244 PetscCall(MatMatTransposeMult(B, R, MAT_INITIAL_MATRIX, fill, &C)); in main()
245 PetscCall(MatSetOptionsPrefix(C, "matmatmulttr_")); /* enable '-matmatmulttr_' for matrix C */ in main()
246 PetscCall(MatGetInfo(C, MAT_GLOBAL_SUM, &info)); in main()
249 PetscCall(MatMatTransposeMult(B, R, MAT_REUSE_MATRIX, fill, &C)); in main()
252 PetscCall(MatMatMult(B, P, MAT_INITIAL_MATRIX, fill, &C1)); in main()
253 PetscCall(MatNormDifference(C, C1, &norm)); in main()
255 PetscCall(MatDestroy(&C1)); in main()
256 PetscCall(MatDestroy(&C)); in main()
258 PetscCall(MatDestroy(&P)); in main()
259 PetscCall(MatDestroy(&R)); in main()
268 PetscCall(MatDuplicate(A_save, MAT_COPY_VALUES, &A)); in main()
269 PetscCall(MatGetSize(A, &M, &N)); in main()
270 PetscCall(MatGetLocalSize(A, &m, &n)); in main()
274 PetscCall(MatCreate(PETSC_COMM_WORLD, &P)); in main()
275 PetscCall(MatSetSizes(P, PETSC_DECIDE, PETSC_DECIDE, N, PN)); in main()
276 PetscCall(MatSetType(P, mattype)); in main()
277 PetscCall(MatSeqAIJSetPreallocation(P, nzp, NULL)); in main()
278 PetscCall(MatMPIAIJSetPreallocation(P, nzp, NULL, nzp, NULL)); in main()
279 for (i = 0; i < nzp; i++) PetscCall(PetscRandomGetValue(rdm, &a[i])); in main()
280 PetscCall(MatGetOwnershipRange(P, &rstart, &rend)); in main()
283 PetscCall(PetscRandomGetValue(rdm, &rval)); in main()
286 PetscCall(MatSetValues(P, 1, &i, nzp, idxn, a, ADD_VALUES)); in main()
288 PetscCall(MatAssemblyBegin(P, MAT_FINAL_ASSEMBLY)); in main()
289 PetscCall(MatAssemblyEnd(P, MAT_FINAL_ASSEMBLY)); in main()
292 PetscCall(MatGetSize(P, &pM, &pN)); in main()
293 PetscCall(MatGetLocalSize(P, &pm, &pn)); in main()
294 PetscCall(MatPtAP(A, P, MAT_INITIAL_MATRIX, fill, &C)); in main()
300 PetscCall(MatScale(A, alpha)); in main()
301 PetscCall(MatPtAP(A, P, MAT_REUSE_MATRIX, fill, &C)); in main()
305 PetscCall(PetscObjectTypeCompare((PetscObject)A, MATSEQAIJ, &seqaij)); in main()
307 PetscCall(MatConvert(C, MATSEQDENSE, MAT_INITIAL_MATRIX, &Cdensetest)); in main()
308 PetscCall(MatConvert(P, MATSEQDENSE, MAT_INITIAL_MATRIX, &Pdense)); in main()
310 PetscCall(MatConvert(C, MATMPIDENSE, MAT_INITIAL_MATRIX, &Cdensetest)); in main()
311 PetscCall(MatConvert(P, MATMPIDENSE, MAT_INITIAL_MATRIX, &Pdense)); in main()
315 PetscCall(MatPtAP(A, Pdense, MAT_INITIAL_MATRIX, fill, &Cdense)); in main()
316 PetscCall(MatPtAP(A, Pdense, MAT_REUSE_MATRIX, fill, &Cdense)); in main()
317 PetscCall(MatPtAPMultEqual(A, Pdense, Cdense, 10, &flg)); in main()
319 PetscCall(MatDestroy(&Cdense)); in main()
323 PetscCall(MatConvert(A, MATSEQDENSE, MAT_INITIAL_MATRIX, &Adense)); in main()
324 PetscCall(MatPtAP(Adense, Pdense, MAT_INITIAL_MATRIX, fill, &Cdense)); in main()
325 PetscCall(MatPtAP(Adense, Pdense, MAT_REUSE_MATRIX, fill, &Cdense)); in main()
326 PetscCall(MatPtAPMultEqual(Adense, Pdense, Cdense, 10, &flg)); in main()
328 PetscCall(MatDestroy(&Cdense)); in main()
329 PetscCall(MatDestroy(&Adense)); in main()
331 PetscCall(MatDestroy(&Cdensetest)); in main()
332 PetscCall(MatDestroy(&Pdense)); in main()
335 PetscCall(MatDuplicate(C, MAT_COPY_VALUES, &Cdup)); in main()
337 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "\nC = P^T * A * P:\n")); in main()
338 PetscCall(MatView(C, PETSC_VIEWER_STDOUT_WORLD)); in main()
340 PetscCall(MatProductClear(C)); in main()
341 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "\nC = P^T * A * P after MatProductClear():\n")); in main()
342 PetscCall(MatView(C, PETSC_VIEWER_STDOUT_WORLD)); in main()
344 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "\nCdup:\n")); in main()
345 PetscCall(MatView(Cdup, PETSC_VIEWER_STDOUT_WORLD)); in main()
347 PetscCall(MatDestroy(&Cdup)); in main()
354 PetscCall(MatTranspose(P, MAT_INITIAL_MATRIX, &R)); in main()
357 PetscCall(MatConvert(R, MATDENSE, MAT_INITIAL_MATRIX, &Rdense)); in main()
358 PetscCall(MatRARt(A, Rdense, MAT_INITIAL_MATRIX, 2.0, &RARtdense)); in main()
359 PetscCall(MatRARt(A, Rdense, MAT_REUSE_MATRIX, 2.0, &RARtdense)); in main()
361 PetscCall(MatConvert(RARtdense, MATAIJ, MAT_INITIAL_MATRIX, &RARt)); in main()
362 PetscCall(MatNormDifference(C, RARt, &norm)); in main()
364 PetscCall(MatDestroy(&Rdense)); in main()
365 PetscCall(MatDestroy(&RARtdense)); in main()
366 PetscCall(MatDestroy(&RARt)); in main()
369 PetscCall(MatRARt(A, R, MAT_INITIAL_MATRIX, 2.0, &RARt)); in main()
370 PetscCall(MatRARt(A, R, MAT_REUSE_MATRIX, 2.0, &RARt)); in main()
371 PetscCall(MatNormDifference(C, RARt, &norm)); in main()
373 PetscCall(MatDestroy(&R)); in main()
374 PetscCall(MatDestroy(&RARt)); in main()
379 PetscCall(MatTranspose(P, MAT_INITIAL_MATRIX, &R)); in main()
380 PetscCall(MatMatMatMult(R, A, P, MAT_INITIAL_MATRIX, 2.0, &RAP)); in main()
381 PetscCall(MatMatMatMult(R, A, P, MAT_REUSE_MATRIX, 2.0, &RAP)); in main()
382 PetscCall(MatNormDifference(C, RAP, &norm)); in main()
384 PetscCall(MatDestroy(&R)); in main()
385 PetscCall(MatDestroy(&RAP)); in main()
389 PetscCall(VecCreate(PETSC_COMM_WORLD, &x)); in main()
390 PetscCall(MatGetLocalSize(P, &m, &n)); in main()
391 PetscCall(VecSetSizes(x, n, PETSC_DECIDE)); in main()
392 PetscCall(VecSetFromOptions(x)); in main()
394 PetscCall(VecCreate(PETSC_COMM_WORLD, &v3)); in main()
395 PetscCall(VecSetSizes(v3, n, PETSC_DECIDE)); in main()
396 PetscCall(VecSetFromOptions(v3)); in main()
397 PetscCall(VecDuplicate(v3, &v4)); in main()
401 PetscCall(VecSetRandom(x, rdm)); in main()
402 PetscCall(MatMult(P, x, v1)); in main()
403 PetscCall(MatMult(A, v1, v2)); /* v2 = A*P*x */ in main()
405 PetscCall(MatMultTranspose(P, v2, v3)); /* v3 = Pt*A*P*x */ in main()
406 PetscCall(MatMult(C, x, v4)); /* v3 = C*x */ in main()
407 PetscCall(VecNorm(v4, NORM_2, &norm_abs)); in main()
408 PetscCall(VecAXPY(v4, none, v3)); in main()
409 PetscCall(VecNorm(v4, NORM_2, &norm_tmp)); in main()
416 PetscCall(MatDestroy(&A)); in main()
417 PetscCall(MatDestroy(&P)); in main()
418 PetscCall(MatDestroy(&C)); in main()
419 PetscCall(VecDestroy(&v3)); in main()
420 PetscCall(VecDestroy(&v4)); in main()
421 PetscCall(VecDestroy(&x)); in main()
425 PetscCall(VecDestroy(&v1)); in main()
426 PetscCall(VecDestroy(&v2)); in main()
427 PetscCall(PetscRandomDestroy(&rdm)); in main()
428 PetscCall(PetscFree2(idxn, a)); in main()
430 PetscCall(MatDestroy(&A_save)); in main()
431 PetscCall(MatDestroy(&B)); in main()
434 PetscCall(PetscFinalize()); in main()