Zero Pivot Row in LU Factorization

Barry Smith bsmith at mcs.anl.gov
Thu Dec 6 11:26:29 CST 2007


On Dec 6, 2007, at 6:09 AM, Tim Stitt wrote:

> Barry,
>
> I will be using these routines from Fortran..so I am assuming that  
> Fortran interfaces are available for each routine?
>
> Also, how do I know how many sub ksp's there will be? I am assuming  
> I need to dynamically allocate the subksp array in Fortran but do I  
> know the size in advance? Is this related to the value 'n' ? If so,  
> how do I calculate 'n'.

    There will always be one sub ksp be default. There will only be  
more than one if you use
PCBJacobiSetLocalBlocks() or PCBJacobiSetTotalBlocks() or - 
pc_bjacobi_blocks.
In general we recommend keeping it one. This means you do not need to  
allocate
any KSP, just pass in a KSP variable

>
>
> What is the significance of subksp[0]? Is it just the sub ksp at  
> this position I should be interested in?

    This is just the first one. If you have multiply ones then you  
must loop over them, but I
recommend having just one.
>
>
> Finally, which of the PCFactorSetxxxxxx routines should I be using?

PCFactorSetZeroPivot() or PCFactorSetShiftNonzero() or  
PCFactorSetShiftPd() depending
on what you want to have happen.

    Barry

>
>
> Sorry for the twenty questions (well nearly) but I am just a bit  
> confused with this approach.
>
> Thanks,
>
> Tim.
>
> Barry Smith wrote:
>>
>>  KSP *subksp;
>>
>>   KSPGetPC(ksp,pc)
>>   PCBJacobiGetSubKSP(pc,&n,PETSC_NULL,&subksp)
>>   KSPGetPC(subksp[0],&subpc);
>>   PCFactorSetxxxxxx(subpc, ....
>>
>>  Barry
>>
>>
>> On Nov 25, 2007, at 1:10 PM, Tim Stitt wrote:
>>
>>> I should also add that the code executes without this error when  
>>> using 1 processor...but then displays the error when running in  
>>> parallel with more than one process.
>>>
>>> Tim Stitt wrote:
>>>> Hi all,
>>>>
>>>> Can anyone suggest ways of overcoming the following pivot error I  
>>>> keep receiving in my PETSc code during a KSPSolve().
>>>>
>>>> [1]PETSC ERROR: Detected zero pivot in LU factorization
>>>> see http://www.mcs.anl.gov/petsc/petsc-as/documentation/troubleshooting.html#ZeroPivot 
>>>> !
>>>> [1]PETSC ERROR: Zero pivot row 1801 value 0.00102826 tolerance  
>>>> 0.00165189 * rowsum 1.65189e+09!
>>>>
>>>> From checking the documentation....the error is in row 1801,  
>>>> which means it is most likely not a matrix assembly issue?
>>>>
>>>> I tried the following prior to the solve with no luck either.....
>>>>
>>>> call KSPGetPC(ksp,pc,error)
>>>> call PCFactorSetShiftNonzero(pc,PETSC_DECIDE,error)
>>>>
>>>> Is there anything else I can try?
>>>>
>>>> Thanks,
>>>>
>>>> Tim.
>>>>
>>>
>>>
>>> --Dr. Timothy Stitt <timothy_dot_stitt_at_ichec.ie>
>>> HPC Application Consultant - ICHEC (www.ichec.ie)
>>>
>>> Dublin Institute for Advanced Studies
>>> 5 Merrion Square - Dublin 2 - Ireland
>>>
>>> +353-1-6621333 (tel) / +353-1-6621477 (fax)
>>>
>>
>
>
> -- 
> Dr. Timothy Stitt <timothy_dot_stitt_at_ichec.ie>
> HPC Application Consultant - ICHEC (www.ichec.ie)
>
> Dublin Institute for Advanced Studies
> 5 Merrion Square - Dublin 2 - Ireland
>
> +353-1-6621333 (tel) / +353-1-6621477 (fax)
>




More information about the petsc-users mailing list