<span style="color:rgb(31,73,125);font-family:Calibri,sans-serif;font-size:15px;background-color:rgb(255,255,255)">"QA means quality assurance.", which has nothing to do with the technical </span><div><font color="#1f497d" face="Calibri, sans-serif"><span style="font-size:15px">discussions here. </span></font></div>
<div><font color="#1f497d" face="Calibri, sans-serif"><span style="font-size:15px"><br></span></font></div><div><font color="#1f497d" face="Calibri, sans-serif"><span style="font-size:15px">However, I take this opportunity to promote</span></font></div>
<div><a href="http://aspiritech.org">http://aspiritech.org</a>,</div><div>an <span style="color:rgb(77,77,77);font-family:Verdana,Arial,Helvetica,sans-serif;line-height:19px;background-color:rgb(255,255,255)">non-profit organization with a mission to provide employment</span></div>
<div><span style="color:rgb(77,77,77);font-family:Verdana,Arial,Helvetica,sans-serif;line-height:19px;background-color:rgb(255,255,255)">on <b>QA</b> </span><span style="background-color:rgb(255,255,255);color:rgb(77,77,77);font-family:Verdana,Arial,Helvetica,sans-serif;line-height:19px">for high functioning individuals on the Autism Spectrum.</span></div>
<div><span style="background-color:rgb(255,255,255);color:rgb(77,77,77);font-family:Verdana,Arial,Helvetica,sans-serif;line-height:19px"><br></span></div><div><font color="#4d4d4d" face="Verdana, Arial, Helvetica, sans-serif"><span style="line-height:19px">Hong</span></font></div>
<div><br><div class="gmail_quote">On Thu, Aug 9, 2012 at 12:28 PM, 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 lang="EN-US" link="blue" vlink="purple">
<div>
<div>
<div>
<div>
<div>
<p>Hope this is not too technical. <span style="font-family:Wingdings">J</span><u></u><u></u></p>
<p><u></u> <u></u></p>
</div>
</div>
</div><div class="im">
<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><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">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.<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="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">>>
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">A’=[A^-1 U B] means matrix A’ consists all elements from A^-1, the inverted A, and all elements from B.  One simple equation is
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal" style="text-indent:11.55pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">           K=[Kst] =A’ = ASSEMBLE_ij (A^-1_ij) + ASSEMBLE_i’j’(B_i’j’),  here (s,t), (i,j) and (i’,j’) = different index sets<u></u><u></u></span></p>

<p class="MsoNormal" style="text-indent:11.55pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal" style="text-indent:11.55pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">i.e., entry K_st= A^-1_st+ B_st,
<u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-indent:.5in"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> = 0 when A^-1_st=0 and B_st=0</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p>

<p class="MsoNormal" style="margin-left:.5in;text-indent:.5in"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">=  A^-1_st when B_st =0</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p>

<p class="MsoNormal" style="margin-left:.5in;text-indent:.5in"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">=  B_st when A^-1_st =0</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p>

<p class="MsoNormal"><span style="color:#1f497d">                                                                                                                                                                                   
</span><u></u><u></u></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>
<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><u></u><u></u></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div><div><div class="im">
<p class="MsoNormal">Where does A come from? Why is it dense?<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 style="margin-left:0in"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">>> A comes from wave propagation.  It is dense since it denotes a function of Green function.<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 class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></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 K=A’=SIGMA_ij (A^-1_ij)+SIGMA_i’j’(B_i’j’)
 from FEM.  Here, 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><u></u><u></u></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div><div><div class="im">
<p class="MsoNormal">Is A^{-1} an operator on some subdomain? Are you trying to implement a substructuring algorithm? What is B physically?<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">>> NO. 
</span>A^{-1} denotes the inverted A.  B is a sparse matrix of much larger order.<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><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>
<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>
<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"><u></u> <u></u></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><u></u><u></u></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div><div><div class="im">
<p class="MsoNormal">What does QA stand for? Can you explain why B needs the entries of A^{-1}?<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">>> QA means quality assurance.  It is a procedure to ensure product quality.  In Eq.
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal" style="text-indent:.5in"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">K=A’=ASSEMBLE_ij (A^-1_ij)+ ASSEMBLE_i’j’(B_i’j’)<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">               
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-indent:.5in"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Entry B_i’j’ and
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">A^-1_ij may or may not locate at the same row and col.  That why we need explicitly each entry in
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">B_i’j’ and
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">A^-1_ij to assemble K.  The big picture is that K is the final sparse matrix we need to solve K*x=A’*x=b.  However, K indexed by (s,t) needs to be constructed in terms of
 dense matrix A and sparse matrix B using index sets (i,j) and (i’,j’).  </span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p>
</div>
</div>
</div>
</div>

</blockquote></div><br></div>