Actual source code: ex81.c
1: static char help[] = "Test different KSP and Mat prefixes.\n\n";
3: #include <petscksp.h>
5: int main(int argc, char **args)
6: {
7: KSP ksp;
8: PC pc;
9: Mat A, B, C;
12: PetscInitialize(&argc, &args, (char *)0, help);
13: MatCreateConstantDiagonal(PETSC_COMM_WORLD, 2, 2, PETSC_DECIDE, PETSC_DECIDE, 1.0, &A);
14: MatConvert(A, MATAIJ, MAT_INPLACE_MATRIX, &A);
15: MatDuplicate(A, MAT_COPY_VALUES, &B);
16: MatDuplicate(A, MAT_COPY_VALUES, &C);
17: KSPCreate(PETSC_COMM_WORLD, &ksp);
18: MatSetOptionsPrefix(A, "alpha_");
19: KSPSetOperators(ksp, A, A);
20: KSPSetOptionsPrefix(ksp, "beta_");
21: KSPSetFromOptions(ksp);
22: KSPGetPC(ksp, &pc);
23: PCSetUp(pc);
24: PCSetUpOnBlocks(pc);
25: PCView(pc, PETSC_VIEWER_STDOUT_WORLD);
26: MatSetOptionsPrefix(C, "gamma_");
27: KSPSetOperators(ksp, C, C);
28: PCSetUp(pc);
29: PCSetUpOnBlocks(pc);
30: PCView(pc, PETSC_VIEWER_STDOUT_WORLD);
31: KSPDestroy(&ksp);
32: MatDestroy(&C);
33: MatDestroy(&B);
34: MatDestroy(&A);
35: PetscFinalize();
36: return 0;
37: }
39: /*TEST
41: test:
42: nsize: 2
43: requires: mumps
44: args: -beta_pc_type lu -beta_pc_factor_mat_solver_type mumps -beta_mat_mumps_icntl_14 30
46: test:
47: nsize: 2
48: suffix: 2
49: requires: mumps
50: args: -beta_pc_type asm -beta_sub_pc_factor_mat_solver_type mumps -beta_sub_mat_mumps_icntl_14 30 -beta_sub_pc_type lu
52: TEST*/