Kyle:

Additionally, due to that structure, where most of the matrix does not change, I could probably solve much more efficiently too. Currently I am using UMFPACK. Figuring out and implementing a nice preconditioner is another project for another time. However, what I'm hoping is possible is some sort of scheme like:

1) Solve the system directly once, store the LU decomposition and how long it took to solve. 2) Switch to GMRES (nonsymmetric problem) and precondition the next solve with the precomputed LU decomposition. Time the computation. 3) If that solve took less time that the direct one took, do go back to stop 2 for the next solve. If it took longer go to step 1.

Yes, that scheme makes sense. The SparseDirectUMFPACK::factorize() and SparseDirectUMFPACK::solve() functions make that possible where you would call the solve() function that only takes vector(s) as argument.


I understand every part of this except for how to store and reuse the LU. From what (little) I understand, UMFPACK does literally store the entire LU. How can I get access to it directly.

You don't. UMFPACK stores it internally, and solve() uses it.


If I can't for whatever reason, I was thinking about using a similar setup with an ILU decomposition. However, I have the same problem there and am back to hoping that someone can tell me how to get access to such a thing. Note that I would like to avoid making a copy of the whole system matrix--as I notice many of the preconditioner types are pass by reference, I can't change it and then use the old values.

The situation is actually the same with ILUs: There are separate functions that *compute* a factorization and that *use* a factorization.

Best
 W.


--
------------------------------------------------------------------------
Wolfgang Bangerth          email:                 [email protected]
                           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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/8a1d61ae-ade5-ca6b-3b33-69ba19611b69%40colostate.edu.

Reply via email to