Problem in convergence after upgrade to petsc 3.0.0

Barry Smith bsmith at
Fri Jan 30 20:58:36 CST 2009

    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.


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