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.