Actual source code: ex7.c
2: static char help[] = "Tests MatILUFactorSymbolic() on matrix with missing diagonal.\n\n";
4: #include <petscmat.h>
5: #include <petscpc.h>
7: int main(int argc,char **args)
8: {
9: Mat C,A;
10: PetscInt i,j;
11: PetscScalar v;
12: PC pc;
13: Vec xtmp;
15: PetscInitialize(&argc,&args,(char*)0,help);
16: MatCreate(PETSC_COMM_WORLD,&C);
17: MatSetSizes(C,PETSC_DECIDE,PETSC_DECIDE,3,3);
18: MatSetFromOptions(C);
19: MatSetUp(C);
20: VecCreateSeq(PETSC_COMM_WORLD,3,&xtmp);
21: i = 0; j = 0; v = 4;
22: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
23: i = 0; j = 2; v = 1;
24: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
25: i = 1; j = 0; v = 1;
26: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
27: i = 1; j = 1; v = 4;
28: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
29: i = 2; j = 1; v = 1;
30: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
32: MatAssemblyBegin(C,MAT_FINAL_ASSEMBLY);
33: MatAssemblyEnd(C,MAT_FINAL_ASSEMBLY);
35: MatView(C,PETSC_VIEWER_STDOUT_WORLD);
36: PCCreate(PETSC_COMM_WORLD,&pc);
37: PCSetFromOptions(pc);
38: PCSetOperators(pc,C,C);
39: PCSetUp(pc);
40: PCFactorGetMatrix(pc,&A);
41: MatView(A,PETSC_VIEWER_STDOUT_WORLD);
43: PCDestroy(&pc);
44: VecDestroy(&xtmp);
45: MatDestroy(&C);
47: PetscFinalize();
48: return 0;
49: }