Actual source code: ex7.c
1: /*$Id: ex7.c,v 1.13 2001/08/07 03:03:43 balay Exp $*/
3: static char help[] = "Tests MatILUFactorSymbolic() on matrix with missing diagonal.\n\n";
5: #include petscmat.h
6: #include petscpc.h
10: int main(int argc,char **args)
11: {
12: Mat C,A;
13: int i,j,ierr;
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: PCSetVector(pc,xtmp);
42: PCSetUp(pc);
43: PCGetFactoredMatrix(pc,&A);
44: MatView(A,PETSC_VIEWER_STDOUT_WORLD);
46: PCDestroy(pc);
47: VecDestroy(xtmp);
48: MatDestroy(C);
51: PetscFinalize();
52: return 0;
53: }
55: