# [petsc-users] Neumann BC with non-symmetric matrix

Barry Smith bsmith at mcs.anl.gov
Fri Feb 26 20:47:27 CST 2016

```> On Feb 26, 2016, at 12:46 PM, Mohammad Mirzadeh <mirzadeh at gmail.com> wrote:
>
> Mark,
>
> On Fri, Feb 26, 2016 at 8:12 AM, Mark Adams <mfadams at lbl.gov> wrote:
>
>    4-4) Along the same lines, I tried a couple of other PCs such as {jacobi, sor, gamg, ilu} and none of them were able to converge with bcgs as the KSP. However, with gmres, almost all of them converge with the exception of gamg.
>
> Note, I'm not sure why you need the null space of A^T, you want the null space of A.
>
>
> So the idea was to provide nullspace of A^T to make sure the true residual also converges to zero by projecting the RHS onto the range of A. It however looks like that GMRES (and sometimes BiCGSTAB) converge in the least-square sense for which you only need the nullspace of A and not A^T.
>
> And for singular systems like yours you need to use a pseudo inverse of the coarse grid because it is singular -- if you represent the null space exactly.
>
> GAMG is use for AMR problems like this a lot in BISICLES.
>
> Thanks for the reference. However, a quick look at their paper suggests they are using a finite volume discretization which should be symmetric and avoid all the shenanigans I'm going through! I think it would actually be a good idea for me to swap my solver with a conservative one and see if it makes things better.
>
>
> You need to use an 'svd' coarse grid solver, or an appropriate iterative solver. LU is the default.
>
>
> I see. How can I change the GAMG coarse grid solver? Is there an analogue of "-pc_hypre_boomeramg_relax_type_coarse"?

-mg_coarse_pc_type svd   or maybe -mg_coarse_redundant_pc_type svd  or maybe -mg_coarse_pc_type redundant -mg_coarse_redundant_pc_type svd  run with -help and grep for coarse for the exact syntax.

>
> Mark
>
> Thanks,