[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