
[Sponsors] 
October 11, 2011, 16:59 
steady state version of twophaseeulerfoam

#1 
Member
Miles
Join Date: Sep 2011
Posts: 48
Rep Power: 6 
Hi,
I am using the twophaseeeulerfoam solver to simulate air bubbles in water. I want to have a steady state version of the solver. Solution1 According to what I have read, I should first try to underrelax the resolution and raise the time step. I do not understand why? In fact I do not understand the role of underrelaxtion factor in an unsteady solver. Does anyone have a point on the subject or some documentation of the relaxation process in Openfoam (and in general, reading is never bad!)? This could help me to understand. Solution2 On the other hand if I want to change the solver to be steady witch library I was thinking to do so  Remove time dependence in the solver  Change the velpress scheme (I was thinking using simple scheme)  Modify the fvsol and fvscheme dict. Does this seem correct? Does this seem an affordable task for an OF newbee? Thanks for your opinions and help. Regards, 

October 13, 2011, 13:13 

#2 
Member
Miles
Join Date: Sep 2011
Posts: 48
Rep Power: 6 
Hi
I have tried the first solution but it seems that putting a subdict for relaxation at the end of fvSolution has no effect. I am not sure if it is taken into account. So I switched to the coding of a steady twophaseeluerfoam solver. I am tryning to understand how the solver is coded. I have a few questions and my sorry in advance if it seems to easy but my C++ is very bad. 1.fvVectorMatrix UbEqn(Ub, Ub.dimensions()*dimVol/dimTime) Is it possible to modify the definition of fvVectorMatrix like that: fvVectorMatrix UbEqn(Ub, Ub.dimensions())
What is the definition and the purpose of rUaA and UaEqn.A() ? Is this related to the first guess on momentum equation in the PIMPLE algorithm?
4. DDTU.h What is the purpose of having a special file for the equation on UA and UB? Can it be included in my SIMPLE loop since I will move the scheme from pimple to simple. Thanks for any help. Regards, 

October 13, 2011, 13:21 

#3 
Member
Miles
Join Date: Sep 2011
Posts: 48
Rep Power: 6 
for the moderator: I have placed this thread in a more apropriate forum. But i did not manage to delete it.
Sorry for that. regards 

October 14, 2011, 20:50 

#4  
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,895
Rep Power: 26 
Quote:
In OpenFOAM 2.0.x, the PIMPLE algorithm is used in twoPhaseEulerFoam. If you really have a steadystate in your system, relaxing and increasing the time step should work. First however you have to answer the question "does a steady state exist?". If the answer is "no", the only solution is to perform the simulation dynamically, and average over time. Best, 

October 15, 2011, 19:49 

#5 
Member
Miles
Join Date: Sep 2011
Posts: 48
Rep Power: 6 
Hi,
Thanks for your help as usual ! I agree with you on the difficulty to consider a real steady state in a multiphase flow. Nevertheless, I know the system I want to simulate has already been simulated on FLUENT with the steady state euler/euler solver. Concerning the possibility of including under relaxation to increase my timestep I have two questions please: 1. My actual time step is 0.0002s. What can I expect with underrelaxation? To multiply the timestepd by 2 or 5 or more? I know this question may seem silly. 2. Can you please give me an example of the subdict I need to ad in fvScheme dict. I have tried it before but I think my syntax was bad. Thanks a lot for you help. Miles P.S.: I do not understand the role of underrelaxation in a unsteady simulation… It’s a bit confusing. 

October 15, 2011, 19:58 

#6  
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,895
Rep Power: 26 
Quote:
It this the case of the air injection in liquid? Quote:
It depends on the system. I would say the rule of thumb is "as much as it is possible without having instabilities". The multifluid equations are a pain to solve due to their mathematical nature. Steadystate solvers rely on a set of tricks to stabilize the solution (local relaxation, heavy global relaxation, ...). 2. Quote:
Code:
relaxationFactors { Ua 0.7; Ub 0.7; p 0.3; alpha 0.2; Theta 0.2; k 0.4; epsilon 0.4; } Quote:
It is exactly the same as in the steadystate one: it slows down the changes in the solution while you iterate to find the converged solution for that timestep. To have time accuracy you should not relax at the last iteration (OF takes care of this). Best, 

October 16, 2011, 13:38 

#7 
Member
Miles
Join Date: Sep 2011
Posts: 48
Rep Power: 6 
Hi,
This is indeed the case of the air injected in the water box I have posted earlier. A question about the relaxation script you have posted (thanks for that BTW): Do I have to put the script inside the PIMPLE subdict i.e Code:
PIMPLE {.... relaxationFactors { Ua 0.7; Ub 0.7; p 0.3; alpha 0.2; } } Code:
PIMPLE { … } relaxationFactors { Ua 0.7; Ub 0.7; p 0.3; alpha 0.2; } Sydney 

October 16, 2011, 20:10 

#8 
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,895
Rep Power: 26 
Second choice :)


October 17, 2011, 03:21 

