In this tutorial you will learn how to simulate a gas-solid fluidized bed using OpenFOAM® (twoPhaseEulerFoam). The tutorial also contains a complete description of physical models and available options through which you can customize your simulation. In addition, you can see the animation of this simulation here. The video is also uploaded on YouTube.
- Solver: twoPhaseEulerFoam
- Compatible with: OpenFOAM 7, OpenFOAM 6, OpenFOAM 5.x, OpenFOAM v1912
- Model: Euler-Euler compressible flow, RAS turbulence model, 3D
- Physical system: A gas solid fluidized bed in bubbling regime.
- Video: See the animation of this simulation here.
- Description: The gas-solid fluidized bed is a flat bed with rectangular cross section with dimensions 150x28x2.5 cm3 . This bed is filled up to 40 cm with 275-microns spherical glass beads with the density of 2500 kg/m3 . The packing fraction (solid volume fraction) is assumed to be 0.6 and the maximum packing fraction was assumed to be 0.63. These particles are fluidized with air at ambient conditions (here we assume 1 atm and 283 K). This condition exactly corresponds to the experiments performed by Taghipour et al. [Taghipour, Ellis, & Wong, 2005. Chemical Engineering Science, 60, 6857–6867].
Hi Mr. Norouzi,
Thank you for the very impressive OpenFOAM tutorial which I learned a lot from. Is it possible to integrate twoPhaseEulerFoam solver with dynamic mesh as well?
Hi Jeffery, It is not integrated into twoPhaseEulerFoam at the moment.
Hi,
Thank you for your tutorial. I was wondering if this twophase eulerfoam can be used for liquid-solid system. I am trying to simulate the water flowing inside the pipe with carrying particles. I hope I can hear insight. Thank you so much.
thanks, it is possible, if you use correct sub-models. remember that E-E simulation does not resolve the flow field around particles, so the interactions like lift force due to velocity gradient near the walls are not modeled so, you should consider this.
Dear professor Norouzi,
Thanks for the tutorials.I have used this tutorial to model the FB presented by Taghipour et al. I found that the void fraction would be overpredicted by OpenFOAM. Actually, the numerical results of Fluent or MFiX are in better agreement to experimental data. Is there any way that I can send you the results, may be you have a comment on them?
what are your results? can u give me a brief overview of your comparisons?
Unfortunately, I cannot upload the plots here. Should I email them to you?
Actually, I followed the tutorials, as my first experience to use OpenFOAM to model multiphase flows, to simulate the FB presented by Taghipour et al. I have modelled this simulation using the MFiX and I have also found anothe numerical results based on the same FB computed by Ansys. The air volume fraction at y=0.2 m which was plotted by the original paper was used for my comparison. The average air volume fraction on this line computed by OpenFOAM has a relatively higher magnitude and it is not as good as that two software.
Dear Mohsen, You need to use correct sub-models and settings for the solver to improve your results. MFIX is specialized in fluid-solid flows and it is easier to obtain satisfying results, but this does not necessarily mean that you cannot do the same with OpenFOAM.
Hi,
I seem to be having behavior that is not normal with this tutorial. In order to take my inexperience out of the equation. I ran the tutorial straight from the download. However it seems that the amount particles decreases as the simulation proceeds. By the time it gets to 0.5s the volume fraction of particles has reduced from 0.16 to 0.146468. I am running on OpenFoam v2012 through docker. I am wondering why so much of the particles are disappearing.
Dear Jared, I am having the same struggle with new versions of OpenFOAM (V2006 and 2012). I have not tested OpenFOAM v8 yet. This tutorial was run with OpenFOAM v7, v1912 and older versions (it works well on those versions). It seems that with the new changes they are making on multiphase Euler solvers, new bugs are introduced. I am not yet sure about the source of the error, but I am working on it.
That is relieving to know that It wasn’t me messing it up. I guess I will use v1912 for now then. Thank you so much for your quick reply.
I tried using v1912 but it did the same thing, so I decided to try v7 and it seems to working just right. I am guessing that it is a difference between the distributions. Thank you again for the tutorial
Thanks for the update. I did not have v1912 installed on the computer. But re-run the case with V7 and it is fine.
Dear Dr. Norouzi,
I wonder if you have found the error that causes the decrease of particle volume fraction over time or not(using v2006 and v2012)? Also, What is the version of OpenFoam that you use these days?
Yes, we solved the problem. OpenFOAM version 8 and beyond changed the multiphase solver and the new solver does not have this problem. In older versions of OpenFOAM (esi group and foundation group), you can reduce the error by using near orthogonal mesh or using schemes that have less numerical diffusion.
I recommend using Op8 or Op9. I have not tested the recent version of esi-branch. So, they may have modified the solver in the newer versions.
Dr Norouzi,
Thanks for your prompt response. I tested the OpenFOAM 2106 and it works well. But yet I am interested to know what causes the problem. I wonder if you can provide more details?
Also, Do you know any source which explains the algorithm and the equations that are solved in the new versions of the OpenFOAM?
Hello, Thanks for the interesting tutorial. Would you use the same solver to model a packed bed or in that case another solver works better?
Hi, if the packed bed is uniform, using another solver is better. If it is not uniform or you need the solution before and after the packed bed, you can use this solver. Just make sure that the fields are conserved when mesh changes from packed bed zone to free space zone.
great tutorial
the video adaption is great also
https://www.youtube.com/watch?v=nuV46erTgt8
Thank you for the nice tutorial.
I have a question: How do you calculate pressure drop across the bed?
Thanks.
Two options: use objectFunctions (in OpenFoam) to directly probe the locations between which pressure drop is going to be calculated or use probe data tool in paraview.
Thank You Prof. I will try this
I have an issue Prof, Why is it that the graph of pressure drop Vs. superficial gas velocities is not achieved? (constant gradient up to the minimum fluidization velocity and horizontal line thereafter)
For my case, The pressure drops seems to be same for all the superficial gas velocities.
You are probably doing something wrong in your post processing/simulation. what is the pressure drop that you obtain in your simulation? how do you obtain it? what value do you expect for the pressure drop?
Dear professor Norouzi,
I was actually using the pressure difference between the inlet and the outlet and then I realized this is wrong because P is static pressure.
I expect pressure drop as predicted by Ergun equation?
Any suggestion on how to go about it?
Ergun is fine for your analysis. Remember that it may have up to 10% error. You can also predict the pressure drop of the bed by mg/A, where m is the total mass of particles, g is 9.81, A is cross section area of the bed.
Thank You Prof.
One last question: Do you have a suggestion on how I can print out the drag coefficient CdRe?
Thank you
I have never tested this. But I had a look at code and found out that CdRe is returned as a temporary field and it does not get registered in the registry of run-time env. of OpenFOAM. So, without C++ coding, you cannot do that. It is possible to print it if you extend (using a new class) the existing drag model (you do not need to modify the solver itself) and store a copy of CdRe in that new class and OpenFOAM will take care of the rest for you.
Greeings Prof. Norouzi,
Thank you for posting this tutorial! It helps me a lot!
I have two questions when I was reading files and related paper. First, what are the differences between granule temperature (Theta) and T.particles? Second, what is alphat.air and alphat.particles in 0 folder? Thank you very much!
Granular temperature is related to the magnitude of local particle fluctuation that is defined in the context of KTGF, and temperature is the actual temperature of solid phase.
alphat = turbulence->nut()/Prt , which essentially gives the turbulent thermal diffusivity.
Prt: turbulent Prandtl number
nut: turbulent kinematic viscosity
Dear Prof. Noruzi. Its possible simulate subaerial granluar collapses dam-break type?
Hi. Thank you for a very interesting tutorial.
I am facing problems in simulating a binary fluidised bed. I want to input an intermixed layer of particles (2mm and 8mm). Do I have to make changes in phaseProperties? And what does blending means in phaseProperties.
Hi. Thanks.
I checked the OpenFOAM code. It is not as straight forward as changing some files in case-setup. You need to use multiphaseEulerFoam solver with air as the fluid phase and small and large particles as two separate solid phases. Then you must develop (in C++) a new sub-model for fluid-particle interactions for the poly-disperse system and a new sub-model for the particle-particle interphase interactions.