?         A?x=b, where A?=[A^-1 U B]=
What does the notation above mean?

?  That means A? consists A^-1 and B.  A? is a sparse matrix at the order of 2 
million.  B = sparse matrix at the order of 2 million to be mixed and mingled 
with A^-1.

"mingled" is not a very useful term. How about using an actual equation so we 
can have some clue what you mean.

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

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


If you have an "inverse" floating around, what sort of operator is it the 
inverse of.

?  A is a double complex matrix we have generated from a practical application 
using FEM.
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.

o   Another constraint we have is we have to use direct solver for QA purposes. 
 This brings up the needs to convert the dense matrix into MATAIJ or MATMPIAIJ. 
 However, in PETSc, converting dense matrix-formatted A^-1 into MATAIJ/ 
MATMPIAIJ also takes lots of time.

Here is what I am looking at after all these discussion:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

?         Some function similar to 
MatCreateMPIAIJWithArrays<http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatCreateMPIAIJWithArrays.html>(..,A^-1)
 with the additional capability to specify the location of upper-left corner of 
distributed A^-1 in A?, the global matrix.

?         The reason is that in CSR format defaulted in PETSc, the entire row 
has to be input in one rank. In this application, we have partitioned this row 
into different pieces due to the operation on ScaLAPACK. Due to large amount of 
data, there is no practical way that we can gather the entire portioned rows of 
A^-1 into on rank.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120809/5abf9adb/attachment-0001.html>

Reply via email to