[Dune] ILU Preconditioner fails on zero diagonal entries
Kilian Weishaupt
kilian.weishaupt at iws.uni-stuttgart.de
Thu Apr 20 10:00:16 CEST 2017
Dear Dune,
I have implemented a fully implicit incompressible Stokes solver in
Dumux, yielding a global matrix with some zero entries on its
diagonal. Currently, I use SuperLU or UMFPACK to solve it, which gets of
course very slow for larger systems.
Apparently, many people use an ILU-preconditioned GMRES solver for this
kind of application. However, the dune ILU preconditioner
runs into problems, since it divides by zero (the diagonal entries) at
some points.
I have then tried to store my matrix in a file and solve it using
python's ILU-preconditioned GMRES which works rather well.
Their ILU implementation seems to rely on SuperLU (
https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.sparse.linalg.spilu.html
)
Furthermore, there is a paper addressing the issue of zero pivots (
http://crd-legacy.lbl.gov/~xiaoye/slu_ilu.pdf , "3.4 Handling breakdown
due to zero pivots" ). I have tried to implement their solution strategy
in ilu.hh. However, I am no expert on that and this only seems to work
for small systems in my case.
My question is now if anybody has experienced similar problems and if
there maybe is a plan to address this issue by either modifying
the dune ILU implementation or adding the possibility to use SuperLU for
that purpose.
Best regards
Kilian
--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Kilian Weishaupt M.Sc.
Institut für Wasser- und Umweltsystemmodellierung (IWS)
Lehrstuhl für Hydromechanik und Hydrosystemmodellierung
Universität Stuttgart, Pfaffenwaldring 61, 70569 Stuttgart
Email: kilian.weishaupt at iws.uni-stuttgart.de
Telefon: 0049 711 685-60461 ** fax: 0049-711-685-60430
http://www.hydrosys.uni-stuttgart.de
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
More information about the Dune
mailing list