[petsc-users] Customizeing MatSetValuesBlocked(...)

Jed Brown jedbrown at mcs.anl.gov
Thu Aug 9 12:11:39 CDT 2012


On Thu, Aug 9, 2012 at 11:02 AM, Jinquan Zhong <jzhong at scsolutions.com>wrote:

> 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. ****
>
> This cannot be true because you say A' is the larger part sparse and part
> dense matrix. Maybe you mean A rather than A'?****
>
> ** **
>
> **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.


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

Where does A come from? Why is it dense?


> B is a sparse matrix.  Therefore, A’ is a sparse matrix when the rule K=A’=SIGMA_ij
> (A^-1_ij)+SIGMA_i’j’(B_i’j’) applies.****
>
>  ****
>
>  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’).****
>
>  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?****
>
> ** **
>
> ** 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?


> 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.
> ****
>
>      ****
>
>  ****
>
> 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. ****
>
>  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}?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120809/8e0fc61e/attachment.html>


More information about the petsc-users mailing list