Problem in convergence after upgrade to petsc 3.0.0

Randall Mackie rlmackie862 at
Fri Jan 30 21:07:04 CST 2009


	The Change Notes  for v 3.0.0 state that the ILU preconditioner now defaults
to use shift to prevent zero pivot. This is stated on your web page.


Barry Smith wrote:
>    Boy the manual pages are messed up. The possible values are true or 
> false (or yes or no). I don't know why the manual
> page has PETSC_TRUE PETSC_FALSE our mistake.
>    Also it does NOT default to shift for positive definite, though the 
> manual page says it does. It defaults to shift for nonzero pivot,
> but this won't affect you because it would generate an error with the 
> old version.
>    Barry
> On Jan 30, 2009, at 8:37 PM, Randall Mackie wrote:
>> Okay, but can you tell me why when I tried to turn off the positive 
>> definite shift
>> by adding:
>> -pc_factor_shift_positive_definite PETSC_FALSE
>> so that I'm consistent with the previous version of Petsc, I got the 
>> following
>> error:
>> Invalid Argument!
>> Unknown logical value: PETSC_FALSE!
>> Thanks, Randy
>> Barry Smith wrote:
>>>  Run the old code with -ksp_view_binary this will create a file 
>>> called binaryoutput; you can then
>>> run src/ksp/ksp/examples/tutorials/ex10.c using that input file. Use 
>>> the ex10 from the old version
>>> of PETSc and then the ex10 from the new version. Do they have they 
>>> same convergence?
>>> Now run the new code (that is build your code with petsc-3.0.) with 
>>> -ksp_view_binary and run that
>>> binaryoutput file with the old and new ex10 to see what happens.
>>>   Basically there are two possible changes with the change in the 
>>> version:
>>> 1) the matrix/right hand side has changed or
>>> 2) the solver has changed to behave differently.
>>>   By running the four cases you can start to get a handle on what has 
>>> actually changed, this will
>>> lead you to what needs to be investigated next.
>>>   Barry
>>> On Jan 30, 2009, at 8:01 PM, Randall Mackie wrote:
>>>> I just downloaded and compiled Petsc 3.0.0-p2, and after making some 
>>>> changes
>>>> in my code to specify the correct location of the include files, 
>>>> finally
>>>> got everything to compile okay.
>>>> Now, I'm trying to run my test problem, and it's not converging. 
>>>> When I say
>>>> not converging, the first line (with ksp_monitor_true_residual) 
>>>> shows that
>>>> the true and preconditioned residuals are the same as before, but 
>>>> immediately
>>>> thereafter, the preconditioned residual fails to go below 1e-8 
>>>> whereas before
>>>> it quickly went down to 1e-15.
>>>> The options in my command file are:
>>>> -ksp_type bcgsl
>>>> -pc_type bjacobi
>>>> -sub_pc_type ilu
>>>> -sub_pc_factor_levels 3
>>>> -sub_pc_factor_fill 6
>>>> The only thing I see in the Change notes are that the ILU defaults 
>>>> to shifting
>>>> so that it's p.d. but I don't see an easy way to turn this off by 
>>>> the command
>>>> line to see if that's the problem. I tried to do it in my program, 
>>>> but it's unclear
>>>> if I did that correctly.
>>>> Any suggestions?
>>>> Thanks, Randy

More information about the petsc-users mailing list