|
|
It is important to note that within the granular flows field there are many different types of applications, which can be computed in a variety of way. The model you use may be dependent of the observed quantity. In this section, we will briefly outline the possibilities offered by the MigFlow Software.
|
|
|
|
|
|
### Friction, Cohesion and so on...
|
|
|
## Friction, Cohesion and so on...
|
|
|
|
|
|
The MigFlow software can take into account friction between the grains in various ways.
|
|
|
|
... | ... | @@ -14,7 +14,7 @@ Both solvers make use of the Nonsmooth Contact dynamics, which is a time-steppin |
|
|
- [mill.py](https://git.immc.ucl.ac.be/fluidparticles/migflow/blob/master/testcases/couette-2d/mill.py) presents the mixing of grains with different radii in a rotating drum using LMGC90 or _scontact_ to take into account the impact of the friction on the mixing efficiency.
|
|
|
- [avalanchnofluidfriction.py](https://git.immc.ucl.ac.be/fluidparticles/migflow/blob/master/testcases/avalanch/avalanchnofluid/avalanchnofluidfriction.py) presents a bidimensional grain avalanche without fluid, and shows how to use the LMGC90 software or the _scontact_ solver at choice.
|
|
|
|
|
|
### Adaptive Mesh
|
|
|
## Adaptive Mesh
|
|
|
|
|
|
MigFlow is based on an unresolved Computational Fluid Dynamics-Discrete Element Method model. The discretisation method we choose for the CFD part is the Finite Element Method. On the one hand, unstructured grids offer a great flexibility to represent complex geometries with which grains interact. On the other hand, it is easy to adapt the mesh in order to refine it around the area of interest to accurately capture flow fields during the grains motion.
|
|
|
|
... | ... | @@ -27,14 +27,29 @@ fluid.adapt_mesh(Max. element size, Min. element size, Total number of elements, |
|
|
|
|
|
The arguments a and b in the _adapt_mesh_ function are optional. These parametres are used to weigh the maximum and minimum gradient used to compute the new mesh size at each node of the old mesh. For more information on the refinement formula see: Constant, M., Dubois, F., Lambrechts, J. and Legat, V. (2018). Implementation of an unresolved stabilised FEM-DEM model to solve immersed granular flows. _Computational Particle Mechanics_. [doi:10.1007/s40571-018-0209-4](https://doi.org/10.1007/s40571-018-0209-4).
|
|
|
|
|
|
### Two Fluids + Grains
|
|
|
## Two Fluids + Grains
|
|
|
|
|
|
To consider two continuous phases, an advective equation for the concentration is added to the standard Navier-Stokes equations. See the following example to run test cases with two different continuous phases.
|
|
|
|
|
|
- [avalanch2fluids.py](https://git.immc.ucl.ac.be/fluidparticles/migflow/blob/master/testcases/avalanch/avalanch2fluids/avalanch2fluids.py) presents the fall of a granular column immersed in sea water in a 2D domain filled with soft water.
|
|
|
|
|
|
### Free surface
|
|
|
## Free surface
|
|
|
|
|
|
A free surface whose resolution is based on an Arbitrary Lagrange-Euler (ALE) method can be simulated. The following testcase makes use of this feature:
|
|
|
|
|
|
- [poiseuille.py](https://git.immc.ucl.ac.be/fluidparticles/migflow/blob/master/testcases/poiseuilleALE/poiseuille.py) presents the swelling of a flow past a die in 2D.
|
|
|
|
|
|
## Periodic
|
|
|
Periodic conditions are available in bi-dimensional problems and three-dimensional problems. Only one pair of boundaries can be considered periodic.
|
|
|
### Fluid solver
|
|
|
The information is directly extracted from the mesh file. Therefore, to apply a boundary condition, the .geo file has to contain this information. No boundary conditions has to be imposed on the periodic boundaries. See the following examples for use of this feature :
|
|
|
|
|
|
- [mesh.geo](https://git.immc.ucl.ac.be/fluidparticles/migflow/blob/master/testcases/periodicTest/2D/mesh.geo)
|
|
|
- [periodic_poiseuille.py](https://git.immc.ucl.ac.be/fluidparticles/migflow/blob/master/testcases/periodicTest/2D/poiseuille.py)
|
|
|
|
|
|
Be careful about the line orientation while specifying periodicity in your .geo file.
|
|
|
|
|
|
### Contact solver
|
|
|
Ghost particles which referred to mirrored particles are created to take into account all the possible contacts throughout the periodic boundary. However, the periodic displacement has to be given by the user. An example is given in :
|
|
|
|
|
|
- [grains.py](https://git.immc.ucl.ac.be/fluidparticles/migflow/blob/master/testcases/periodicTest/2D/grains.py) |