Lines Matching refs:PetscCall
19 PetscCall(PetscInitialize(&argc, &argv, NULL, help)); in main()
23 PetscCall(PetscRandomCreate(PETSC_COMM_WORLD, &rand)); in main()
24 PetscCall(PetscRandomSetFromOptions(rand)); in main()
27 PetscCall(PetscOptionsGetInt(NULL, NULL, "-m", &m, NULL)); in main()
29 PetscCall(PetscOptionsGetInt(NULL, NULL, "-n", &n, NULL)); in main()
31 PetscCall(PetscOptionsGetInt(NULL, NULL, "-p", &p, NULL)); in main()
32 PetscCall(PetscOptionsHasName(NULL, NULL, "-mats_view", &mats_view)); in main()
35 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " Create ScaLAPACK matrix A\n")); in main()
36 PetscCall(MatCreate(PETSC_COMM_WORLD, &A)); in main()
37 PetscCall(MatSetSizes(A, m, n, PETSC_DECIDE, PETSC_DECIDE)); in main()
38 PetscCall(MatSetType(A, MATSCALAPACK)); in main()
39 PetscCall(MatSetFromOptions(A)); in main()
40 PetscCall(MatSetUp(A)); in main()
42 PetscCall(MatGetOwnershipIS(A, &isrows, &iscols)); in main()
43 PetscCall(ISGetLocalSize(isrows, &nrows)); in main()
44 PetscCall(ISGetIndices(isrows, &rows)); in main()
45 PetscCall(ISGetLocalSize(iscols, &ncols)); in main()
46 PetscCall(ISGetIndices(iscols, &cols)); in main()
47 PetscCall(PetscMalloc1(nrows * ncols, &v)); in main()
50 PetscCall(PetscRandomGetValue(rand, &rval)); in main()
54 PetscCall(MatSetValues(A, nrows, rows, ncols, cols, v, INSERT_VALUES)); in main()
55 PetscCall(MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY)); in main()
56 PetscCall(MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY)); in main()
57 PetscCall(ISRestoreIndices(isrows, &rows)); in main()
58 PetscCall(ISRestoreIndices(iscols, &cols)); in main()
59 PetscCall(ISDestroy(&isrows)); in main()
60 PetscCall(ISDestroy(&iscols)); in main()
61 PetscCall(PetscFree(v)); in main()
63 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, "A: nrows %" PetscInt_FMT ", m %" PetscInt_FMT "; ncols %"… in main()
64 PetscCall(MatView(A, PETSC_VIEWER_STDOUT_WORLD)); in main()
68 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " Create rhs matrix B\n")); in main()
69 PetscCall(MatCreate(PETSC_COMM_WORLD, &B)); in main()
70 PetscCall(MatSetSizes(B, m, p, PETSC_DECIDE, PETSC_DECIDE)); in main()
71 PetscCall(MatSetType(B, MATSCALAPACK)); in main()
72 PetscCall(MatSetFromOptions(B)); in main()
73 PetscCall(MatSetUp(B)); in main()
74 PetscCall(MatGetOwnershipIS(B, &isrows, &iscols)); in main()
75 PetscCall(ISGetLocalSize(isrows, &nrows)); in main()
76 PetscCall(ISGetIndices(isrows, &rows)); in main()
77 PetscCall(ISGetLocalSize(iscols, &ncols)); in main()
78 PetscCall(ISGetIndices(iscols, &cols)); in main()
79 PetscCall(PetscMalloc1(nrows * ncols, &v)); in main()
82 PetscCall(PetscRandomGetValue(rand, &rval)); in main()
86 PetscCall(MatSetValues(B, nrows, rows, ncols, cols, v, INSERT_VALUES)); in main()
87 PetscCall(MatAssemblyBegin(B, MAT_FINAL_ASSEMBLY)); in main()
88 PetscCall(MatAssemblyEnd(B, MAT_FINAL_ASSEMBLY)); in main()
89 PetscCall(ISRestoreIndices(isrows, &rows)); in main()
90 PetscCall(ISRestoreIndices(iscols, &cols)); in main()
91 PetscCall(ISDestroy(&isrows)); in main()
92 PetscCall(ISDestroy(&iscols)); in main()
93 PetscCall(PetscFree(v)); in main()
95 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, "B: nrows %" PetscInt_FMT ", m %" PetscInt_FMT "; ncols %"… in main()
96 PetscCall(MatView(B, PETSC_VIEWER_STDOUT_WORLD)); in main()
100 PetscCall(VecCreate(PETSC_COMM_WORLD, &b)); in main()
101 PetscCall(VecSetSizes(b, m, PETSC_DECIDE)); in main()
102 PetscCall(VecSetFromOptions(b)); in main()
103 PetscCall(VecGetArray(b, &barray)); in main()
105 PetscCall(PetscRandomGetValue(rand, &rval)); in main()
108 PetscCall(VecRestoreArray(b, &barray)); in main()
109 PetscCall(VecAssemblyBegin(b)); in main()
110 PetscCall(VecAssemblyEnd(b)); in main()
112 PetscCall(PetscSynchronizedPrintf(PETSC_COMM_WORLD, "[%d] b: m %" PetscInt_FMT "\n", rank, m)); in main()
113 PetscCall(PetscSynchronizedFlush(PETSC_COMM_WORLD, PETSC_STDOUT)); in main()
114 PetscCall(VecView(b, PETSC_VIEWER_STDOUT_WORLD)); in main()
116 PetscCall(VecDuplicate(b, &x)); in main()
119 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " Create solution matrix X\n")); in main()
120 PetscCall(MatDuplicate(B, MAT_DO_NOT_COPY_VALUES, &X)); in main()
124 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " Create ScaLAPACK matrix Aher\n")); in main()
125 PetscCall(MatHermitianTranspose(A, MAT_INITIAL_MATRIX, &Aher)); in main()
126 PetscCall(MatAXPY(Aher, 1.0, A, SAME_NONZERO_PATTERN)); /* Aher = A + A^T */ in main()
127 …PetscCall(MatShift(Aher, 100.0)); /* add 100.0 to diagonals of Aher to make … in main()
129 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Aher:\n")); in main()
130 PetscCall(MatView(Aher, PETSC_VIEWER_STDOUT_WORLD)); in main()
135 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " Test Cholesky Solver \n")); in main()
138 PetscCall(MatDuplicate(Aher, MAT_COPY_VALUES, &G)); in main()
141 PetscCall(MatCholeskyFactor(G, 0, 0)); in main()
143 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Cholesky Factor G:\n")); in main()
144 PetscCall(MatView(G, PETSC_VIEWER_STDOUT_WORLD)); in main()
148 PetscCall(MatSolve(G, b, x)); in main()
149 PetscCall(MatMatSolve(G, B, X)); in main()
150 PetscCall(MatDestroy(&G)); in main()
153 PetscCall(MatGetFactor(Aher, MATSOLVERSCALAPACK, MAT_FACTOR_CHOLESKY, &G)); in main()
154 PetscCall(MatCholeskyFactorSymbolic(G, Aher, 0, NULL)); in main()
155 PetscCall(MatCholeskyFactorNumeric(G, Aher, NULL)); in main()
156 if (mats_view) PetscCall(MatView(G, PETSC_VIEWER_STDOUT_WORLD)); in main()
157 PetscCall(MatSolve(G, b, x)); in main()
158 PetscCall(MatMatSolve(G, B, X)); in main()
159 PetscCall(MatDestroy(&G)); in main()
162 PetscCall(VecCreate(PETSC_COMM_WORLD, &c)); in main()
163 PetscCall(VecSetSizes(c, m, PETSC_DECIDE)); in main()
164 PetscCall(VecSetFromOptions(c)); in main()
165 PetscCall(MatMult(Aher, x, c)); in main()
166 PetscCall(VecAXPY(c, -1.0, b)); in main()
167 PetscCall(VecNorm(c, NORM_1, &norm)); in main()
168 …if (norm > tol) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Warning: ||Aher*x - b||=%g for Cholesky\n… in main()
171 PetscCall(MatMatMult(Aher, X, MAT_INITIAL_MATRIX, PETSC_DETERMINE, &C)); in main()
172 PetscCall(MatAXPY(C, -1.0, B, SAME_NONZERO_PATTERN)); in main()
173 PetscCall(MatNorm(C, NORM_1, &norm)); in main()
174 …if (norm > tol) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Warning: ||Aher*X - B||=%g for Cholesky\n… in main()
178 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " Test LU Solver \n")); in main()
181 PetscCall(MatDuplicate(A, MAT_COPY_VALUES, &F)); in main()
183 PetscCall(VecDuplicate(x, &d)); in main()
184 PetscCall(VecCopy(x, d)); in main()
187 PetscCall(MatLUFactor(F, 0, 0, NULL)); in main()
190 PetscCall(MatSolveAdd(F, b, d, x)); in main()
191 PetscCall(MatMatSolve(F, B, X)); in main()
192 PetscCall(MatDestroy(&F)); in main()
195 PetscCall(VecCreate(PETSC_COMM_WORLD, &e)); in main()
196 PetscCall(VecSetSizes(e, m, PETSC_DECIDE)); in main()
197 PetscCall(VecSetFromOptions(e)); in main()
198 PetscCall(MatMult(A, x, c)); in main()
199 PetscCall(MatMult(A, d, e)); in main()
200 PetscCall(VecAXPY(c, -1.0, e)); in main()
201 PetscCall(VecAXPY(c, -1.0, b)); in main()
202 PetscCall(VecNorm(c, NORM_1, &norm)); in main()
203 …if (norm > tol) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Warning: ||A*x - b||=%g for LU\n", (doubl… in main()
205 PetscCall(MatProductReplaceMats(A, NULL, NULL, C)); in main()
206 PetscCall(MatMatMult(A, X, MAT_REUSE_MATRIX, PETSC_DETERMINE, &C)); in main()
207 PetscCall(MatAXPY(C, -1.0, B, SAME_NONZERO_PATTERN)); in main()
208 PetscCall(MatNorm(C, NORM_1, &norm)); in main()
209 …if (norm > tol) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Warning: ||A*X - B||=%g for LU\n", (doubl… in main()
212 PetscCall(MatGetFactor(A, MATSOLVERSCALAPACK, MAT_FACTOR_LU, &F)); in main()
213 PetscCall(MatLUFactorSymbolic(F, A, 0, 0, NULL)); in main()
214 PetscCall(MatLUFactorNumeric(F, A, NULL)); in main()
215 if (mats_view) PetscCall(MatView(F, PETSC_VIEWER_STDOUT_WORLD)); in main()
216 PetscCall(MatSolve(F, b, x)); in main()
217 PetscCall(MatMatSolve(F, B, X)); in main()
218 PetscCall(MatDestroy(&F)); in main()
221 PetscCall(MatDestroy(&A)); in main()
222 PetscCall(MatDestroy(&Aher)); in main()
223 PetscCall(MatDestroy(&B)); in main()
224 PetscCall(MatDestroy(&C)); in main()
225 PetscCall(MatDestroy(&X)); in main()
226 PetscCall(VecDestroy(&b)); in main()
227 PetscCall(VecDestroy(&c)); in main()
228 PetscCall(VecDestroy(&d)); in main()
229 PetscCall(VecDestroy(&e)); in main()
230 PetscCall(VecDestroy(&x)); in main()
231 PetscCall(PetscRandomDestroy(&rand)); in main()
232 PetscCall(PetscFinalize()); in main()