Actual source code: ex179.c
2: static char help[] = "Tests MatTranspose() with MAT_REUSE_MATRIX and different nonzero pattern\n\n";
4: #include <petscmat.h>
6: int main(int argc, char **argv)
7: {
8: Mat A, B;
9: PetscMPIInt size;
11: PetscInitialize(&argc, &argv, (char *)0, help);
12: MPI_Comm_size(PETSC_COMM_WORLD, &size);
14: MatCreateSeqAIJ(PETSC_COMM_SELF, 2, 2, 2, NULL, &A);
15: MatSetValue(A, 0, 0, 1.0, INSERT_VALUES);
16: MatSetValue(A, 0, 1, 2.0, INSERT_VALUES);
17: MatSetValue(A, 1, 1, 4.0, INSERT_VALUES);
18: MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY);
19: MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY);
20: MatView(A, PETSC_VIEWER_STDOUT_SELF);
21: MatTranspose(A, MAT_INITIAL_MATRIX, &B);
22: MatView(B, PETSC_VIEWER_STDOUT_SELF);
23: MatSetOption(A, MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE);
24: MatSetValue(A, 1, 0, 3.0, INSERT_VALUES);
25: MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY);
26: MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY);
27: MatView(A, PETSC_VIEWER_STDOUT_SELF);
28: MatTranspose(A, MAT_REUSE_MATRIX, &B);
29: MatView(B, PETSC_VIEWER_STDOUT_SELF);
30: MatDestroy(&A);
31: MatDestroy(&B);
32: PetscFinalize();
33: return 0;
34: }
36: /*TEST
38: test:
40: TEST*/