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