[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