
[Sponsors] 
November 20, 2012, 16:44 
multiphaseEulerFoam for packed bed reactor

#1 
New Member
Yanxiang Shi
Join Date: Mar 2012
Location: Cambridge, MA, US
Posts: 29
Rep Power: 6 
Foamers,
I am working on a two phase flow in packed bed reactor. Since the solid phase is not moving, I thought I can basically force it fixed by setting corresponding velocity to zero at each time step. So I did. In the UEqn.C, I added after line 9 so it became Code:
volVectorField& U = phase.U(); if (phase.name() == "water") { U = U*0; } volScalarField nuEff(sgsModel>nut() + iter().nu()); So why would the solid phase compress itself if the velocity is zero and the alpha equations depend on that? What do I miss? Thanks, yanxiang 

November 20, 2012, 18:45 

#2 
New Member
Yanxiang Shi
Join Date: Mar 2012
Location: Cambridge, MA, US
Posts: 29
Rep Power: 6 
I think I figured out what went wrong myself.
So the solution procedures of the alpha equations in multiphaseEulerFoam is similar to the ones presented in Rusche's thesis (Eqn 3.58), only adding more equations. So with this equation, even Ua = 0, alpha_a still changes. Change this to the straightforward solution of the equations should solve the problem, but also would possibly introduce unboundedness. 

November 21, 2012, 17:11 

#3 
New Member
Yanxiang Shi
Join Date: Mar 2012
Location: Cambridge, MA, US
Posts: 29
Rep Power: 6 
Ok. Seems like nobody is really interested in this topic.
So anyway, my last post was wrong. The fact that the solid phase is compressed has nothing to do with how the alpha equations are solved. I implemented the straightforward solution of those, but what I got is simply worse. Compression still, and unboundedness. So for this simple two phase case, the solution is basically not to solve the alpha equations. alpha_solid = alpha_solid0, and alpha_gas = 1 alpha_solid. 

December 14, 2012, 13:51 

#4 
Senior Member
Kent Wardle
Join Date: Mar 2009
Location: Illinois, USA
Posts: 207
Rep Power: 13 
Maybe it is not that no one is interested, just not fast enough to respond in 1 day...
If you are only looking at two phases, why not try with twoPhaseEulerFoam? Did you try to change the order that your phases are defined in transportProperties? Perhaps that way you would have the solid phase be the dependent as you have suggested should be the case. I guess, fundamentally I don't see why multiphaseEulerFoam is the correct approach for you. Is there a reason why a porous approach does not work. Just some thoughts. 

December 14, 2012, 15:36 

#5 
New Member
Yanxiang Shi
Join Date: Mar 2012
Location: Cambridge, MA, US
Posts: 29
Rep Power: 6 
Dear Kent,
Thanks for the reply, and for comforting. I wasn't patient enough. You are right about the twoPhaseEulerFoam. I have discontinued any effort of trying to make the multiphaseEulerFoam work. It is not such a trivial task to do. So instead, I switch to twoPhaseEulerFoam and so far I have made some progress. However, just to clarify, there really is three phases, i.e., a static solid phase and flowing gas and liquid phases. The porous media model isn't ideal because what I am interested in is the liquid distribution within the bed, whereas the porous media model implemented in OF only considers uniform porosity. I have implemented my own variable porous media model, but I still favor the multifluid approach as it provides more flexibility and to some degree is closer to the real physics because it accounts for the interactions between phases. Now I am facing another issue. There is a brief discussion here: basic question with 'ForAll' loop So the issue is basically that I can't seem to limit the volume fraction within 0 and 1. I would appreciate it if you could help me with that. yanxiang 

May 17, 2016, 03:48 

#6 
Senior Member
Albrecht vBoetticher
Join Date: Aug 2010
Location: Zürich, Swizerland
Posts: 210
Rep Power: 8 
Hi Yanxiang,
Although this thread is old I would like to add something if someone goes the same way: The solver searches for a divergence free velocity field to find the solution (continuity equation) so setting the velocity to a chosen value somewhere messes up your equation system. What you can do is the "bodyforce" approach, you can add a volume force in your UEqn that causes the fluid to decellerate to the desired velocity in the cells where your solids are. This causes some pressure oscillation so the more sophisticated way is to introduce these terms in the pEqn (see how gravity is handled) but if you are not interested in the local pressure but in the overall flow field its OK. I did that once to add the opening of a gate to the interFOAM solver and I now reuse the code to account for large boulders lying in the channel that disturb the flow. In the createFields.H I added some lines that read in the cells that are blocked by a body from an .stl surface file that contains the scanned shape of the boulders: Info<< "Creating body force: reading impermeable cells from cellset constant/polyMesh/sets/selectedCells"; // Allocate the body force vector field and initialize it to zero volVectorField bodyForce ( IOobject ( "bodyForce", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE ), mesh, dimensionedVector("zero", dimForce/dimVolume, vector::zero) ); volVectorField bodyVel ( IOobject ( "bodyVel", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE ), mesh, dimensionedVector("zero", dimLength/dimTime, vector::zero) ); volScalarField bodySurfaceCells ( IOobject ( "bodySurfaceCells", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE ), mesh, dimensionedScalar("zero", dimForce/dimForce, 0.0) ); cellSet selectedCells ( mesh, "selectedCells", IOobject::MUST_READ, IOobject::NO_WRITE ); for(cellSet::iterator cell=selectedCells.begin();cell!=selectedCells.end ();cell++) { bodySurfaceCells[cell.key()] = 1; } fv::IOoptionList fvOptions(mesh); then add + (bodyForce/phase.rho()) to the right hand side in UEqns.set( ) in UEqns.H of multiphaseEulerFoam and prior to calling UEqn.H in multiphaseEulerFoam.C add bodyForce *= 0; bodyVel = U*bodySurfaceCells; bodyForce = rho * (bodyVel) / runTime.deltaT(); I currently work on implementing a fully coupled Lagrangian Particle Simulation based on DPMFoam to multiphaseEulerFoam and it seems to work, maybe this would be a better way to get the right physics... 

Tags 
multiphase flow 
Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Packed Bed Reactor  shankar reddy  FLUENT  7  March 2, 2014 10:57 
urgent... multiphase cfd model of packed bed reactor.( VOF MODEL using)  balu@gold6  FLUENT  4  July 26, 2012 10:37 
Fixed bed reactor.....you can help...I am sure!!  Amrrefay  FLUENT  0  June 6, 2009 06:58 
Simulating tricklebed reactor (packed bed)  brajesh  FLUENT  0  October 17, 2005 06:54 
Bubbling Fluidized Bed reactor burning biomass  Mattias  FLUENT  6  June 8, 2004 02:53 