[Dune] ILU Preconditioner fails on zero diagonal entries

Simon Praetorius Simon.Praetorius at tu-dresden.de
Thu Apr 20 10:37:54 CEST 2017


Hi Killian,

There is a SuperLU Solver implementation already available. There, the  
SuperLU driver `dgssvx()` is called in order to solver the linear  
system using sparse LU factorization. This is a combination of several  
low-level routines, i.e. factorization, triangular solve, refinement  
of the solution, ...

The actual factorization can also be replaced in SuperLU with the  
function `dgsitrf()` that does an ILU factorization.

I'm not an expert in istl, but there seems to be functionality to wrap  
a solver to get a preconditioner, i.e.  
`InverseOperator2Preconditioner`. The implementation of SuperLU-Solver  
is a bit fixed, but maybe there is a hook to replace the factorization  
method with an incomplete factorization.

Thus, I think it should be possible to wrap other SuperLU methods than  
the direct sparse LU solver, to be used in istl as preconditioner.

By the way, have you tried other preconditioners for your system, like  
SIMPLE preconditioner, or assembling the matrix in pressure space, or  
tried the krylov solvers tfqmr or bicgstab(l) that often solve the  
system without much preconditioning?

Simon


Zitat von Kilian Weishaupt <kilian.weishaupt at iws.uni-stuttgart.de>:

> 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
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
>
> _______________________________________________
> Dune mailing list
> Dune at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune



-- 
Dr. Simon Praetorius
Institut für Wissenschaftliches Rechnen
Fachrichtung Mathematik
Technische Universität Dresden
Tel.: TUD-42377
Mail: simon.praetorius at tu-dresden.de
Web: www.math.tu-dresden.de/~spraetor
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5733 bytes
Desc: S/MIME-Signatur
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20170420/4e6ee134/attachment.bin>


More information about the Dune mailing list