Hi, I am working on a problem that requires solution of a complex system of equations about a real steady-state solution. The variables remain the same in these cases, just that they are assumed real in latter, and complex in the former. The complex Newton update
(J_R + i J_I) (x_R + i x_I) + (r_R + i r_I) = 0 is then defined as [ J_R -J_I] {x_R} + {r_R} = {0} [ J_I J_R] {x_I} + {r_I} = {0} In the past I have done this with two systems: one with N variables for the real solution, and another with 2N variables (one for real part, one for imaginary part) for the complex solution. This way, libMesh handles all the sparsity/dofs for the complex problem. This has worked well for the most part. Presently, I am evaluating a few different options, primarily with the intent to use only one system with N variables. — I tried to implement a block-Jacobi method on the real-system (with N variables). This shows poor performance for high frequency values where the Jacobian is no longer diagonally dominant. Maybe there are ways to improve the convergence in such a situation. In any case, this allows me to use a single system. — I am considering adding code to create another matrix of twice the size and feed it to the LinearSolver class for solution. This will also require writing code around this for the Newton updates. The advantage is that the linear solver will see a single matrix. — I noticed that there is a way to initialize the SparseMatrix using a block structure. Perhaps it would make sense to define a block size of 2 (for a real and imaginary parts of each dof) and use this matrix initialization procedure. I need to also dig a bit into Petsc’s manuals to understand this better. — Similarly, I could create the matrix and give it to the NonlinearSolver. Are there other strategies someone on this list could suggest? What caveats do you see in pursuing one of the last three directions? I would greatly appreciate some guidance on this. Thanks, Manav ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 _______________________________________________ Libmesh-users mailing list Libmesh-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-users