
[Sponsors] 
Add Work due to body force in the energy equation for a lagrangian solver 

LinkBack  Thread Tools  Display Modes 
April 15, 2015, 04:09 
Add Work due to body force in the energy equation for a lagrangian solver

#1 
New Member
Matthias Neben
Join Date: Oct 2011
Posts: 21
Rep Power: 5 
Dear Foamers,
for multiphase flows with disperse particles the literature recommends the usage of a source term in the energy equation (Multiphase flows with droplets and particles, Crowe et.al., p. 445). This term shall mention the work due to body forces acting on the particle, mainly the work due to the drag force. To get this I have to multiply the momentum source term with each cell’s number averaged particle velocity. Now there is the problem: How do I get an appropriate inner product of the momentum equation source term with a volVectorField? An Example: The momentum equation of the reactingParcelFoamsolver has on the left side a momentum source called parcels.SU(U). Additionally one needs a volVectorField Up which corresponds to a averaged particle velocity in each cell. Now I thought lets do something like Up&parcels.SU(U) and add this to the right side of the energy equation, but this fails because parcels.SU(U)is a Foam::tmp<Foam::fvVectorMatrix>. Greetings Matthias Last edited by mneben; April 16, 2015 at 03:36. 

April 15, 2015, 11:34 

#2  
Senior Member
Armin
Join Date: Feb 2011
Location: Helsinki, Finland
Posts: 152
Rep Power: 10 
Quote:
But you can get UTrans, which is a DimensionedField, and use that one to compute what you want since you are not interested in the boundary field anyways. Have a look at: Code:
src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H 

April 27, 2015, 09:04 

#3 
New Member
Matthias Neben
Join Date: Oct 2011
Posts: 21
Rep Power: 5 
Hello Armin,
thanks for your quick response. According to your recommendation I checked UTrans, especially the function calcVelocity written in KinematicParcel.C: dUTrans += dt*(Feff.Sp()*(Ures.average()  Uc_)  Fcp.Su()); whereas Utrans will be calculated by td.cloud().UTrans()[cellI] += np0*dUTrans When there is no lift force Fcp.SU() should be zero and UTrans should be the drag force times the timestep. To check this I created a test case with only one particle that is accelerated by the drag force. I added in uncoupledKinematicParcelFoam some lines Info<<min(kinematicCloud.UTrans())<<endl; Info<<min(kinematicCloud.UCoeff())<<endl; Info<<max(kinematicCloud.UTrans())<<endl; Info<<max(kinematicCloud.UCoeff())<<endl; and switched coupled in thermoCloudProperties to true. But I only got the following lines: min(kinematicCloud:UTrans) [1 1 1 0 0 0 0] (0 0 0) min(kinematicCloud:UCoeff) [1 0 0 0 0 0 0] 0 max(kinematicCloud:UTrans) [1 1 1 0 0 0 0] (0 0 0) max(kinematicCloud:UCoeff) [1 0 0 0 0 0 0] 1.37330258e09 UTrans is zero and has not the expected value, whereas UCoeff is correct (compared with the analytic solution of the drag force). Why is Utrans zero? Where is my mistake? Greetings Matthias 

April 28, 2015, 05:10 

#4 
Senior Member
Armin
Join Date: Feb 2011
Location: Helsinki, Finland
Posts: 152
Rep Power: 10 
Sorry, I cannot help you right much further since I would have to dig through the code and see what is really done there and I don't have time for that.
A couple of hints though:


Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Calculation of the Governing Equations  Mihail  CFX  7  September 7, 2014 06:27 
add source term in energy equation  chaolian  OpenFOAM Programming & Development  4  November 8, 2012 23:22 
How to add time varying body force  hsieh  OpenFOAM Running, Solving & CFD  2  July 26, 2010 11:43 
ATTENTION! Reliability problems in CFX 5.7  Joseph  CFX  14  April 20, 2010 15:45 
how to add body force in a duct  jane  FLUENT  0  March 28, 2004 00:13 