[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