
[Sponsors] 
Problems in understanding BuoyantBoussinesqSimpleFoam 

LinkBack  Thread Tools  Search this Thread  Display Modes 
August 24, 2011, 11:41 
Problems in understanding BuoyantBoussinesqSimpleFoam

#1 
Senior Member
Anne Gerdes
Join Date: Aug 2010
Location: Hamburg
Posts: 168
Rep Power: 11 
Dear Foamers,
I still habe problems in understanding the source code of BuoyantBoussinesqSimpleFoam. In the attachment you see the momentum equation which has to be solved where GT= rho g= (1beta(TT_0))*g In pEqn.H the main code is settled. First the velocity is solved without taking into account pressure or density. HTML Code:
U = rAU*UEqn().H(); HTML Code:
phi = fvc::interpolate(U) & mesh.Sf(); HTML Code:
surfaceScalarField buoyancyPhi(rAUf*ghf*fvc::snGrad(rhok)*mesh.magSf()); The flux is corrected with the buoyancy flux HTML Code:
phi = buoyancyPhi; HTML Code:
fvm::laplacian(rAUf, p_rgh) == fvc::div(phi) HTML Code:
phi = p_rghEqn.flux(); HTML Code:
U = rAU*fvc::reconstruct((buoyancyPhi + p_rghEqn.flux())/rAUf); HTML Code:
p_rgh = p  rhok*gh; HTML Code:
phi = fvc::interpolate(U) & mesh.Sf()  (rAUf*ghf*fvc::snGrad(rhok)*mesh.magSf())  p_rghEqn.flux(); Regarding the link http://openfoamwiki.net/index.php/Bu...sinesqPisoFoam in the solver BuoyantBoussinesqPisoFoam the flux looks like this HTML Code:
phi =fvc::interpolate(U) & mesh.Sf()) + rUAf*fvc::interpolate(rhok)*(g & mesh.Sf())pEqn.flux(); I can not find any explanation in the forum. Who can help me to understand the code? 

September 5, 2011, 08:58 

#2 
Senior Member
Anne Gerdes
Join Date: Aug 2010
Location: Hamburg
Posts: 168
Rep Power: 11 
No one for an answer???


September 5, 2011, 09:39 

#3 
Senior Member
Roman Thiele
Join Date: Aug 2009
Location: London, UK
Posts: 371
Rep Power: 16 
I am not sure, but you might have to look up in a numerical methods book, or somewhere else how the SIMPLE algorithm works, maybe that can give you some hints.
__________________
~roman 

September 8, 2011, 09:20 

#4 
Senior Member
Anne Gerdes
Join Date: Aug 2010
Location: Hamburg
Posts: 168
Rep Power: 11 
Thank you for answering!
Now I understand the implementation. If someone is interested I could post that, too. 

September 8, 2011, 11:24 

#5 
Senior Member
Bernhard
Join Date: Sep 2009
Location: Delft
Posts: 790
Rep Power: 17 
If it is not on this forum yet, then it can be very interesting for future reference if you post your findings here!


September 12, 2011, 09:02 

#6 
Senior Member
Anne Gerdes
Join Date: Aug 2010
Location: Hamburg
Posts: 168
Rep Power: 11 
In the momentum equation we have in zdirection (in direction of buoyancy) the terms
 dp / dz + rho*g In OpenFOAM, g is a vector (0 0 9,81) which ensures that the buoyancy is only valid for the right coordinate direction. In order to guarantee, that in the pressure correction of the simple algorithm also the buoyancy term rho*g*z is taken into account, the pressure and the buoyancy are melted together in one term p_rgh = p  rho*g*z Instead of the normal gradient of p, the normal gradient of p_rgh is on the RHS.  d/dn (p_rgh) which equals in OF to HTML Code:
 fvc :: snGrad (p_rgh)  d/dz [ p  rho * g *z] =  dp/dz + rho*g + g*z* d rho/dz So the third term g*z* d rho/dz is "too much" and is therefore substracted via HTML Code:
 ghf *fvc::snGrad(rhok) 

September 14, 2011, 02:08 

#7 
Senior Member

