Actual source code: ex61.c
2: static char help[] = "Tests MatSeq(B)AIJSetColumnIndices().\n\n";
4: #include <petscmat.h>
6: /*
7: Generate the following matrix:
9: 1 0 3
10: 1 2 3
11: 0 0 3
12: */
13: int main(int argc, char **args)
14: {
15: Mat A;
16: PetscScalar v;
17: PetscInt i, j, rowlens[] = {2, 3, 1}, cols[] = {0, 2, 0, 1, 2, 2};
18: PetscBool flg;
21: PetscInitialize(&argc, &args, (char *)0, help);
22: PetscOptionsHasName(NULL, NULL, "-baij", &flg);
23: if (flg) {
24: MatCreateSeqBAIJ(PETSC_COMM_WORLD, 1, 3, 3, 0, rowlens, &A);
25: MatSeqBAIJSetColumnIndices(A, cols);
26: } else {
27: MatCreateSeqAIJ(PETSC_COMM_WORLD, 3, 3, 0, rowlens, &A);
28: MatSeqAIJSetColumnIndices(A, cols);
29: }
31: i = 0;
32: j = 0;
33: v = 1.0;
34: MatSetValues(A, 1, &i, 1, &j, &v, INSERT_VALUES);
35: i = 0;
36: j = 2;
37: v = 3.0;
38: MatSetValues(A, 1, &i, 1, &j, &v, INSERT_VALUES);
40: i = 1;
41: j = 0;
42: v = 1.0;
43: MatSetValues(A, 1, &i, 1, &j, &v, INSERT_VALUES);
44: i = 1;
45: j = 1;
46: v = 2.0;
47: MatSetValues(A, 1, &i, 1, &j, &v, INSERT_VALUES);
48: i = 1;
49: j = 2;
50: v = 3.0;
51: MatSetValues(A, 1, &i, 1, &j, &v, INSERT_VALUES);
53: i = 2;
54: j = 2;
55: v = 3.0;
56: MatSetValues(A, 1, &i, 1, &j, &v, INSERT_VALUES);
58: MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY);
59: MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY);
60: MatView(A, PETSC_VIEWER_STDOUT_WORLD);
62: MatDestroy(&A);
63: PetscFinalize();
64: return 0;
65: }
67: /*TEST
69: test:
71: test:
72: suffix: 2
73: args: -baij
75: TEST*/