Hi Lucas and Wolfgang I have something to say on this issue because I think it might be helpful to Lucas or other users. I know large memory usage is unavoidable in direct solvers. But I guess Lucas' issue with MUMPS was that he did not know how to reuse the factorization like one always does with SparseDirectUMFPACK. MUMPS does not have similar initialize and vmult functions as UMFPACK, and its documentation is not clear on how to reuse the memory.
Upon checking this discussion <https://groups.google.com/forum/?fromgroups#!topic/dealii/Sw0wHKEFuiA> I realize the MUMPS solver does have the ability to reuse the factorization, it's just that the APIs of this class is not consistent with UMFPACK or TrilinosWrappers::SolverDirect: there is actually a github <https://github.com/dealii/dealii/issues/2869> issue for it. In my case, I managed to reuse the factorization with a workaround: I construct the MUMPS solver in the constructor of my upper-level class. Then call MUMPS::solve in another member function of this class. Therefore, as long as I do not reset the upper-level object, the memory reallocation does not happen. With this workaround, the time consumption of MUMPS in a specific problem drops from 49s to 7s (one processor), comparing with UMFPACK (9s), is quite satisfactory. Thanks Jie -- 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]. For more options, visit https://groups.google.com/d/optout.
