@THegde asked me to look into setting up a simple cylindrical fluidized bed with PIC and I’m running into the same MLMG failure he got. Details: experiment of Laverman et al. Pow Tech (2012), doi: 10.1016/j.powtec.2012.03.011. Basics: 30 cm diameter, 45 cm static bed height, glass beads w/ dp ~ 500 micron, rhop = 2500 kg/m^3. dx = 5 mm, particles at pack = 64, max pack = 0.64, P0 = 30, beta = 3, solids initialized in 0.9 m region at half max pack. inputs here:
inputs.txt (9.4 KB)
MLMG error occurs within 100 steps.
note 1: when I coarsen the grid by a factor of 2 by setting amr.n_cell = 32 128 32
(dx = 1 cm), it seems to run fine, terminated after ~13s, animation below.
note 2: I set nodal_proj.mg_max_coarsening_level = 0
and let it run out for 3s to get over my initial inlet ramp and reach somewhat of a fully developed bubbling state (slice like movie above looked qualitatively reasonable). then I reset nodal proj coarsening levels and restarted. still died quickly.
note 3: tried restarting w/ hypre
bottom solves (hypre settings shown in inputs). still died abruptly.
note 4: tried increasing small vol frac, I think up to 0.1 and that didn’t help.
This seems like a simple setup to require removing nodal proj MLMG coarsening. Any comments, suggestions, criticisms, etc. are welcome.
I remember a number of years ago, @YupengXu or somebody couldn’t get their reactor to run in MFiX classic and asked @jeff.dietiker to have a look at it. Jeff figured out if they moved the stl a fraction of a dx to the left or something like that it just worked. I hated that answer but I guess that’s just part of cut-cell life. @THegde if you make the cylinder fill the domain, I did this by changing the cylinder.radius
from 0.153
to 0.159999999
, it seems to “just work.” I assume this would work too if you shrink the domain to the pipe diameter. I’m only getting about 1s/hr, so it’s still pretty early, but it looks reasonable. If it’s still running in the morning, I’ll send an animation.
1 Like
it’s still running. I guess that’s the (unsatisfying) solution for this specific question. LMK if you run into other issues with this case.
In MFiX classic it only takes one bad cut cell to mess up convergence. The unsolved mystery is how to define and detect bad cut cells. Sometimes the same mesh will be fine with say PIC, but will fail with TFM because we don’t solve the same equations. We have a few cut-cell tolerances to adjust the mesh until it works. Sometimes the dirty trick to nudge the geometry is faster. Another trick in classic is to either change the size of the fluid domain box by a tiny amount or even add one cell in a direction (not sure if exa allows non powers of 2 for the mesh size). If the simulation runs with this little change, it is a meshing issue, not a model setting issue.
1 Like
Does the original case run if you remove solids? I’m interested in knowing if the failure to converge is related to fluid-particle interaction or if it is strictly geometry related. If it’s the latter, then it’s clearly a bug somewhere.
it runs without the solids. ~my ascent file screwed up so nothing to show but it’s out to 22s now and running at max dt so it’s probably just a developing laminar pipe flow and not much to see anyway.~
I fixed my ascent file, it was very boring. So, I put a 8cm square block at the inlet; the rest of the inlet is 0.1m/s, the square has a velocity of ~1.14m/s so the total volumetric flux is the same as 0.45 m/s * pi * R^2. It also runs and is more interesting to see.
I was able to get this case running by changing the max coarsening level for the nodal projection.
nodal_proj.mg_max_coarsening_level = 2
I let the case run overnight, and it is currently out ~20 secs.
How did I get to this solution?
The unsatisfying part of my answer is that I have a fair amount of experience, and therefore, I have a sense of which knobs to turn when the code fails to converge. Additionally, I set the verbose flags for the nodal solver:
nodal_proj.verbose = 0 # default
nodal_proj.bottom_verbose = 0 # default
Different values provide varying amounts of information. By examining the residuals, I got an idea of when things started going awry in the MLMG.
1 Like