On Mar 20, 2013, at 4:13 PM, Mehrdad H Farahani <mh.farahani at gmail.com> 
wrote:

> I am solving a Poisson equation with Neumann boundary conditions applied 
> along an arbitrary curve using a ghost fluid treatment. The matrix is 
> non-symmetric and the null space contains more than the constant vector. I 
> have implemented a solve for the null space itself and have previously 
> supplied it using MatSetNullSpace. Unfortunately the null space solve is 
> extremely expensive and does not play well with GAMG or ML. We've checked 
> that the answers we get without supplying this null space are very close to 
> the answers

If you set the null space in GAMG and (I'm sure) ML you need to give us he 
_whole_ null space.  For 3D elasticity GAMG will take coordinates and -- just 
for user convenience and to annoy Jed -- we create the 6 rigid body modes.  How 
many null space vectors are you giving us?

> we get when we do include it. The matrix for the two solves in the previous 
> attachment are identical. The problem also seems to be converging and then 
> suddenly diverges. Is this common behavior for a singular preconditioner?
> 
> Thanks,
> 
> 
> 
> From: Jed Brown <jedbrown at mcs.anl.gov>
> Date: Wed, Mar 20, 2013 at 2:03 PM
> Subject: Re: [petsc-users] KSP convergence problem
> To: PETSc users list <petsc-users at mcs.anl.gov>
> 
> 
> On Wed, Mar 20, 2013 at 2:00 PM, Mark F. Adams <mark.adams at columbia.edu> 
> wrote:
> 
> On Mar 20, 2013, at 2:12 PM, Mehrdad H Farahani <mh.farahani at gmail.com> 
> wrote:
> 
> > I'm experience a weird convergence problem with bcgsl with both ILU and 
> > GAMG preconditioning. The problem converges normally (at least in the 
> > preconditioned norm), but then kicks out with converged reason = -4. I've 
> > attached the convergence history of the previous time-step which worked and 
> > the timestep which shows problems. Could someone give me an idea on how to 
> > proceed?
> >
> 
> Did you run with -ksp_converged_reason ?
> 
> I don't know were this -4 comes from.  Could this be from your code?
> 
> Some people call KSPGetConvergedReason(), but then don't compare to the enums 
> and don't convert to a string using KSPConvergedReasons[reason].
> 
> http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/KSP/KSP_DIVERGED_DTOL.html
> 
> The problem is likely that your preconditioner is singular. What sort of 
> problem are you solving?
> 
> 
> 
> 
> -- 
> Mehrdad 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130320/903d8738/attachment.html>

Reply via email to