Multilevel solver

Amit.Itagi at seagate.com Amit.Itagi at seagate.com
Tue Apr 22 20:45:03 CDT 2008


Hi,

I am trying to implement a multilevel method for an EM problem. The
reference is : "Comparison of hierarchical basis functions for efficient
multilevel solvers", P. Ingelstrom, V. Hill and R. Dyczij-Edlinger, IET
Sci. Meas. Technol. 2007, 1(1), pp 48-52.

Here is the summary:

The matrix equation Ax=b is solved using GMRES with a multilevel
pre-conditioner. A has a block structure.

A11    A12       *         x1  =  b1
A21    A22                  x2       b2

A11 is mxm and A33 is nxn, where m is not equal to n.

Step 1  :      Solve  A11 *  e1   = b1     (parallel LU using superLU or
MUMPS)

Step 2:        Solve   A22 * e2    =b2-A21*e1    (might either user a SOR
solver or a parallel LU)

Step 3:        Solve   A11* e1 = b1-A12*e2   (parallel LU)

This gives the approximate solution to

A11     A12     *      e1   =  b1
A21     A22             e2       b2

and is used as the pre-conditioner for the GMRES.


Which PetSc method can implement this pre-conditioner ? I tried a PCSHELL
type PC. With Hong's help, I also got the parallel LU to work
withSuperLU/MUMPS. My program runs successfully on multiple processes on a
single machine. But when I submit the program over multiple machines, I get
a crash in the PCApply routine after several GMRES iterations. I think this
has to do with using PCSHELL with GMRES (which is not a good idea). Is
there a different way to implement this ? Does this resemble the usage
pattern of one of the AMG preconditioners ?


Thanks

Rgds,
Amit




More information about the petsc-users mailing list