Lines Matching refs:PetscCall
20 PetscCall(PetscInitialize(&argc, &argv, NULL, help)); in main()
24 PetscCall(PetscRandomCreate(PETSC_COMM_WORLD, &rand)); in main()
25 PetscCall(PetscRandomSetFromOptions(rand)); in main()
28 PetscCall(PetscOptionsGetInt(NULL, NULL, "-m", &m, NULL)); in main()
30 PetscCall(PetscOptionsGetInt(NULL, NULL, "-n", &n, NULL)); in main()
32 PetscCall(PetscOptionsGetInt(NULL, NULL, "-p", &p, NULL)); in main()
33 PetscCall(PetscOptionsHasName(NULL, NULL, "-mats_view", &mats_view)); in main()
36 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " Create Elemental matrix A\n")); in main()
37 PetscCall(MatCreate(PETSC_COMM_WORLD, &A)); in main()
38 PetscCall(MatSetSizes(A, m, n, PETSC_DECIDE, PETSC_DECIDE)); in main()
39 PetscCall(MatSetType(A, MATELEMENTAL)); in main()
40 PetscCall(MatSetFromOptions(A)); in main()
41 PetscCall(MatSetUp(A)); in main()
43 PetscCall(MatGetOwnershipIS(A, &isrows, &iscols)); in main()
44 PetscCall(ISGetLocalSize(isrows, &nrows)); in main()
45 PetscCall(ISGetIndices(isrows, &rows)); in main()
46 PetscCall(ISGetLocalSize(iscols, &ncols)); in main()
47 PetscCall(ISGetIndices(iscols, &cols)); in main()
48 PetscCall(PetscMalloc1(nrows * ncols, &v)); in main()
51 PetscCall(PetscRandomGetValue(rand, &rval)); in main()
55 PetscCall(MatSetValues(A, nrows, rows, ncols, cols, v, INSERT_VALUES)); in main()
56 PetscCall(MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY)); in main()
57 PetscCall(MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY)); in main()
58 PetscCall(ISRestoreIndices(isrows, &rows)); in main()
59 PetscCall(ISRestoreIndices(iscols, &cols)); in main()
60 PetscCall(ISDestroy(&isrows)); in main()
61 PetscCall(ISDestroy(&iscols)); in main()
62 PetscCall(PetscFree(v)); in main()
64 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, "A: nrows %" PetscInt_FMT ", m %" PetscInt_FMT "; ncols %"… in main()
65 PetscCall(MatView(A, PETSC_VIEWER_STDOUT_WORLD)); in main()
69 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " Create rhs matrix B\n")); in main()
70 PetscCall(MatCreate(PETSC_COMM_WORLD, &B)); in main()
71 PetscCall(MatSetSizes(B, m, p, PETSC_DECIDE, PETSC_DECIDE)); in main()
72 PetscCall(MatSetType(B, MATELEMENTAL)); in main()
73 PetscCall(MatSetFromOptions(B)); in main()
74 PetscCall(MatSetUp(B)); in main()
75 PetscCall(MatGetOwnershipIS(B, &isrows, &iscols)); in main()
76 PetscCall(ISGetLocalSize(isrows, &nrows)); in main()
77 PetscCall(ISGetIndices(isrows, &rows)); in main()
78 PetscCall(ISGetLocalSize(iscols, &ncols)); in main()
79 PetscCall(ISGetIndices(iscols, &cols)); in main()
80 PetscCall(PetscMalloc1(nrows * ncols, &v)); in main()
83 PetscCall(PetscRandomGetValue(rand, &rval)); in main()
87 PetscCall(MatSetValues(B, nrows, rows, ncols, cols, v, INSERT_VALUES)); in main()
88 PetscCall(MatAssemblyBegin(B, MAT_FINAL_ASSEMBLY)); in main()
89 PetscCall(MatAssemblyEnd(B, MAT_FINAL_ASSEMBLY)); in main()
90 PetscCall(ISRestoreIndices(isrows, &rows)); in main()
91 PetscCall(ISRestoreIndices(iscols, &cols)); in main()
92 PetscCall(ISDestroy(&isrows)); in main()
93 PetscCall(ISDestroy(&iscols)); in main()
94 PetscCall(PetscFree(v)); in main()
96 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, "B: nrows %" PetscInt_FMT ", m %" PetscInt_FMT "; ncols %"… in main()
97 PetscCall(MatView(B, PETSC_VIEWER_STDOUT_WORLD)); in main()
101 PetscCall(VecCreate(PETSC_COMM_WORLD, &b)); in main()
102 PetscCall(VecSetSizes(b, m, PETSC_DECIDE)); in main()
103 PetscCall(VecSetFromOptions(b)); in main()
104 PetscCall(VecGetArray(b, &barray)); in main()
106 PetscCall(PetscRandomGetValue(rand, &rval)); in main()
109 PetscCall(VecRestoreArray(b, &barray)); in main()
110 PetscCall(VecAssemblyBegin(b)); in main()
111 PetscCall(VecAssemblyEnd(b)); in main()
113 PetscCall(PetscSynchronizedPrintf(PETSC_COMM_WORLD, "[%d] b: m %" PetscInt_FMT "\n", rank, m)); in main()
114 PetscCall(PetscSynchronizedFlush(PETSC_COMM_WORLD, PETSC_STDOUT)); in main()
115 PetscCall(VecView(b, PETSC_VIEWER_STDOUT_WORLD)); in main()
117 PetscCall(VecDuplicate(b, &x)); in main()
120 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " Create solution matrix X\n")); in main()
121 PetscCall(MatCreate(PETSC_COMM_WORLD, &X)); in main()
122 PetscCall(MatSetSizes(X, m, p, PETSC_DECIDE, PETSC_DECIDE)); in main()
123 PetscCall(MatSetType(X, MATELEMENTAL)); in main()
124 PetscCall(MatSetFromOptions(X)); in main()
125 PetscCall(MatSetUp(X)); in main()
126 PetscCall(MatAssemblyBegin(X, MAT_FINAL_ASSEMBLY)); in main()
127 PetscCall(MatAssemblyEnd(X, MAT_FINAL_ASSEMBLY)); in main()
131 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " Create Elemental matrix Aher\n")); in main()
132 PetscCall(MatHermitianTranspose(A, MAT_INITIAL_MATRIX, &Aher)); in main()
133 PetscCall(MatAXPY(Aher, 1.0, A, SAME_NONZERO_PATTERN)); /* Aher = A + A^T */ in main()
139 PetscCall(MatGetSize(Aher, &M, &N)); in main()
142 PetscCall(MatSetValues(Aher, 1, &i, 1, &i, &rval, ADD_VALUES)); in main()
145 PetscCall(MatAssemblyBegin(Aher, MAT_FINAL_ASSEMBLY)); in main()
146 PetscCall(MatAssemblyEnd(Aher, MAT_FINAL_ASSEMBLY)); in main()
148 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Aher:\n")); in main()
149 PetscCall(MatView(Aher, PETSC_VIEWER_STDOUT_WORLD)); in main()
154 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " Test Cholesky Solver \n")); in main()
157 PetscCall(MatCreate(PETSC_COMM_WORLD, &G)); in main()
158 PetscCall(MatSetSizes(G, m, n, PETSC_DECIDE, PETSC_DECIDE)); in main()
159 PetscCall(MatSetType(G, MATELEMENTAL)); in main()
160 PetscCall(MatSetFromOptions(G)); in main()
161 PetscCall(MatSetUp(G)); in main()
162 PetscCall(MatAssemblyBegin(G, MAT_FINAL_ASSEMBLY)); in main()
163 PetscCall(MatAssemblyEnd(G, MAT_FINAL_ASSEMBLY)); in main()
164 PetscCall(MatCopy(Aher, G, SAME_NONZERO_PATTERN)); in main()
167 PetscCall(MatCholeskyFactor(G, 0, 0)); in main()
169 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Cholesky Factor G:\n")); in main()
170 PetscCall(MatView(G, PETSC_VIEWER_STDOUT_WORLD)); in main()
174 PetscCall(MatSolve(G, b, x)); in main()
175 PetscCall(MatMatSolve(G, B, X)); in main()
176 PetscCall(MatDestroy(&G)); in main()
179 PetscCall(MatGetFactor(Aher, MATSOLVERELEMENTAL, MAT_FACTOR_CHOLESKY, &G)); in main()
180 PetscCall(MatCholeskyFactorSymbolic(G, Aher, 0, &finfo)); in main()
181 PetscCall(MatCholeskyFactorNumeric(G, Aher, &finfo)); in main()
182 if (mats_view) PetscCall(MatView(G, PETSC_VIEWER_STDOUT_WORLD)); in main()
183 PetscCall(MatSolve(G, b, x)); in main()
184 PetscCall(MatMatSolve(G, B, X)); in main()
185 PetscCall(MatDestroy(&G)); in main()
188 PetscCall(VecCreate(PETSC_COMM_WORLD, &c)); in main()
189 PetscCall(VecSetSizes(c, m, PETSC_DECIDE)); in main()
190 PetscCall(VecSetFromOptions(c)); in main()
191 PetscCall(MatMult(Aher, x, c)); in main()
192 PetscCall(VecAXPY(c, -1.0, b)); in main()
193 PetscCall(VecNorm(c, NORM_1, &norm)); in main()
194 …if (norm > tol) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Warning: |Aher*x - b| for Cholesky %g\n",… in main()
197 PetscCall(MatMatMult(Aher, X, MAT_INITIAL_MATRIX, PETSC_DETERMINE, &C)); in main()
198 PetscCall(MatAXPY(C, -1.0, B, SAME_NONZERO_PATTERN)); in main()
199 PetscCall(MatNorm(C, NORM_1, &norm)); in main()
200 …if (norm > tol) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Warning: |Aher*X - B| for Cholesky %g\n",… in main()
204 PetscCall(PetscPrintf(PETSC_COMM_WORLD, " Test LU Solver \n")); in main()
207 PetscCall(MatCreate(PETSC_COMM_WORLD, &F)); in main()
208 PetscCall(MatSetSizes(F, m, n, PETSC_DECIDE, PETSC_DECIDE)); in main()
209 PetscCall(MatSetType(F, MATELEMENTAL)); in main()
210 PetscCall(MatSetFromOptions(F)); in main()
211 PetscCall(MatSetUp(F)); in main()
212 PetscCall(MatAssemblyBegin(F, MAT_FINAL_ASSEMBLY)); in main()
213 PetscCall(MatAssemblyEnd(F, MAT_FINAL_ASSEMBLY)); in main()
214 PetscCall(MatCopy(A, F, SAME_NONZERO_PATTERN)); in main()
216 PetscCall(VecDuplicate(x, &d)); in main()
217 PetscCall(VecCopy(x, d)); in main()
222 PetscCall(MatLUFactor(F, 0, 0, &finfo)); in main()
225 PetscCall(MatSolveAdd(F, b, d, x)); in main()
226 PetscCall(MatMatSolve(F, B, X)); in main()
227 PetscCall(MatDestroy(&F)); in main()
230 PetscCall(VecCreate(PETSC_COMM_WORLD, &e)); in main()
231 PetscCall(VecSetSizes(e, m, PETSC_DECIDE)); in main()
232 PetscCall(VecSetFromOptions(e)); in main()
233 PetscCall(MatMult(A, x, c)); in main()
234 PetscCall(MatMult(A, d, e)); in main()
235 PetscCall(VecAXPY(c, -1.0, e)); in main()
236 PetscCall(VecAXPY(c, -1.0, b)); in main()
237 PetscCall(VecNorm(c, NORM_1, &norm)); in main()
238 …if (norm > tol) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Warning: |A*x - b| for LU %g\n", (double)… in main()
240 PetscCall(MatProductReplaceMats(A, NULL, NULL, C)); in main()
241 PetscCall(MatMatMult(A, X, MAT_REUSE_MATRIX, PETSC_DETERMINE, &C)); in main()
242 PetscCall(MatAXPY(C, -1.0, B, SAME_NONZERO_PATTERN)); in main()
243 PetscCall(MatNorm(C, NORM_1, &norm)); in main()
244 …if (norm > tol) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Warning: |A*X - B| for LU %g\n", (double)… in main()
247 PetscCall(MatGetFactor(A, MATSOLVERELEMENTAL, MAT_FACTOR_LU, &F)); in main()
248 PetscCall(MatLUFactorSymbolic(F, A, 0, 0, &finfo)); in main()
249 PetscCall(MatLUFactorNumeric(F, A, &finfo)); in main()
250 if (mats_view) PetscCall(MatView(F, PETSC_VIEWER_STDOUT_WORLD)); in main()
251 PetscCall(MatSolve(F, b, x)); in main()
252 PetscCall(MatMatSolve(F, B, X)); in main()
253 PetscCall(MatDestroy(&F)); in main()
256 PetscCall(MatDestroy(&A)); in main()
257 PetscCall(MatDestroy(&Aher)); in main()
258 PetscCall(MatDestroy(&B)); in main()
259 PetscCall(MatDestroy(&C)); in main()
260 PetscCall(MatDestroy(&X)); in main()
261 PetscCall(VecDestroy(&b)); in main()
262 PetscCall(VecDestroy(&c)); in main()
263 PetscCall(VecDestroy(&d)); in main()
264 PetscCall(VecDestroy(&e)); in main()
265 PetscCall(VecDestroy(&x)); in main()
266 PetscCall(PetscRandomDestroy(&rand)); in main()
267 PetscCall(PetscFinalize()); in main()