[petsc-users] KSP convergence problem

Mark F. Adams mark.adams at columbia.edu
Wed Mar 20 16:37:18 CDT 2013


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>


More information about the petsc-users mailing list