On Mon, Sep 19, 2016 at 11:04 PM, Hong <hzh...@mcs.anl.gov> wrote: > David : > I did following: > > PC pc; > Mat F; > ierr = KSPGetPC(ksp,&pc);CHKERRQ(ierr); > ierr = PCReset(pc);CHKERRQ(ierr); > ierr = KSPSetOperators(ksp,A,A);CHKERRQ(ierr); > ierr = PCSetType(pc,PCCHOLESKY);CHKERRQ(ierr); > > ierr = PCFactorSetMatSolverPackage(pc,MATSOLVERMUMPS);CHKERRQ( > ierr); > ierr = PCFactorSetUpMatSolverPackage(pc);CHKERRQ(ierr); > ierr = PCFactorGetMatrix(pc,&F);CHKERRQ(ierr); > ierr = MatMumpsSetIcntl(F,14,30);CHKERRQ(ierr); > > ierr = KSPSolve(ksp,b,x);CHKERRQ(ierr); > > Then it resolves the matrix equation with ICNTL(14)=30. > Attached is modified petsc/src/ksp/ksp/examples/tutorials/ex10.c. > Using in with your matrix.dat, I get > > mpiexec -n 4 ./ex10 -f0 matrix.dat -rhs 0 -ksp_reason > Number of iterations = 0 > KSPConvergedReason: -11 > Reset PC with ICNTL(14)=30 ... > KSPConvergedReason: 2 >
Hong, Thanks very much for your test code. I get the same output as you when I run "mpiexec -n 4 ./ex10 -f0 matrix.dat -rhs 0 -ksp_reason". However, I used KSPPREONLY in my original test code, and if I add KSPSetType(ksp,KSPPREONLY) in your modified exc10.c after the line KSPCreate(PETSC_COMM_WORLD,&ksp) then I get the following output: mpiexec -np 4 ./mumps_test-opt -f0 matrix.dat -rhs 0 -ksp_reason Number of iterations = 0 KSPConvergedReason: -11 Reset PC with ICNTL(14)=30 ... KSPConvergedReason: -11 So it seems like the icntl data is not being updated when we use PREONLY. Do you know how to fix this? Thanks, David