MLMG solver issues at high density ratio
Closed this issue · 7 comments
Hi,
I frequently run into MLMG errors when working with high density ratios (~816:1) in IAMR.
The error message I get is
amrex::Abort::0::MLMG failed !!!
The preceding line above the error message is:
... Projection::level_project() at level 0
If I increase the tolerances, e.g. proj_tol etc, the error just occurs at later time steps.
Are there any recommendations you can make for this? Thanks
Thanks for your prompt reply.
I have tried this, but there is no difference - however, when I run it to a smaller final time (before crashing), when AMReX finalises it says that the two variables nodal_proj.num_pre_smooth and nodal_proj.num_post_smooth were unused PP variables:
Deleting projector
Run time = 359.1000167
Unused ParmParse Variables:
[TOP]::nodal_proj.num_pre_smooth(nvals = 1) :: [10]
[TOP]::nodal_proj.num_post_smooth(nvals = 1) :: [10]
So I could be missing (or misspelling) something and not actually changing anything? Perhaps I am using an old version and there's a different name? I'm working in the Exec/run2d folder (not working with EB or 3D for this test case).
I'm using the master branch, I'm not sure how to get the commit info since I cloned the master branch as a downloaded zip from the main page. The release notes say:
04/01/20
**This is a major update since many branches were merged into development during
the month of March
Introducing complex geometries via EB.
No longer supporting constant mu or RZ options.
Update and add regression tests.
Many updates to be compatible with changes to amrex
Various bugfixes for host and GPU calculations
Various changes to problem setups
Not sure if this helps or not (apologies I can't find the commit).
Do you think I should just clone the latest master branch?
Ah okay, I wasn't aware of that, apologies.
Now that I am working from the development branch, I can say that your suggestion of increasing the number of relaxations has helped, thank you. However there are varying degrees of success depending on the test case, e.g. when there are severe topological changes it still has an issue.
With this in mind, are there any other things I could try? My cells are roughly square and I'm working at a CFL of 0.1. Is it okay to just keep increasing nodal_proj.num_pre_smooth and nodal_proj.num_post_smooth, if the slow down in run time is acceptable? What are the effects of just increasing the projection tolerance, is there a notable drop in the accuracy of the solution?