On 4/19/24 19:42, Tao Jin wrote:

Thank you so much for your reply. I think my problem has two potential issues:
1. W * M * W^T will be an n by n fully dense matrix with n > 100k. Even if it is valid to use LinearOperator to perform W * M * W^T, will memory required to store this operator be an issue? 2. I still have to solve B x= (B_0 + W * M * W^T) x = p. Whether linear solvers such as CG will be efficient enough is also an issue since W * M * W^T is fully dense.

Tao,
like I mentioned, a line like
  S = linear_operator(W) * linear_operator(M) * transpose_operator(W)
does not actually compute the product of these matrices. The documentation of step-20 and step-22 goes to great length in explaining this issue. All the object S provides is the ability to multiple S by a vector, for which you only need matrix-vector products because
  S x
  = (W M W^T) x
  = W (M (W^T x))

The product of matrices is never computed because it is never needed.

Best
 W.

--
------------------------------------------------------------------------
Wolfgang Bangerth          email:                 bange...@colostate.edu
                           www: http://www.math.colostate.edu/~bangerth/


--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/b47e2014-cf96-46b7-ac48-b6cc6126b987%40colostate.edu.

Reply via email to