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,PETSC_DECIDE,PETSC_DECIDE,3,3,&C);
21: MatSetFromOptions(C);
22: VecCreateSeq(PETSC_COMM_WORLD,3,&xtmp);
23: i = 0; j = 0; v = 4;
24: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
25: i = 0; j = 2; v = 1;
26: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
27: i = 1; j = 0; v = 1;
28: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
29: i = 1; j = 1; v = 4;
30: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
31: i = 2; j = 1; v = 1;
32: MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
34: MatAssemblyBegin(C,MAT_FINAL_ASSEMBLY);
35: MatAssemblyEnd(C,MAT_FINAL_ASSEMBLY);
37: MatView(C,PETSC_VIEWER_STDOUT_WORLD);
38: PCCreate(PETSC_COMM_WORLD,&pc);
39: PCSetFromOptions(pc);
40: PCSetOperators(pc,C,C,DIFFERENT_NONZERO_PATTERN);
41: PCSetUp(pc);
42: PCGetFactoredMatrix(pc,&A);
43: MatView(A,PETSC_VIEWER_STDOUT_WORLD);
45: PCDestroy(pc);
46: VecDestroy(xtmp);
47: MatDestroy(C);
49: PetscFinalize();
50: return 0;
51: }
53: