Lines Matching refs:PetscCall
19 PetscCall(MatCreate(PETSC_COMM_WORLD, A)); in CreateRandom()
20 PetscCall(MatSetType(*A, MATAIJ)); in CreateRandom()
21 PetscCall(MatSetFromOptions(*A)); in CreateRandom()
22 PetscCall(MatSetSizes(*A, PETSC_DECIDE, PETSC_DECIDE, n, m)); in CreateRandom()
23 PetscCall(MatSeqAIJSetPreallocation(*A, 5, NULL)); in CreateRandom()
24 PetscCall(MatMPIAIJSetPreallocation(*A, 5, NULL, 5, NULL)); in CreateRandom()
25 PetscCall(MatSetRandom(*A, NULL)); in CreateRandom()
26 PetscCall(MatAssemblyBegin(*A, MAT_FINAL_ASSEMBLY)); in CreateRandom()
27 PetscCall(MatAssemblyEnd(*A, MAT_FINAL_ASSEMBLY)); in CreateRandom()
34 PetscCall(MatCreate(PETSC_COMM_WORLD, A)); in CreateIdentity()
35 PetscCall(MatSetType(*A, MATAIJ)); in CreateIdentity()
36 PetscCall(MatSetFromOptions(*A)); in CreateIdentity()
37 PetscCall(MatSetSizes(*A, PETSC_DECIDE, PETSC_DECIDE, n, n)); in CreateIdentity()
38 PetscCall(MatSetUp(*A)); in CreateIdentity()
39 PetscCall(MatAssemblyBegin(*A, MAT_FINAL_ASSEMBLY)); in CreateIdentity()
40 PetscCall(MatAssemblyEnd(*A, MAT_FINAL_ASSEMBLY)); in CreateIdentity()
41 PetscCall(MatShift(*A, 1.0)); in CreateIdentity()
65 PetscCall(PetscInitialize(&argc, &args, NULL, help)); in main()
69 PetscCall(PetscOptionsGetString(NULL, NULL, "-f", file, sizeof(file), &flg)); in main()
71 PetscCall(PetscViewerBinaryOpen(PETSC_COMM_WORLD, file, FILE_MODE_READ, &fd)); in main()
72 PetscCall(MatCreate(PETSC_COMM_WORLD, &A)); in main()
73 PetscCall(MatSetFromOptions(A)); in main()
74 PetscCall(MatLoad(A, fd)); in main()
75 PetscCall(PetscViewerDestroy(&fd)); in main()
78 PetscCall(PetscOptionsGetInt(NULL, NULL, "-n", &n, NULL)); in main()
79 PetscCall(MatCreate(PETSC_COMM_WORLD, &A)); in main()
80 PetscCall(MatSetType(A, MATAIJ)); in main()
81 PetscCall(MatSetFromOptions(A)); in main()
82 PetscCall(MatSetSizes(A, PETSC_DECIDE, PETSC_DECIDE, n, n)); in main()
83 PetscCall(MatSetUp(A)); in main()
84 PetscCall(MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY)); in main()
85 PetscCall(MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY)); in main()
86 PetscCall(MatShift(A, 1.0)); in main()
90 PetscCall(MatIsSymmetric(A, 0.0, &symm)); in main()
91 PetscCall(MatSetOption(A, MAT_SYMMETRIC, symm)); in main()
94 PetscCall(PetscOptionsGetBool(NULL, NULL, "-test_inertia", &test_inertia, NULL)); in main()
96 PetscCall(PetscOptionsGetBool(NULL, NULL, "-cholesky", &chol, NULL)); in main()
97 PetscCall(PetscOptionsGetReal(NULL, NULL, "-tol", &tol, NULL)); in main()
101 PetscCall(PetscOptionsGetBool(NULL, NULL, "-test_nest", &flg, NULL)); in main()
106 PetscCall(PetscOptionsGetBool(NULL, NULL, "-test_nest_bordered", &flg, NULL)); in main()
115 PetscCall(MatCreateNest(PETSC_COMM_WORLD, 3, NULL, 3, NULL, mats, &B)); in main()
124 PetscCall(MatGetSize(A, NULL, &n)); in main()
126 PetscCall(PetscOptionsGetInt(NULL, NULL, "-m", &m, NULL)); in main()
127 PetscCall(CreateIdentity(m, &mats[0])); in main()
128 PetscCall(CreateRandom(m, n, &mats[1])); in main()
133 PetscCall(PetscOptionsGetBool(NULL, NULL, "-expl", &flg, NULL)); in main()
136 if (!flg) PetscCall(MatCreateTranspose(mats[1], &mats[2])); in main()
137 else PetscCall(MatTranspose(mats[1], MAT_INITIAL_MATRIX, &mats[2])); in main()
143 PetscCall(MatDuplicate(mats[1], MAT_COPY_VALUES, &B)); in main()
144 PetscCall(MatCreateHermitianTranspose(B, &mats[2])); in main()
145 PetscCall(MatDestroy(&B)); in main()
147 PetscCall(MatScale(mats[2], PetscCMPLX(4.0, -2.0))); in main()
148 … PetscCall(MatShift(mats[2], PetscCMPLX(-2.0, 1.0))); // mats[2] = (4 - 2i) B* - (2 - i) I in main()
149 PetscCall(MatCreateHermitianTranspose(mats[2], &B)); in main()
150 PetscCall(MatDestroy(mats + 2)); in main()
151 PetscCall(MatScale(B, 0.5)); in main()
152 …PetscCall(MatShift(B, PetscCMPLX(1.0, 0.5))); // B = 0.5 mats[2]* - (1 - 0.5i) I = (2 + i) … in main()
153 PetscCall(MatCreateHermitianTranspose(B, &mats[2])); // mats[2] = B* = (2 - i) B* in main()
154 PetscCall(MatDestroy(&B)); in main()
155 PetscCall(MatScale(mats[1], PetscCMPLX(2.0, 1.0))); // mats[1] = (2 + i) B = mats[2]* in main()
157 } else PetscCall(MatHermitianTranspose(mats[1], MAT_INITIAL_MATRIX, &mats[2])); in main()
163 PetscCall(MatDuplicate(mats[1], MAT_COPY_VALUES, &B)); in main()
164 PetscCall(MatCreateTranspose(B, &mats[2])); in main()
165 PetscCall(MatDestroy(&B)); in main()
167 PetscCall(MatScale(mats[2], 4.0)); in main()
168 PetscCall(MatShift(mats[2], -2.0)); // mats[2] = 4 B' - 2 I in main()
169 PetscCall(MatCreateTranspose(mats[2], &B)); in main()
170 PetscCall(MatDestroy(mats + 2)); in main()
171 PetscCall(MatScale(B, 0.5)); in main()
172 … PetscCall(MatShift(B, 1.0)); // B = 0.5 mats[2]' + I = 0.5 (4 B' - 2 I)' + I = 2 B in main()
173 PetscCall(MatCreateTranspose(B, &mats[2])); // mats[2] = B' = 2 B' in main()
174 PetscCall(MatDestroy(&B)); in main()
175 PetscCall(MatScale(mats[1], 2.0)); // mats[1] = 2 B = mats[2]' in main()
177 } else PetscCall(MatTranspose(mats[1], MAT_INITIAL_MATRIX, &mats[2])); in main()
179 PetscCall(MatCreateNest(PETSC_COMM_WORLD, 2, NULL, 2, NULL, mats, &B)); in main()
180 PetscCall(MatDestroy(&mats[0])); in main()
181 PetscCall(MatDestroy(&mats[1])); in main()
182 PetscCall(MatDestroy(&mats[2])); in main()
184 PetscCall(MatDestroy(&A)); in main()
186 PetscCall(MatSetOption(A, MAT_SYMMETRIC, symm)); in main()
189 PetscCall(MatComputeOperator(A, MATAIJ, &Ae)); in main()
191 PetscCall(PetscObjectReference((PetscObject)A)); in main()
195 PetscCall(MatGetLocalSize(A, &m, &n)); in main()
198 PetscCall(MatViewFromOptions(A, NULL, "-A_view")); in main()
199 PetscCall(MatViewFromOptions(Ae, NULL, "-A_view_expl")); in main()
203 PetscCall(PetscOptionsGetInt(NULL, NULL, "-nrhs", &nrhs, NULL)); in main()
204 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "ex125: nrhs %" PetscInt_FMT "\n", nrhs)); in main()
205 PetscCall(MatCreate(PETSC_COMM_WORLD, &C)); in main()
206 PetscCall(MatSetOptionsPrefix(C, "rhs_")); in main()
207 PetscCall(MatSetSizes(C, m, PETSC_DECIDE, PETSC_DECIDE, nrhs)); in main()
208 PetscCall(MatSetType(C, MATDENSE)); in main()
209 PetscCall(MatSetFromOptions(C)); in main()
210 PetscCall(MatSetUp(C)); in main()
212 PetscCall(PetscOptionsGetBool(NULL, NULL, "-view_factor", &view, NULL)); in main()
213 PetscCall(PetscOptionsGetBool(NULL, NULL, "-test_matmatsolve", &testMatMatSolve, NULL)); in main()
214 …PetscCall(PetscOptionsGetBool(NULL, NULL, "-test_matmatsolvetranspose", &testMatMatSolveTranspose,… in main()
215 …PetscCall(PetscOptionsGetBool(NULL, NULL, "-test_matsolvetranspose", &testMatSolveTranspose, NULL)… in main()
217 PetscCall(PetscOptionsGetBool(NULL, NULL, "-test_mumps_opts", &test_mumps_opts, NULL)); in main()
220 PetscCall(PetscRandomCreate(PETSC_COMM_WORLD, &rand)); in main()
221 PetscCall(PetscRandomSetFromOptions(rand)); in main()
222 PetscCall(MatSetRandom(C, rand)); in main()
223 PetscCall(MatDuplicate(C, MAT_DO_NOT_COPY_VALUES, &X)); in main()
226 PetscCall(MatCreateVecs(A, &x, &b)); in main()
227 PetscCall(VecDuplicate(x, &u)); /* save the true solution */ in main()
230 …if (flg) PetscCall(MatGetOrdering(A, MATORDERINGND, &perm, &iperm)); // TODO FIXME: MatConvert_Nes… in main()
232 PetscCall(PetscOptionsGetString(NULL, NULL, "-mat_solver_type", pack, sizeof(pack), NULL)); in main()
234 PetscCall(PetscStrcmp(MATSOLVERSUPERLU, pack, &match)); in main()
237 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " SUPERLU LU:\n")); in main()
238 PetscCall(MatGetFactor(A, MATSOLVERSUPERLU, MAT_FACTOR_LU, &F)); in main()
245 PetscCall(PetscStrcmp(MATSOLVERSUPERLU_DIST, pack, &match)); in main()
248 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " SUPERLU_DIST LU:\n")); in main()
249 PetscCall(MatGetFactor(A, MATSOLVERSUPERLU_DIST, MAT_FACTOR_LU, &F)); in main()
263 PetscCall(PetscStrcmp(MATSOLVERMUMPS, pack, &match)); in main()
266 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " MUMPS CHOLESKY:\n")); in main()
267 PetscCall(MatGetFactor(A, MATSOLVERMUMPS, MAT_FACTOR_CHOLESKY, &F)); in main()
269 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " MUMPS LU:\n")); in main()
270 PetscCall(MatGetFactor(A, MATSOLVERMUMPS, MAT_FACTOR_LU, &F)); in main()
279 PetscCall(MatMumpsSetIcntl(F, 7, icntl)); in main()
282 PetscCall(MatMumpsSetIcntl(F, 24, 1)); in main()
283 PetscCall(MatMumpsSetCntl(F, 3, cntl)); in main()
290 PetscCall(PetscStrcmp(MATSOLVERMKL_PARDISO, pack, &match)); in main()
293 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " MKL_PARDISO CHOLESKY:\n")); in main()
294 PetscCall(MatGetFactor(A, MATSOLVERMKL_PARDISO, MAT_FACTOR_CHOLESKY, &F)); in main()
296 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " MKL_PARDISO LU:\n")); in main()
297 PetscCall(MatGetFactor(A, MATSOLVERMKL_PARDISO, MAT_FACTOR_LU, &F)); in main()
304 PetscCall(PetscStrcmp(MATSOLVERCUSPARSE, pack, &match)); in main()
307 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " CUSPARSE CHOLESKY:\n")); in main()
308 PetscCall(MatGetFactor(A, MATSOLVERCUSPARSE, MAT_FACTOR_CHOLESKY, &F)); in main()
310 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " CUSPARSE LU:\n")); in main()
311 PetscCall(MatGetFactor(A, MATSOLVERCUSPARSE, MAT_FACTOR_LU, &F)); in main()
323 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " PETSC CHOLESKY:\n")); in main()
324 PetscCall(MatGetFactor(A, MATSOLVERPETSC, MAT_FACTOR_CHOLESKY, &F)); in main()
326 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " PETSC LU:\n")); in main()
327 PetscCall(MatGetFactor(A, MATSOLVERPETSC, MAT_FACTOR_LU, &F)); in main()
335 PetscCall(MatFactorInfoInitialize(&info)); in main()
339 PetscCall(MatCholeskyFactorSymbolic(F, A, perm, &info)); in main()
341 PetscCall(MatLUFactorSymbolic(F, A, perm, iperm, &info)); in main()
346 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, " %" PetscInt_FMT "-the CHOLESKY numfactorization \n", nfa… in main()
347 PetscCall(MatCholeskyFactorNumeric(F, A, &info)); in main()
349 … PetscCall(PetscPrintf(PETSC_COMM_WORLD, " %" PetscInt_FMT "-the LU numfactorization \n", nfact)); in main()
350 PetscCall(MatLUFactorNumeric(F, A, &info)); in main()
353 PetscCall(PetscViewerPushFormat(PETSC_VIEWER_STDOUT_WORLD, PETSC_VIEWER_ASCII_INFO)); in main()
354 PetscCall(MatView(F, PETSC_VIEWER_STDOUT_WORLD)); in main()
355 PetscCall(PetscViewerPopFormat(PETSC_VIEWER_STDOUT_WORLD)); in main()
368 PetscCall(MatGetSize(F, &M, NULL)); in main()
369 PetscCall(PetscMalloc1(M, &diag)); in main()
370 PetscCall(MatSuperluDistGetDiagU(F, diag)); in main()
371 PetscCall(PetscFree(diag)); in main()
376 PetscCall(MatGetInertia(F, &nneg, &nzero, &npos)); in main()
377 …PetscCall(PetscViewerASCIIPrintf(PETSC_VIEWER_STDOUT_WORLD, " MatInertia: nneg: %" PetscInt_FMT ",… in main()
387 PetscCall(MatCholeskyFactorSymbolic(F, A, perm, &info)); in main()
388 PetscCall(MatCholeskyFactorNumeric(F, A, &info)); in main()
390 PetscCall(MatLUFactorSymbolic(F, A, perm, iperm, &info)); in main()
391 PetscCall(MatLUFactorNumeric(F, A, &info)); in main()
399 PetscCall(MatMatMult(Ae, C, MAT_INITIAL_MATRIX, 2.0, &RHS)); in main()
401 PetscCall(MatMatMult(Ae, C, MAT_REUSE_MATRIX, 2.0, &RHS)); in main()
404 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " %" PetscInt_FMT "-the MatMatSolve \n", nsolve)); in main()
405 PetscCall(MatMatSolve(F, RHS, X)); in main()
408 PetscCall(MatAXPY(X, -1.0, C, SAME_NONZERO_PATTERN)); in main()
409 PetscCall(MatNorm(X, NORM_FROBENIUS, &norm)); in main()
410 …if (norm > tol) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "%" PetscInt_FMT "-the MatMatSolve: Norm o… in main()
415 PetscCall(MatCopy(RHS, X, SAME_NONZERO_PATTERN)); in main()
416 PetscCall(MatMatSolve(F, X, X)); in main()
418 PetscCall(MatAXPY(X, -1.0, C, SAME_NONZERO_PATTERN)); in main()
419 PetscCall(MatNorm(X, NORM_FROBENIUS, &norm)); in main()
420 …if (norm > tol) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatMatSolve(F,RHS,RHS): Norm of error %g\… in main()
426 PetscCall(MatTranspose(RHS, MAT_INITIAL_MATRIX, &RHST)); in main()
427 PetscCall(MatConvert(RHST, MATAIJ, MAT_INITIAL_MATRIX, &spRHST)); in main()
428 PetscCall(MatCreateTranspose(spRHST, &spRHS)); in main()
430 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, " %" PetscInt_FMT "-the sparse MatMatSolve \n", nsolve)); in main()
431 PetscCall(MatMatSolve(F, spRHS, X)); in main()
434 PetscCall(MatAXPY(X, -1.0, C, SAME_NONZERO_PATTERN)); in main()
435 PetscCall(MatNorm(X, NORM_FROBENIUS, &norm)); in main()
436 …if (norm > tol) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "%" PetscInt_FMT "-the sparse MatMatSolve:… in main()
438 PetscCall(MatDestroy(&spRHST)); in main()
439 PetscCall(MatDestroy(&spRHS)); in main()
440 PetscCall(MatDestroy(&RHST)); in main()
447 PetscCall(MatTransposeMatMult(Ae, C, MAT_INITIAL_MATRIX, 2.0, &RHS1)); in main()
449 PetscCall(MatTransposeMatMult(Ae, C, MAT_REUSE_MATRIX, 2.0, &RHS1)); in main()
453 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, " %" PetscInt_FMT "-the MatMatSolveTranspose\n", nsolve)… in main()
454 PetscCall(MatMatSolveTranspose(F, RHS1, X)); in main()
457 PetscCall(MatAXPY(X, -1.0, C, SAME_NONZERO_PATTERN)); in main()
458 PetscCall(MatNorm(X, NORM_FROBENIUS, &norm)); in main()
459 …if (norm > tol) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "%" PetscInt_FMT "-the MatMatSolveTranspos… in main()
465 PetscCall(MatTranspose(RHS1, MAT_INITIAL_MATRIX, &RHST)); in main()
466 PetscCall(MatConvert(RHST, MATAIJ, MAT_INITIAL_MATRIX, &spRHST)); in main()
467 PetscCall(MatCreateTranspose(spRHST, &spRHS)); in main()
469 PetscCall(MatMatSolveTranspose(F, spRHS, X)); in main()
472 PetscCall(MatAXPY(X, -1.0, C, SAME_NONZERO_PATTERN)); in main()
473 PetscCall(MatNorm(X, NORM_FROBENIUS, &norm)); in main()
474 …if (norm > tol) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "%" PetscInt_FMT "-the sparse MatMatSolveT… in main()
476 PetscCall(MatDestroy(&spRHST)); in main()
477 PetscCall(MatDestroy(&spRHS)); in main()
478 PetscCall(MatDestroy(&RHST)); in main()
485 PetscCall(VecSetRandom(x, rand)); in main()
486 PetscCall(VecCopy(x, u)); in main()
487 PetscCall(MatMult(Ae, x, b)); in main()
489 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " %" PetscInt_FMT "-the MatSolve \n", nsolve)); in main()
490 PetscCall(MatSolve(F, b, x)); in main()
493 PetscCall(VecAXPY(u, -1.0, x)); /* u <- (-1.0)x + u */ in main()
494 PetscCall(VecNorm(u, NORM_2, &norm)); in main()
497 PetscCall(MatMult(Ae, x, u)); /* u = A*x */ in main()
498 PetscCall(VecAXPY(u, -1.0, b)); /* u <- (-1.0)b + u */ in main()
499 PetscCall(VecNorm(u, NORM_2, &resi)); in main()
500 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatSolve: Norm of error %g, resi %g, numfact %" PetscInt_… in main()
508 PetscCall(VecSetRandom(x, rand)); in main()
509 PetscCall(VecCopy(x, u)); in main()
510 PetscCall(MatMultTranspose(Ae, x, b)); in main()
512 … PetscCall(PetscPrintf(PETSC_COMM_WORLD, " %" PetscInt_FMT "-the MatSolveTranspose\n", nsolve)); in main()
513 PetscCall(MatSolveTranspose(F, b, x)); in main()
516 PetscCall(VecAXPY(u, -1.0, x)); /* u <- (-1.0)x + u */ in main()
517 PetscCall(VecNorm(u, NORM_2, &norm)); in main()
520 PetscCall(MatMultTranspose(Ae, x, u)); /* u = A*x */ in main()
521 PetscCall(VecAXPY(u, -1.0, b)); /* u <- (-1.0)b + u */ in main()
522 PetscCall(VecNorm(u, NORM_2, &resi)); in main()
523 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatSolveTranspose: Norm of error %g, resi %g, numfact %" … in main()
530 PetscCall(MatDestroy(&Ae)); in main()
531 PetscCall(MatDestroy(&A)); in main()
532 PetscCall(MatDestroy(&C)); in main()
533 PetscCall(MatDestroy(&F)); in main()
534 PetscCall(MatDestroy(&X)); in main()
535 PetscCall(MatDestroy(&RHS)); in main()
536 PetscCall(MatDestroy(&RHS1)); in main()
538 PetscCall(PetscRandomDestroy(&rand)); in main()
539 PetscCall(ISDestroy(&perm)); in main()
540 PetscCall(ISDestroy(&iperm)); in main()
541 PetscCall(VecDestroy(&x)); in main()
542 PetscCall(VecDestroy(&b)); in main()
543 PetscCall(VecDestroy(&u)); in main()
544 PetscCall(PetscFinalize()); in main()