Hope this is not too technical. ?

**Jed, A?=[A^-1 U B], not the transpose of A.

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.

>> 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

           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

i.e., entry K_st= A^-1_st+ B_st,
 = 0 when A^-1_st=0 and B_st=0
=  A^-1_st when B_st =0
=  B_st when A^-1_st =0

  We need to solve for A?*x=b. A is dense matrix.

Where does A come from? Why is it dense?


>> A comes from wave propagation.  It is dense since it denotes a function of 
>> Green function.


** 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,

Is A^{-1} an operator on some subdomain? Are you trying to implement a 
substructuring algorithm? What is B physically?

>> NO.  A^{-1} denotes the inverted A.  B is a sparse matrix of much larger 
>> order.

Then there is no way A^{-1} should be stored as a dense matrix.

o   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.
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.

 ** 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.

What does QA stand for? Can you explain why B needs the entries of A^{-1}?

>> QA means quality assurance.  It is a procedure to ensure product quality.  
>> In Eq.

K=A?=ASSEMBLE_ij (A^-1_ij)+ ASSEMBLE_i?j?(B_i?j?)

Entry B_i?j? and A^-1_ij may or may not locate at the same row and col.  That 
why we need explicitly each entry in B_i?j? and 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?).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120809/7ed746d3/attachment-0001.html>

Reply via email to