#9 
Member
Miles
Join Date: Sep 2011
Posts: 48
Rep Power: 6 
Thanks alberto.
The strange thing is I did not get any error message with the first syntax! Anyway I have tried the to underrelax. I am still not abble to raise the time step. I still cannot go further than 0.001s. My fv scheme and fvsolutions look like this. If you have the kindness to tell me if they seem correct to you I would appreciate. Thanks for your help anyway. Miles Code:
/** C++ **\  =========    \\ / F ield  OpenFOAM: The Open Source CFD Toolbox   \\ / O peration  Version: 2.0.1   \\ / A nd  Web: www.OpenFOAM.com   \\/ M anipulation   \**/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver GAMG; tolerance 1e08; relTol 0.01; smoother DIC; nPreSweeps 0; nPostSweeps 2; nFinestSweeps 2; cacheAgglomeration true; nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; } pFinal { $p; tolerance 1e08; relTol 0; } "(kepsilon)" { solver PBiCG; preconditioner DILU; tolerance 1e05; relTol 0.1; } "(kepsilon)Final" { solver PBiCG; preconditioner DILU; tolerance 1e05; relTol 0; } alpha { solver PBiCG; preconditioner DILU; tolerance 1e10; relTol 0.1; } alphaFinal { solver PBiCG; preconditioner DILU; tolerance 1e10; relTol 0; } } PIMPLE { nCorrectors 2; nNonOrthogonalCorrectors 4; nAlphaCorr 2; correctAlpha yes; /*pRefPoint (0.0 0.0 0); pRefValue 20000;*/ } relaxationFactors { Ua 0.1; Ub 0.1; p 0.1; alpha 0.1; Theta 0.1; k 0.1; epsilon 0.1; } // ************************************************************************* // Code:
/** C++ **\  =========    \\ / F ield  OpenFOAM: The Open Source CFD Toolbox   \\ / O peration  Version: 2.0.1   \\ / A nd  Web: www.OpenFOAM.com   \\/ M anipulation   \**/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default Euler; } gradSchemes { default Gauss linear; } divSchemes { default none; div(phia,Ua) Gauss limitedLinearV 1; div(phib,Ub) Gauss limitedLinearV 1; div(phib,k) Gauss limitedLinear 1; div(phib,epsilon) Gauss limitedLinear 1; div(phi,alpha) Gauss limitedLinear01 1; div(phir,alpha) Gauss limitedLinear01 1; div(phi,Theta) Gauss limitedLinear 1; div(Rca) Gauss linear; div(Rcb) Gauss linear; } laplacianSchemes { default none; laplacian(nuEffa,Ua) Gauss linear corrected; laplacian(nuEffb,Ub) Gauss linear corrected; laplacian((rho*(1A(U))),p) Gauss linear corrected; laplacian(alphaPpMag,alpha) Gauss linear corrected; laplacian(Galphaf,alpha) Gauss linear corrected; laplacian(DkEff,k) Gauss linear corrected; laplacian(DepsilonEff,epsilon) Gauss linear corrected; laplacian(kappa,Theta) Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p ; } // ************************************************************************* // 

October 24, 2011, 09:25 

#10 
Senior Member
Aurelien Thinat
Join Date: Jul 2010
Posts: 154
Rep Power: 7 
Hi Miles,
Your time step will always be bounded by the max courant number in your domain : the faster the bubbles are, the smaller your timestep will be (on a same mesh). You can try to change the grid if you want to get a higher time step. 

October 26, 2011, 11:07 

#11  
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,895
Rep Power: 26 
Quote:
Best, 

October 26, 2011, 11:20 

#12 
Senior Member
Aurelien Thinat
Join Date: Jul 2010
Posts: 154
Rep Power: 7 
Hi Alberto,
I was looking at bubbleFoam and on the few tests I ran, I had to decrease the time step to keep the courant number under ~0,4. With any higher value, I got some crashs : ( Aurélien 

October 26, 2011, 11:38 

#13 
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,895
Rep Power: 26 
What Courant number was controlling the timestep? One of the phases or the one depending on Ur?
Best, 

October 27, 2011, 04:08 

#14 
Senior Member
Aurelien Thinat
Join Date: Jul 2010
Posts: 154
Rep Power: 7 
I am talking about the "Max Ur Courant Number". The "Courant Number mean" value is 10 times less than the Ur based one (at least on my case).


October 27, 2011, 14:27 

#15 
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,895
Rep Power: 26 
Yes, that's usually the problem. I implemented the Partial Elimination Algorithm (PEA) of Spalding to fix that, and it improves things quite a bit.


November 2, 2011, 04:28 

#16 
Senior Member
Aurelien Thinat
Join Date: Jul 2010
Posts: 154
Rep Power: 7 
Hi Alberto,
Sorry to ask you that on this thread. I'm trying to add a source term for the dispersed phase equation in bubbleFoam (or twoPhaseEulerFoam) and I have a problem with my pressure equation. I don't understand how the code is handling the surface projection of the continuity equation to get the pressure equation. I have already opened a thread at this URL : BubbleFoam  Source Term If you have few time for some help, it would be really welcome. Thank you. 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Time step dependence of convergence behavior of steady state simulations in CFX  Chander  Main CFD Forum  5  December 23, 2013 06:31 
Constant velocity of the material  Sas  CFX  15  July 13, 2010 08:56 
steady state, laminar vof_model  Garima Chaudhary  FLUENT  0  May 24, 2007 03:11 
About the difference between steady and unsteady problems  Lisa  Main CFD Forum  11  July 5, 2000 14:37 
Steady state formulation of turbulence ??  Jitendra  Main CFD Forum  1  June 27, 2000 18:49 