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.nn";
5: #include petscmat.h
6: #include petscpc.h
8: int main(int argc,char **args)
9: {
10: Mat C,A;
11: int i,j,ierr;
12: PetscScalar v;
13: PC pc;
14: Vec xtmp;
16: PetscInitialize(&argc,&args,(char *)0,help);
18: MatCreate(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,3,3,&C);
19: MatSetFromOptions(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,DIFFERENT_NONZERO_PATTERN);
39: PCSetVector(pc,xtmp);
40: PCSetUp(pc);
41: PCGetFactoredMatrix(pc,&A);
42: MatView(A,PETSC_VIEWER_STDOUT_WORLD);
44: PCDestroy(pc);
45: VecDestroy(xtmp);
46: MatDestroy(C);
49: PetscFinalize();
50: return 0;
51: }
53: