MLMG solver failed to converge #4269
Unanswered
solarmaterial
asked this question in
Q&A
Replies: 1 comment 17 replies
-
MLMG is a geometric multigrid method. It's most effective when (1) the cell size is uniform, (2) the domain is a cube, and (3) the number of cells in each direction is power of 2. What is the cell size in your problem? If you can, could you try to adjust your problem settings toward the three conditions above. When you use hypre, did you set max_coarsening_level? If not, you should try to set LPInfo's max coarsening level to 0 when using hypre so that the entire problem is solved by hypre. You could also try GMRES. See amrex/Tests/LinearSolvers/ABecLaplacian_C/ for an example. |
Beta Was this translation helpful? Give feedback.
17 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi amrex team,
I am using the MLMG linear solver (MLABecLaplacian) to solve a discretized heat conduction equation in a 2D domain in single level (uniform grid) with 2400 grids in the x-direction and 200 grids in the y-direction. An external heat source
q
is applied along the x-direction (q=q(x,t
). When the magnitude of the heat source is relatively small, the solver performs well and converges quickly. However, when I increase the magnitude of the heat source by two orders of magnitude, the solver fails to achieve the required precision even after thousands of iterations.I have tried several approaches to address this issue, including reducing the precision requirements, increasing the maximum number of iterations, and switching solvers (e.g., BiCGSTAB, smoother, and Hypre with preconditioners). Unfortunately, as the simulation progresses in time, the solver eventually fails because it cannot meet the required precision.
Interestingly, when I reduce the number of grids in the y-direction to 5 or 50 (while keeping the x-direction resolution unchanged), the solver is able to proceed, albeit requiring multiple iterations to converge. However, when the number of grids in the y-direction increases to 100 or 200, the solver fails.
Could you please provide suggestions or insights on how to address this issue? I greatly appreciate your help and look forward to your reply.
Yours sincerely,
solar
PS:The result is shown in the figure below.
Beta Was this translation helpful? Give feedback.
All reactions