Choosing the appropriate parameters for TrilinosWrappers::PreconditionILU for GLS stabilized Navier-Stokes

24 views
Skip to first unread message

Bruno Blais

unread,
Feb 12, 2019, 8:01:12 AM2/12/19
to deal.II User Group
Hello everyone,
I am currently solving a stabilized version of the Navier-Stokes equation using dealii and everything is working well when I use a direct solver.
I would like (obviously?) to extend it to use a FGMRES iterative solver to be able to tackle very large systems. I have ported those aspects to use Trilinos.

The weak form  is (for now we can neglect the temperature related term) :


Concretely, the additional term due to the stabilization affect the velocity block in a SUPG manner and the pressure block by adding an element-dependent stiffness matrix.
I have read that ILU and ILUT type of preconditioners are the best-suited  for this type of systems, but I find myself unable to orient my choice of parameters.
When we look at the constructor for the AdditionalData of ILU and ILUT preconditioner there are the following parameters:
ILU :
      AdditionalData(const unsigned int ilu_fill = 0,
                     const double       ilu_atol = 0.,
                     const double       ilu_rtol = 1.,
                     const unsigned int overlap  = 0);
ILUT:
      AdditionalData(const double       ilut_drop = 0.,
                     const unsigned int ilut_fill = 0,
                     const double       ilut_atol = 0.,
                     const double       ilut_rtol = 1.,
                     const unsigned int overlap   = 0);

The documentation suggest an atol between 1e-2 and 1e-5 and a rtol of the order of 1.01. However, what should my ilu_fill and ilut_drop be? I understand that increasing the fill will increase the memory consumption and that I should try to reach a compromise, but right now I find that it's mostly the speed of my iterative solve that is the problem. Are there any guidelines to orient my choice of parameters? Am I going with the right type of pre-conditioner or am I in the wrong here?
Thank you very much for your help.

Wolfgang Bangerth

unread,
Feb 12, 2019, 12:07:18 PM2/12/19
to dea...@googlegroups.com
On 2/12/19 6:01 AM, Bruno Blais wrote:
>
> The documentation suggest an atol between 1e-2 and 1e-5 and a rtol of
> the order of 1.01. However, what should my ilu_fill and ilut_drop be? I
> understand that increasing the fill will increase the memory consumption
> and that I should try to reach a compromise, but right now I find that
> it's mostly the speed of my iterative solve that is the problem. Are
> there any guidelines to orient my choice of parameters? Am I going with
> the right type of pre-conditioner or am I in the wrong here?

Others may have more experience with concrete values, but yours is a
problem that is amendable to just trying things out: run the program for
ten values for each of these parameters and plot the run-time for each
run. That will give you an idea for how the behavior of the program
depends on these values.

Best
W.

--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@colostate.edu
www: http://www.math.colostate.edu/~bangerth/
Reply all
Reply to author
Forward
0 new messages