Replies: 2 comments 1 reply
-
|
Hi @Kuloss, First, I find it a bit strange that Second, just to make sure we are on the same page, the I hope this helps. Best, Socratis |
Beta Was this translation helpful? Give feedback.
-
|
Hi @Kuloss, Maybe I missing something, but while the HypreAMS object is a linear operator, you never want to represent it as a matrix. Such a matrix will be dense, and This is similar to an outer product matrix Hope this is helpful, |
Beta Was this translation helpful? Give feedback.




Uh oh!
There was an error while loading. Please reload this page.
-
I have been using mfem for a year now, and while I find it cool, I still consider myself to be a new user. I have a question about Experiment 25p, where I would like to use
HypreGMRESinstead ofGMRESSolver. I compared these two solvers in a real linear system at Experiment 31p, and I found thatHypreGMRES(32s, iteration 19) is faster thanGMRESSolver(40s, iteration 22) and requires fewer iterations. However, I am having difficulty dealing with preconditioning when trying to switch solvers in Experiment 25p.I have read the implementation method in
GMRESSolverin Experiment 25p, and it seems that the method forms a block diagonal preconditionerBlockDBfor the complex system using two operators obtained from user-defined preconditioning operatorams00. As written in this reference paper (https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/103394/geo2015-0013.1.pdf?sequence=2), the hidden matrix inBlockDBis similar to an inverse matrix to PA.My question concerns the role of preconditioning in
gmres.Mult(B, X). To my understanding, what really matters is the hidden matrix inBlockDBand theMultmethod itself. However, I am having difficulty retrieving/accessing this hidden matrix directly as aHypreParMatrixbutams00.printmatlab.In Experiment 25p, you defined
HypreAMS* ams00 = new HypreAMS(*PCOpAh.As(),fespace);
ams00its initial method is associated with fespace, and the size of hidden Matrix and input Matrix*PCOpAh.As<HypreParMatrix>()is limited.I would like to obtain a small
HypreParMartrixfromams00and combine the small Matrix to form a big Matrix usingHypreParMatrixFromBlocksorComplexHypreParMatrix. Ideally, I’d liketo use HypreParMatrix as precondion directly, intead of using BlockDP in GMRESSolver.I am not very familiar with the
Hypre lib., so I am wondering if there is something special that I should keep in mind when providing a preconditioner with fespace initial. Is it possible to provide a knownHypreParMatrixas a preconditioner instead?Beta Was this translation helpful? Give feedback.
All reactions