Hallo Anne!
Would you please clarify following points: 1. What do you mean by term "two much" (is it phisical meaning or regards difference in some mathematical formulation). 2. Did you use some reference to understand SIMPLE/PISO treatment of the buoyancy? Thank you in advance! Mfg, Alexander
__________________
Best regards, Dr. Alexander VAKHRUSHEV Christian Doppler Laboratory for "Metallurgical Applications of Magnetohydrodynamics" Simulation and Modelling of Metallurgical Processes Department of Metallurgy University of Leoben http://smmp.unileoben.ac.at 

September 14, 2011, 03:47 

#8 
Senior Member
Anne Gerdes
Join Date: Aug 2010
Location: Hamburg
Posts: 168
Rep Power: 11 
Hallo Alexander,
I will try to answer your questions: 1. With "too much" I mean the term g*z* d rho/dz which is the result of taking the derivative of  [ p  rho * g *z] in zdirection. It is an additional term due to the product rule. Basically we have the terms  dp / dz + rho*g So by taking the derivative of both, p and rho*g*z we obtain together with the correction term  g*z* d rho/ dz:  d/dz [ p  rho * g *z]  g*z* d rho/ dz=  dp /dz + rho*g + g*z* d rho/ dz  g*z* d rho/ dz =  dp/ dz + rho*g and this is the orignial term in the buoyancy driven momentum equation. In OpenFOAM code this equals to the righthand side of the UEqn HTML Code:
 fvc::snGrad(p_rgh)  ghf*fvc::snGrad(rhok) 

September 14, 2011, 04:16 

#9 
Senior Member

Thank you Anne for the detailed explanation! I will search for the algorithm description in Peric's book.
Got it, thanx)
__________________
Best regards, Dr. Alexander VAKHRUSHEV Christian Doppler Laboratory for "Metallurgical Applications of Magnetohydrodynamics" Simulation and Modelling of Metallurgical Processes Department of Metallurgy University of Leoben http://smmp.unileoben.ac.at 

June 8, 2019, 05:27 
rhok in T and U equation

#10 
New Member
siamak rafizadeh
Join Date: May 2018
Posts: 8
Rep Power: 3 
Hi
As anyone knows in buossinesq approximation for density is written as : rho=rhoRef*(1beta*(TTref)) and in oF rhok=1beta*(TTref) and in Chalmer university file: Cite as: Venkatesh, B V.: Tutorial of convective heat transfer in a vertical slot. In Proceedings of CFD with OpenSource Software, 2016, Edited by Nilsson. H., http://www.tfd.chalmers.se/~hani/kurser/OS_CFD_2016 CFD with OpenSource software A course at Chalmers University of Technology Taught by Håkan Nilsson we have: The governing equation for temperature is solved, given as ∇.(ρuT ) − ∇.αef f ∇T = Sradiation + ST (2.4) Where, αef f = νt /prt + ν/pr , Sradiation and ST are source terms due to radiation and user defined source term respectively. The density is updated as ρ = 1 − β(T − Tref ) and phi is defined as phi=rhok*U now question is how rhoRef is deleted in above equstion while alpha have it: α=k/(ρ*Cp) please help in making it clear. thanks in advance 

March 22, 2020, 06:58 

#11 
New Member
Annabel Parker
Join Date: Feb 2020
Posts: 2
Rep Power: 0 
In the pressure correction of the simple algorithm also the buoyancy term rho*g*z is taken into account, the pressure and the buoyancy are melted together in one term rufus
Last edited by strohl; March 23, 2020 at 02:32. Reason: spelling 

Thread Tools  Search this Thread 
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
[ICEM] Problems with coedge curves and surfaces  tommymoose  ANSYS Meshing & Geometry  0  August 5, 2011 16:02 
Needed Benchmark Problems for FSI  Mechstud  Main CFD Forum  4  July 26, 2011 12:13 
Twophase air water flow problems by activating Wall Lubrication Force  challenger85  CFX  5  November 5, 2009 05:44 
Problems understanding some piso details  tehache  OpenFOAM Running, Solving & CFD  3  July 27, 2007 06:02 
Some problems with Star CD  Micha  Siemens  0  August 6, 2003 13:55 