Problem in convergence after upgrade to petsc 3.0.0

Barry Smith bsmith at
Fri Jan 30 21:38:30 CST 2009

On Jan 30, 2009, at 9:07 PM, Randall Mackie wrote:

> 	Barry,
> 	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.
     Yes this is correct. The manual page incorrectly said that it  
used a shift to make positive definite by default.
Note that previously if it found a zero pivot it would stop with an  
error (hence I submit that this issue should not be the cause of the  
change in convergence.)


> 	Randy
> 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