|
|
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 used may be dependant of the observed quantity. In this section, we will briefly outline the possibilities offered by the MigFlow Software.
|
|
|
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 dependant of the observed quantity. In this section, we will briefly outline the possibilities offered by the MigFlow Software.
|
|
|
|
|
|
### Friction, Cohesion and so on...
|
|
|
|
|
|
One of the greatest advantage of the MigFlow Software is its compatibility with the [LMGC90](https://git-xen.lmgc.univ-montp2.fr/lmgc90/lmgc90_user/wikis/home) Software (for installation we recommand to follow instructions on their website). A contact solver, named _scontact_ is provided with MigFlow to compute velocities and trajectories of grains, forbiding interpenatration, in a lagrangian way. It uses a time-stepping method that corrects iteratively the free velocities of the grains, obtained by applying external forces, to compute a set of velocities giving after displacement of the grains a stationnary state without intersection. But _scontact_ module can be disconnected from the fluid part and replaced by LMGC90 to take advantage of the huge variety of contact law implemented in it. Some test cases are given to present how to call LMGC90 from the Users Interface:
|
|
|
One of the greatest advantage of the MigFlow Software is its compatibility with the [LMGC90](https://git-xen.lmgc.univ-montp2.fr/lmgc90/lmgc90_user/wikis/home) Software (for installation we recommand to follow the instructions on their website). A contact solver, named _scontact_ is provided with MigFlow to compute the velocities and trajectories of the grains, forbidding interpenetration, in a lagrangian way. It uses a time-stepping method that corrects iteratively the free velocities of the grains, obtained by applying external forces, to compute a set of velocities giving after displacement of the grains a stationary state without intersection. But the _scontact_ module can be disconnected from the fluid part and replaced by LMGC90 to take advantage of the huge variety of contact laws implemented in it. Some test cases are given to present how to call LMGC90 from the Users Interface:
|
|
|
|
|
|
- [betonlmgc.py](https://git.immc.ucl.ac.be/fluidparticles/migflow/blob/oneFluid/testcases/couette-2d/betonlmgc.py) presents the mixing of grains with different radii in a rotating drum using LMGC90 to take into account the impact of the friction on the mixing efficiency.
|
|
|
|
|
|
### 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 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 capture accurately flow fields during the grains motion.
|
|
|
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.
|
|
|
|
|
|
- [drop.py](https://git.immc.ucl.ac.be/fluidparticles/migflow/blob/oneFluid/testcases/drop-2d/SimpleDrop/drop.py) presents the fall of a cloud made of grains in a viscous fluid and make use of this feature to refine the the cloud area during the fall. In this way, it is possible to highly fasten the computation because the area of interest (i.e. the cloud) is small compared with the entire computational domain.
|
|
|
- [drop.py](https://git.immc.ucl.ac.be/fluidparticles/migflow/blob/oneFluid/testcases/drop-2d/SimpleDrop/drop.py) presents the fall of a cloud made of grains in a viscous fluid and makes use of this feature to refine the mesh around the cloud area during the fall. This way, it is possible to highly fasten the computation because the area of interest (i.e. the cloud) is small compared with the entire computational domain.
|
|
|
|
|
|
```python
|
|
|
fluid.adapt_mesh(Max. element size, Min. element size, Total number of elements, a, b)
|
|
|
```
|
|
|
|
|
|
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 refinment 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).
|
|
|
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
|
|
|
|
... | ... | |