[petsc-users] problem with initial value

Dominik Szczerba dominik at itis.ethz.ch
Fri Oct 21 11:57:51 CDT 2011


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.

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