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
