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.