<div class="gmail_quote">On Thu, Aug 9, 2012 at 11:02 AM, Jinquan Zhong <span dir="ltr"><<a href="mailto:jzhong@scsolutions.com" target="_blank">jzhong@scsolutions.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><div><div><p><span style="font-size:11.0pt;font-family:"Courier New";color:#1f497d">o</span><span style="font-size:7.0pt;color:#1f497d">
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I agree. It is hard to have an accurate equation to for the structure of A’. But if you are familiar with FEM, you may know global stiffness matrix K=SIGMA_ij( K_ij ),
the assembling process of elemental stiffness. Here A’=K. </span><u></u><u></u></p>
</div>
</div>
</div><div><div class="im">
<p class="MsoNormal">This cannot be true because you say A' is the larger part sparse and part dense matrix. Maybe you mean A rather than A'?<u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
</div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">**Jed, A’=[A^-1 U B], not the transpose of A.</span></p></div></blockquote><div><br></div><div>
I understand that it's not the transpose. I still don't have a clue what the notation [A^{-1} U B] means. I would think it means some block decomposed thing, but I don't think you mean just adding columns or taking a product of matrices. Using some standard mathematical notation would help.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> We need to solve for A’*x=b. A is dense matrix.</span></p>
</div></blockquote><div><br></div><div>Where does A come from? Why is it dense?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><p class="MsoNormal">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> B is a sparse matrix. Therefore, A’ is a sparse matrix when
the rule </span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">K=A’=SIGMA_ij (A^-1_ij)+SIGMA_i’j’(B_i’j’)
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">applies.<u></u><u></u></span></p>
</div><div class="im">
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p><span style="font-size:11.0pt;font-family:"Courier New";color:#1f497d">o</span><span style="font-size:7.0pt;color:#1f497d">
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">We partition the FEM domain into two physical pieces due to different operations they are defined for. After completing each operation, we need to operate on A^-1_ij and
B_i’j’ such that we can have K=A’=SIGMA_ij (A^-1_ij)+SIGMA_i’j’(B_i’j’).</span><u></u><u></u></p>
</div>
</div>
</blockquote>
</div><div><div class="im">
<p class="MsoNormal">The sum of the inverses are not the inverses of the sum. Can you back up further to explain what underlying problem you are trying to solve?<u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
</div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">** As I mentioned A’=K is the assembled global matrix using the rule
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">K=A’=SIGMA_ij (A^-1_ij)+SIGMA_i’j’(B_i’j’)
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">from FEM. Here,
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">SIGMA_ij (A^-1_ij) denotes the assembling process for A^-1_ij into K according the DOFs of each node in the FEM model,</span></p>
</div></blockquote><div><br></div><div>Is A^{-1} an operator on some subdomain? Are you trying to implement a substructuring algorithm? What is B physically?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> so does SIGMA_i’j’(B_i’j’). in this application,
A^-1 and B have different indices sets. Some of them may locate at the same locations in K.</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p>
</div><div class="im">
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal">If you have an "inverse" floating around, what sort of operator is it the inverse of.<u></u><u></u></p>
<p><span style="font-size:11.0pt;font-family:Wingdings;color:#1f497d">ü</span><span style="font-size:7.0pt;color:#1f497d">
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">A is a double complex matrix we have generated from a practical application using FEM. </span><u></u><u></u></p>
</div>
</div>
</blockquote>
</div>
</div>
<div>
<p class="MsoNormal">Then there is no way A^{-1} should be stored as a dense matrix.
<u></u><u></u></p>
</div>
<p><span style="font-size:11.0pt;font-family:"Courier New";color:#1f497d">o</span><span style="font-size:7.0pt;color:#1f497d">
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">It is stored as a dense matrix in scalapack. It stays in the same way in cores as scalapack finishes its inversion. We could define A^-1 as dense matrix in PETSc. </span><u></u><u></u></p>
</blockquote>
<div>
<p class="MsoNormal">It should not be done this way. A^{-1} should not be stored explicitly. Store the sparse finite element matrix A. Then when you want to "apply A^{-1}", solve with the sparse matrix.<u></u><u></u></p>
</div>
</div><div>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"> <span style="color:#1f497d">** Jed, you are getting close to understand the problem related to QA. A has to be inverted explicitly. A^-1 has to be known entry by entry such that each entry in B could be assembled with A^-1 to form A’=K.
This is a requirement beyond technical issue. This is a QA issue.</span></p></div></blockquote><div><br></div><div>What does QA stand for? Can you explain why B needs the entries of A^{-1}?</div></div>