[petsc-users] problem with initial value

Barry Smith bsmith at mcs.anl.gov
Fri Oct 21 12:57:55 CDT 2011


On Oct 21, 2011, at 11:57 AM, Dominik Szczerba wrote:

> On Fri, Oct 21, 2011 at 6:29 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>> 
>> On Oct 21, 2011, at 9:29 AM, Dominik Szczerba wrote:
>> 
>>> I am doing a transient computation, solving one linear problem per timestep, so naturally I want to exploit 'x' from the previous time step to be the initial value for the next solve (KSPSetInitialGuessNonzero).
>>> For the longest time, however, I was getting wrong results, unless I was resetting 'x' each time step (to some constant value, pure zero caused bcgs to break down).
>> 
>>   What happened if you did not set it to some constant (that is kept the old solution)? Did you get KSP_DIVERGED_BREAKDOWN?   It would be very odd that starting with a good initial guess would lead to breakdown but that cannot be completely ruled out.
>> 
> 
> There was no error, the iterations reportedly converged. Only the
> results were wrong, sort of strong random spikes.
> 
>> 
>>   I would also check with valgrind http://www.mcs.anl.gov/petsc/petsc-as/documentation/faq.html#valgrind
>> 
> 
> There are 3 issues with valgrind:
> 
> 1) Syscall param writev(vector[...]) points to uninitialised byte(s)
> -> tribbered by MatPartitioningApply, then leading deep into ParMetis
> 
> 2) Conditional jump or move depends on uninitialised value(s)     ->
> many times, in VecMin and VecMax and KSPSolve_BCGSL
> and
> 
> 3) Syscall param writev(vector[...]) points to uninitialised byte(s)
> -> just once, in VecScatterBegin triggered by VecCreateGhost on the
> 'x' vector, which is ghosted.\

   These are very bad things and should not happen at all.   They must be tracked down before anything can be trusted. Start by sending the full valgrind output from a PETSc 3.2 run to petsc-maint at mcs.anl.gov


   Barry

> 
> Do they pose any serious threats?
> 
>> 
>>    Have you tried KSPBCGSL? This is "enhanced Bi-CG-stab" algorithm that is designed to handle certain situations that may cause grief for regular Bi-CG-stab I guess.
>> 
> 
> Thanks for the hint on bcgsl - it works as expected.
> 
> So, do I have a problem in the code or bcgs is unreliable? If the
> latter: as a method or as this specific implementation?
> 
> Thanks for any comments,
> Dominik
> 
> 
>> 
>>   Barry
>> 
>> 
>> 
>>> After hours of debugging I was unable to find any errors in my coefficients, I experimentally found out, however, that changing the solver from bcgs to gmres or fgmres removes the problem: I no longer need to clear the solution vector.
>>> Now I am a bit worried, if this is still some time bomb in my code or is a known phenomenon. Thanks for any hints.
>>> 
>>> Regards, Dominik
>> 



More information about the petsc-users mailing list