Hi,
The randomization of particle orientation (e.g. for SQP and probably gluedsphere) should be done in 2D when we force the model to be ran in 2D. See case attached with SQP. Particles are randomized in 3D (despite being a pseudo-2D sim) and upon impact disappear regardless of the stiffness. This does not occur when randomization is turned off.
fb_sqp_particle_input.mfx (13.7 KB)
Thanks Eric. I think there may be a similar issue with randomization of particle position. We will address this in a future release. In the meanwhile, you may want to use a particle_input.csv
file - you can write a Python script or similar to place and randomize the particles however you like.
could be yes; I will use my own code then for now
Hi @ebreard6
Thanks for submitting this case, I found some very interesting things while running it.
-
There seem to be some problems with SQP seeding. With the default settings for DEM seeding parameters (Hexagonal lattice, 0.05 particle spacing) it looks like the particles are interpenetrating. (This has nothing to do with the randomization, I have that disabled here)
-
I created a patch (more about this below) to force the randomization to only rotate in the x-y plane, for 2D cases. With this enabled, the interpenetration is even more visible:
This should have caused some warnings from the SQP particle collision detection code, I’m not sure why that isn’t happening
- I got around this issue by using a cubic lattice and increasing the particle spacing to 1. I had to move the pebbles from the “IC” region to the “Background” since there was no longer room for them in the bottom region, but this should be OK because they fall down anyhow. I specified “particle count” rather than “volume fraction” to get the desired number of pebbles.
With these settings (and my patch) the initial seeding looks like this, with random orientation enabled:
- Here’s the code change to enable 2-D randomization.
patch.txt (20.2 KB)
To apply it, save the patch to a file (say, /tmp/patch.txt
), then go to the MFiX source directory ($CONDA_PREFIX/share/mfix/src
if you are using a Conda installation), and run
patch -p1 < /tmp/patch.txt
Now you can build custom solvers, which will pick up the new code, or to rebuild the default solver,
$ cd $CONDA_PREFIX/bin
$ build_mfixsolver -j; build_mfixsolver --smp -j; build_mfixsolver --dmp -j
to rebuild all 3 flavors of the default solver.
- I need to discuss this change with the MFiX team to see if it’s something we want to add to the official code. I have a number of questions about 2D cases and how they work, which I need to answer before merging this. If particles are spherical and all start in the same plane, collision forces should also be in that plane. But for SQP particles this is no longer the case, and I’m not sure what constrains them to stay in the plane, and if this is physically realistic. I will follow up on this topic as I find out more.
– Charles
@ebreard6
@jeff.dietiker noted that there is a setting error in the sqp file attached to the forum post. The sqp diameter is set to 0.015m, when it should be 0.025m.
Did you override this value manually? The sqp designer correctly sets it to 0.025m. Also note that if this value is not specified the solver will compute the bounding diameter from the SQP parameters. We allow manual overwrite of the diameter because it is sometimes beneficial to slightly increase the diameter to get better collision detection.
ah yes, in the setup I have now, my particles are 0.015m and my diameter is 0.02m; btw, would you agree that the best collision detection are achieved with neighbor_search_n = 1?