Actual source code: ex160.c
2: static char help[] = "Tests MatMPIBAIJ format in sequential run \n";
4: #include <petscmat.h>
5: int main(int argc, char **args)
6: {
7: Mat A, B;
8: PetscInt i, rstart, rend;
9: PetscMPIInt rank, size;
10: PetscScalar v;
13: PetscInitialize(&argc, &args, (char *)0, help);
14: MPI_Comm_rank(PETSC_COMM_WORLD, &rank);
15: MPI_Comm_size(PETSC_COMM_WORLD, &size);
17: /* Create a MPIBAIJ matrix */
18: MatCreate(PETSC_COMM_WORLD, &A);
19: MatSetSizes(A, PETSC_DECIDE, PETSC_DECIDE, 32, 32);
20: MatSetType(A, MATMPIBAIJ);
21: MatSeqBAIJSetPreallocation(A, 2, 2, NULL);
22: MatMPIBAIJSetPreallocation(A, 2, 2, NULL, 2, NULL);
24: v = 1.0;
25: MatGetOwnershipRange(A, &rstart, &rend);
26: for (i = rstart; i < rend; i++) MatSetValues(A, 1, &i, 1, &i, &v, INSERT_VALUES);
27: MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY);
28: MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY);
30: /* Convert A to AIJ format */
31: MatConvert(A, MATAIJ, MAT_INITIAL_MATRIX, &B);
33: MatDestroy(&A);
34: MatDestroy(&B);
35: PetscFinalize();
36: return 0;
37: }
39: /*TEST
41: test:
42: output_file: output/ex160.out
44: TEST*/