Whoops, sorry I missed this.

It looks like you have a largish \omega\mu\sigma because, as Jed mentioned, one 
would not expect GAMG to work well for the curl-curl part.

A few things to try:

1) '-pc_gamg_type sa' will provide what should be a better solver for SPD 
problems.

2) Try:

-pc_type hypre    ! instead of -pc_type gamg
-pc_hypre_type boomeramg 
-pc_hypre_boomeramg_strong_threshold 0.6

3) You say 'staggard' but I just see E here.  Do you have E on faces?  I forget 
how staggering works here.  If E is cell centered then you have a system of 3x3 
blocks (with the right ordering) and GAMG might benefit from setting the block 
size to tell it this:

MatSetBlockSize(mat,3); 

And Jed's answer addresses your 2nd question about null-space.  These solvers 
will degrade as \omega\mu\sigma gets smaller.

Mark

On Jan 19, 2012, at 5:37 PM, Jed Brown wrote:

> On Wed, Jan 18, 2012 at 08:22, Alexander Grayver <agrayver at gfz-potsdam.de> 
> wrote:
> Hello petsc team,
> 
> I solve 3D vector Helmholtz equation like following:
> 
> \nabla \times \nabla \times E + i\omega\mu\sigma E  = -J
> 
> Multigrid methods for curl-curl problems are pretty specialized. ML and Hypre 
> have support for specific discretizations, I don't know if they support an 
> imaginary shift. The PETSc interface to these packages does not currently 
> support their special Maxwell interfaces.
> 
> The methods are generally based on edge relaxation or auxiliary space 
> preconditioning, see Hiptmair or Arnold, Falk, and Winther for the 
> mathematical background.
>  
> 
> I use structured staggered grid and FD. The solution is a vector that 
> consists of three parts E = {Ex Ey Ez}. The operator is symmetric matrix with 
> complex numbers on diagonal.
> I'm interested in solving this system with iterative techniques. I applied 
> newly presented gamg and it gives promising results, but all I did is just:
> -ksp_type tfqmr -pc_type gamg
> 
> I played with different ksp_type and gamg options which are listed on PCGAMG 
> doc page, but nothing improved convergence.
> Could you please guide me a bit through usage of this technique?
> The precise questions are:
> 1. Do I have to do something to say petsc that my equation is a vector 
> equation? Is it important for gamg pc?
> 2. Should I take into account null-space using KSPSetNullSpace? Since it is 
> well known that as \omega or \sigma get small, null-space of geometric term 
> (curl curl operator) starts to dominate and system gets more ill-conditioned.
> 3. Which options for gamg may improve convergence in my case?
> 
> 
> Thanks a lot in advance.
> 
> -- 
> Regards,
> Alexander
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120119/97ed4ea5/attachment.html>

Reply via email to