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
9: int main(int argc,char **args)
10: {
11: Mat C,A;
12: PetscInt i,j;
14: PetscScalar v;
15: PC pc;
16: Vec xtmp;
18: PetscInitialize(&argc,&args,(char *)0,help);
20: MatCreate(PETSC_COMM_WORLD,&C);
21: MatSetSizes(C,PETSC_DECIDE,PETSC_DECIDE,3,3);
22: MatSetFromOptions(C);
23: VecCreateSeq(PETSC_COMM_WORLD,3,&xtmp);
24: i = 0; j = 0; v = 4;
25: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
26: i = 0; j = 2; v = 1;
27: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
28: i = 1; j = 0; v = 1;
29: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
30: i = 1; j = 1; v = 4;
31: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
32: i = 2; j = 1; v = 1;
33: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
35: MatAssemblyBegin(C,MAT_FINAL_ASSEMBLY);
36: MatAssemblyEnd(C,MAT_FINAL_ASSEMBLY);
38: MatView(C,PETSC_VIEWER_STDOUT_WORLD);
39: PCCreate(PETSC_COMM_WORLD,&pc);
40: PCSetFromOptions(pc);
41: PCSetOperators(pc,C,C,DIFFERENT_NONZERO_PATTERN);
42: PCSetUp(pc);
43: PCFactorGetMatrix(pc,&A);
44: MatView(A,PETSC_VIEWER_STDOUT_WORLD);
46: PCDestroy(pc);
47: VecDestroy(xtmp);
48: MatDestroy(C);
50: PetscFinalize();
51: return 0;
52: }
54: