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
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users