
[Sponsors] 
June 22, 2009, 11:02 
Strong coupling in kepsilon equation

#1 
New Member
Nat Trask
Join Date: Mar 2009
Location: Providence, RI
Posts: 18
Rep Power: 9 
Hello all,
I am implementing a turbulence model with very strong coupling between the k and epsilon equation. I am currently forced to iteratively solve both equations several times with relaxation to obtain convergence. i.e. while ( initial residuals < TOL){ update k and epsilon matrices with latest k and epsilon solve k solve epsilon k = k_lastiteration + relax*(k_thisiteration  k_lastiteration) epsilon = epsilon_lastiteration + relax*(epsilon_thisiteration  epsilon_lastiteration) } k=k_lastiteration epsilon=epsilon_lastiteration This approach does work, but is fairly expensive and requires tuning of the relaxation constant and tolerance to get convergence. A coupled matrix solver would be a preferable way to tackle the problem. I've seen posts that such a solver is being implemented... any updates on the progress? Or has anyone come up with a better approach for this type of problem? Thanks, Nat 

February 22, 2010, 14:21 

#2 
Member
Markus Weinmann
Join Date: Mar 2009
Location: Stuttgart, Germany
Posts: 77
Rep Power: 9 
Hi Nat,
I was wondering if you have found a more elegant solution to your problem? I am aking because I am facing almost exactly the same problem. Regards Markus 

February 23, 2010, 03:46 

#3  
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,910
Rep Power: 27 
Quote:
Anyway, I would love to have a coupled solver too and I know Hrvoje and his coworkers are working on that (actually I saw some very interesting result ). Best,
__________________
Alberto Passalacqua GeekoCFD  A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats. OpenQBMM  An opensource implementation of quadraturebased moment methods. To obtain more accurate answers, please specify the version of OpenFOAM you are using. Last edited by alberto; February 23, 2010 at 03:47. Reason: typo 

February 23, 2010, 07:25 

#4 
Member
Markus Weinmann
Join Date: Mar 2009
Location: Stuttgart, Germany
Posts: 77
Rep Power: 9 
I am using a RAS model which is based on the elliptic relaxation concept, i.e. in addition to a twoequation model, I am solving another velocity scale equation and an elliptic equation. The coupling of these equations and the use of a nonlinear stressstrain relationship makes it very difficult to get it converged (particularly the pressure equation has problems).
I have just downloaded OF1.5dev and it seems that there are coupled matrix solvers. However, the question is how they can be used for my problem, if at all. I will investigate further! Markus 

February 23, 2010, 13:48 

#5 
New Member
Nat Trask
Join Date: Mar 2009
Location: Providence, RI
Posts: 18
Rep Power: 9 
Hi Markus,
I've been waiting for the block solvers to come out too. One thing that I've been playing with in the meantime is doing a GaussSeidel inversion of the kepsilon matrix (I think that this should be applicable if you're using a 3equation model as well), although there are no guarantees that this will converge in general (it hasn't worked very well for me, since I'm looking at highdensity ratio compressible flow with very intense turbulent mixing that gives me bad condition numbers, but maybe those working on incompressible cases or lower Reynolds numbers will have more luck with it). For the 2equation case, if you think of the coupled equations as a block matrix: k_k k_eps eps_k eps_k i.e. k_k is the block of coefficients in the coupled kequation dependent upon k, k_eps the block of coefficients in the kequation dependent upon epsilon, etc. You can pull the diagonal of the topleft block and bottomright block by calling kEqn.A() and epsEqn.A(). You can get the off diagonal contribution of both blocks through kEqn.H() and epsEqn.H(). In the segregated framework that we're forced to work in right now, the contribution of epsilon to the k equation and vice versa has to be treated as an explicit source (accessible via kEqn.source(), etc.) that get lumped in with the other source terms Pulling all those together in a GaussSeidel block inversion will get you something that looks like this while (residuals < TOL){ k = (1.0/kEqn.A()) * (kEqn.source()  kEqn.H()); epsilon = (1.0/epsEqn.A()) * (epsEqn.source()  epsEqn.H()); } This will accomplish the exact same thing as solving the fully coupled block matrix system. I can't attest to what sort of speedup this could give you over simply iterating over k and epsilon, but it should be substantially faster (here we're doing a diagonal inversion for each iteration as opposed to a full CG or multigrid solve). If you (or anyone else) has any luck with this please let me know. I've been meaning to test this out but I've been pressed for time. Nat 

February 24, 2010, 06:38 

#6 
Member
Markus Weinmann
Join Date: Mar 2009
Location: Stuttgart, Germany
Posts: 77
Rep Power: 9 
Hi Nat,
thanks for the detailed explanations. I will give your suggestions a try. By any chance, do yo know whether the coupled matrix solvers in 1.5dev could be used to solve the Kepsilon equations in a coupled fashion? Regards Markus 

February 24, 2010, 16:24 

#7 
New Member
Nat Trask
Join Date: Mar 2009
Location: Providence, RI
Posts: 18
Rep Power: 9 
My understanding is that the coupledMatrix class (is that what you're referring to?) is only for mesh/mesh coupling... the class solves a block diagonal system of equations for one variable. i.e. if you have two meshes in your solver sharing an internal boundary you can use coupledMatrix to solve them simultaneously, but the solver still uses a segregated approach (no kepsilon coupling allowed). You can see it being used in the conjugateHeatFoam solver where they use it to couple the temperature in a solid domain to a temperature in a liquid domain.
It was discussed a little bit here http://www.cfdonline.com/Forums/ope...trixof15.html Nat 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
SimpleFoam k and epsilon bounded  nedved  OpenFOAM Running, Solving & CFD  15  December 2, 2016 03:40 
Calculation of the Governing Equations  Mihail  CFX  7  September 7, 2014 06:27 
SimpleFoam k and epsilon bounded  nedved  OpenFOAM Running, Solving & CFD  1  November 25, 2008 21:21 
coupling KE equation with navier stokes equation  prashant  FLUENT  0  March 7, 2008 08:05 
derivation of epsilon equation of kepsilon model  Ricardo Rezende  Main CFD Forum  5  May 1, 2007 05:38 