Seb,

of course I am willing to share my code. You can find it in the file attached. The parameter file is configured such that the GrowingVectorMemory error occurs.

Thanks. I've tried this with the current development version of deal.II and the error disappears. I'm pretty sure I know why this is so -- the solver does not converge, so it throws an exception and that led to a vector that had been allocated not being freed (because we bypass the memory_pool.free(...) call due to the exception). In the next step, the memory pool object is being destroyed and complains that a vector that had been allocated had not been freed, and that's why you get that error before anything else. (Anything else = the convergence error.)

I fixed this a while back in the development version, though. Probably here:
  https://github.com/dealii/dealii/pull/4953

So with the current version, I only get to see the error about non-convergence:

An error occurred in line <1052> of file </home/fac/f/bangerth/p/deal.II/1/install/include/deal.II/lac/solver_gmres.h> in function void dealii::SolverGMRES<VectorType>::solve(const MatrixType&, VectorType&, const VectorType&, const PreconditionerType&) [with MatrixType = dealii::SparseMatrix<double>; PreconditionerType = dealii::SparseILU<double>; VectorType = dealii::Vector<double>]
The violated condition was:
    iteration_state == SolverControl::success
Additional information:
Iterative method reported convergence failure in step 1000. The residual in the last step was 0.0018243.

[...]


I think the error is due to a convergence failure of SolverGMRES inside the method BlockSchurPreconditioner::vmult. In this method the convection-diffusion system ((0,0)-block) is solved with GMRES and ILU-preconditioning.

I investigated the behaviour of the preconditioner further. If the Reynolds number is decrease to say 100, the iterative solver for the convection-diffusion system converges. I am not an expert, but does ILU-preconditioning not work for larger Reynolds numbers? I thought ILU is robust (and expensive) but it should be a first good choice.

No -- at least not with the default settings. For high-Re cases, you need to fill more off-diagonal entries in the ILU for it to be good. There is a recent discussion on exactly this issue on the mailing list.


As a second approach, I used a direct solver (SparseDirectUMFPACK) for the convection-diffusion matrix like in step-57. In this case, the issue with GMRES and ILU do not occur. Then, the FGMRES method converges for moderate Reynolds numbers of Re=200. However, for Re=400 convergence is not achieved anymore. I guess this is due to the bad approximation of the Schur complement by the pressure mass matrix. In step-57, using the pressure mass matrix somehow also works when solving the system for higher Reynolds numbers. Is this due to the Augmented Lagrange approach?

Probably.

Best
 W.

--
------------------------------------------------------------------------
Wolfgang Bangerth          email:                 bange...@colostate.edu
                           www: http://www.math.colostate.edu/~bangerth/

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to