View Full Version : Checking matrix A

01-03-2008, 08:42 AM
PDE2D has been a great tool to solve a variety of problems. Currently, I am
running into a peculiar problem. I hope you can help shed some light on it.
the problem I am working on solves correctly with ISOLVE =
1. But when I use ISOLVE = 5 (with serial MUMPS) and check the IR, IC and A
matrix. I find that certain diagonal elements are zero. Could you please
take a look and let me know if the A matrix with ISOLVE = 5 is correct?

01-03-2008, 09:09 AM
When the collocation FEM is used, the Jacobian matrix will normally have some zero diagonal elements, so that is not surprising. And the non-zero structure of the collocation matrices is nonsymmetric even when solving a symmetric PDE such as Uxx+Uyy+Uzz=0. Thus iterative methods hardly ever converge, and even sparse direct methods (except band solvers) generally perform very poorly. For this reason, it is highly recommended that, when using the collocation FEM, you use ISOLVE=4 rather than ISOLVE=5 if you want to plug in your own iterative or direct solver (note: this user is using the source code version of PDE2D, which runs efficiently on parallel machines, and allows the user to use his own linear system solver if desired). With ISOLVE=4, you will be solving the normal equations, A^TAx=A^Tb. A^TA is symmetric and positive definite, and still sparse (in fact, it has exactly the same nonzero structure as the Galerkin method would produce), so sparse direct solvers such as MUMPs should do well (note that with ISOLVE=1, the normal equations are solved rather than Ax=b, for the reasons just given). Most iterative methods are also theoretically guaranteed to converge, because the matrix is now positive definite (even for nonsymmetric PDEs!): note that with ISOLVE=3, a preconditioned conjugate gradient iterative method is used, but applied to the normal equations also. Unfortunately, the normal equations are more ill-conditioned, which slows most iterative methods.