[petsc-users] Issue updating MUMPS ictnl after failed solve

David Knezevic david.knezevic at akselos.com
Tue Sep 20 09:50:49 CDT 2016


On Mon, Sep 19, 2016 at 11:04 PM, Hong <hzhang at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20160920/12de0dde/attachment.html>


More information about the petsc-users mailing list