Actual source code: ex8.c
1: static char help[] = "Tests PCView() before PCSetup() with -pc_type lu.\n\n";
3: #include <petscmat.h>
4: #include <petscpc.h>
6: int main(int argc, char **args)
7: {
8: Mat A;
9: PC pc;
11: PetscFunctionBeginUser;
12: PetscCall(PetscInitialize(&argc, &args, NULL, help));
13: PetscCall(MatCreate(PETSC_COMM_WORLD, &A));
14: PetscCall(MatSetSizes(A, 1, 1, 1, 1));
15: PetscCall(MatSetFromOptions(A));
16: PetscCall(MatSetUp(A));
17: PetscCall(MatSetValue(A, 0, 0, 1, INSERT_VALUES));
18: PetscCall(MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY));
19: PetscCall(MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY));
20: PetscCall(MatView(A, PETSC_VIEWER_STDOUT_WORLD));
21: PetscCall(PCCreate(PETSC_COMM_WORLD, &pc));
22: PetscCall(PCSetOperators(pc, A, A));
23: PetscCall(PCSetType(pc, PCLU));
24: PetscCall(PCView(pc, PETSC_VIEWER_STDOUT_WORLD));
25: PetscCall(PCDestroy(&pc));
26: PetscCall(MatDestroy(&A));
27: PetscCall(PetscFinalize());
28: return 0;
29: }
31: /*TEST
33: test:
35: TEST*/