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

Reply via email to