
[Sponsors] 
July 4, 2014, 22:29 
Strange high velocity in centrifugal pump simulation

#1 
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
Hi,all:
I'm simulating a centrifugal pump's impeller with single channel, so I use SRFSimpleFoam to do a steadystate simulation. I refer to the settings of fvsolution and fvschemes http://www.cfdonline.com/Forums/ope...mparation.html The operating condition is n=725rpm and flow rate is 3.06L/s , indicates 0.914m/s at inlet. Here is a image of the pump 

July 4, 2014, 22:32 

#2 
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
here is the initial conditions
k Code:
dimensions [ 0 2 2 0 0 0 0 ]; internalField uniform 0.002; boundaryField { in { type fixedValue; value uniform 0.002; } out { type zeroGradient; } part_1 { type kqRWallFunction; value uniform 0.002; } hub { type kqRWallFunction; value uniform 0.002; } shroud { type kqRWallFunction; value uniform 0.002; } bo { type kqRWallFunction; value uniform 0.002; } bi { type kqRWallFunction; value uniform 0.002; } ss { type kqRWallFunction; value uniform 0.002; } ps { type kqRWallFunction; value uniform 0.002; } peri1 { type cyclic; value uniform 0.002; } peri2 { type cyclic; value uniform 0.002; } } Code:
dimensions [ 0 2 1 0 0 0 0 ]; internalField uniform 0; boundaryField { in { type calculated; value uniform 0; } out { type calculated; value uniform 0; } part_1 { type nutkWallFunction; U Urel; value uniform 0; } hub { type nutkWallFunction; U Urel; value uniform 0; } shroud { type nutkWallFunction; U Urel; value uniform 0; } bo { type nutkWallFunction; U Urel; value uniform 0; } bi { type nutkWallFunction; U Urel; value uniform 0; } ss { type nutkWallFunction; U Urel; value uniform 0; } ps { type nutkWallFunction; U Urel; value uniform 0; } peri1 { type cyclic; value uniform 0; } peri2 { type cyclic; value uniform 0; } } Code:
dimensions [ 0 0 1 0 0 0 0 ]; internalField uniform 0.02; boundaryField { in { type fixedValue; value uniform 0.02; } out { type zeroGradient; } part_1 { type omegaWallFunction; U Urel; value uniform 0.02; } hub { type omegaWallFunction; U Urel; value uniform 0.02; } shroud { type omegaWallFunction; U Urel; value uniform 0.02; } bo { type omegaWallFunction; U Urel; value uniform 0.02; } bi { type omegaWallFunction; U Urel; value uniform 0.02; } ss { type omegaWallFunction; U Urel; value uniform 0.02; } ps { type omegaWallFunction; U Urel; value uniform 0.02; } peri1 { type cyclic; value uniform 0.02; } peri2 { type cyclic; value uniform 0.02; } } Code:
dimensions [ 0 2 2 0 0 0 0 ]; internalField uniform 0; boundaryField { in { type zeroGradient; } out { type fixedValue; value uniform 0; } part_1 { type zeroGradient; } hub { type zeroGradient; } shroud { type zeroGradient; } bo { type zeroGradient; } bi { type zeroGradient; } ss { type zeroGradient; } ps { type zeroGradient; } peri1 { type cyclic; } peri2 { type cyclic; } } Code:
dimensions [ 0 1 1 0 0 0 0 ]; internalField uniform ( 0 0 0 ); boundaryField { in { type SRFVelocity; inletValue uniform ( 0 0 0.914 ); relative no; value uniform ( 0 0 0 ); } out { type zeroGradient; } part_1 { type fixedValue; value uniform ( 0 0 0 ); } hub { type fixedValue; value uniform ( 0 0 0 ); } shroud { type fixedValue; value uniform ( 0 0 0 ); } bo { type fixedValue; value uniform ( 0 0 0 ); } bi { type fixedValue; value uniform ( 0 0 0 ); } ss { type fixedValue; value uniform ( 0 0 0 ); } ps { type fixedValue; value uniform ( 0 0 0 ); } peri1 { type cyclic; } peri2 { type cyclic; } } 

July 4, 2014, 22:37 

#3 
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
I use kOmegaSST，while I'm not sure how to set omega correctly, is there any formulation for estimation?
Here, go on with my simulation. I set a monitor point close to the suction side of blade outlet to see if the calculation is steady, however, I found a rather strange phenomenon Code:
# x 0.09319 # y 0.015 # z 0.00582998 # Time 10 (708.153 482.063 84.2791) 20 (731.865 971.44 361.995) 30 (639.399 492.4 468.239) 40 (300.636 1380.19 1012.41) 50 (194.88 3082.72 231.911) 60 (485.299 3518.82 432.512) 70 (1316 4292.53 538.085) 80 (1928.73 4083.86 1172.74) 90 (480.997 1319.28 2470.87) 100 (539.042 2127.23 957.49) 110 (5375.99 8878.74 2416.83) 120 (36226.3 16654.7 4366.7) 130 (98909.9 4494.45 7662.75) 140 (142791 46558.3 10644.8) 150 (284845 147723 20756.2) 160 (5.24698e+08 2.85525e+07 2.43624e+07) 170 (6.99645e+09 7.93281e+08 3.94233e+08) 180 (1.95323e+10 3.43447e+09 1.16038e+09) 190 (1.62621e+10 1.86164e+09 7.33979e+07) 200 (2.3165e+10 7.9908e+09 6.50242e+08) 210 (3.09272e+10 1.4602e+09 8.878e+08) 220 (2.91008e+10 2.58789e+10 2.71254e+09) 230 (3.83297e+11 1.56371e+11 3.0038e+10) 240 (6.79308e+11 1.97788e+11 4.6686e+10) 250 (1.62821e+12 7.48888e+11 1.02044e+11) 260 (3.34796e+12 2.71107e+12 2.76611e+11) 270 (2.99721e+12 4.7534e+12 5.17778e+11) 280 (1.35913e+13 1.01207e+13 1.61047e+12) 290 (2.26852e+13 1.54068e+13 6.05349e+11) 300 (2.34315e+13 7.01585e+12 2.15218e+12) 310 (7.66376e+12 4.36892e+12 1.3551e+12) 320 (4.6655e+12 3.1273e+12 1.12806e+12) 330 (4.17135e+12 3.8903e+12 9.72603e+11) 340 (4.65089e+12 3.1797e+12 1.08913e+12) 350 (6.25636e+12 1.81316e+12 2.67658e+12) 360 (9.87292e+12 8.66844e+11 5.06165e+12) 370 (2.36429e+14 2.11397e+14 4.20645e+13) 380 (2.22321e+15 2.59051e+15 4.26863e+14) 390 (9.6626e+15 1.05104e+16 2.15745e+15) 400 (9.61184e+15 1.18926e+16 1.85749e+15) 410 (8.7657e+15 9.30405e+15 1.3393e+15) 420 (1.17965e+16 7.26078e+15 1.05772e+15) 430 (1.11844e+17 1.40191e+17 4.95792e+15) 440 (2.0703e+17 1.32351e+17 3.3317e+16) 450 (2.90402e+17 1.03778e+17 3.86379e+16) 460 (5.23649e+17 1.26167e+17 7.09394e+16) 470 (7.28269e+17 1.90686e+17 9.7137e+16) 480 (4.82389e+17 1.83384e+17 7.39091e+16) 490 (5.67745e+17 9.90307e+16 6.05046e+16) 500 (7.40366e+17 1.39949e+17 3.92672e+16) 510 (1.71386e+18 4.54933e+17 6.3212e+15) 520 (1.36598e+18 6.88643e+16 1.24439e+17) 530 (2.43043e+18 2.19435e+17 2.04526e+17) 540 (7.27807e+18 1.60216e+18 4.18682e+17) 550 (4.83848e+19 1.06007e+19 1.18041e+19) 560 (2.62584e+20 2.47255e+20 8.68161e+19) 570 (4.31522e+20 4.36771e+20 1.06853e+20) 

July 4, 2014, 22:39 

#4 
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
fvschemes
Code:
ddtSchemes { default steadyState; } gradSchemes { default Gauss linear; } divSchemes { default none; div(phi,U) Gauss SFCD; div(phi,Urel) Gauss SFCD; div(phi,k) Gauss linear; div(phi,epsilon) Gauss linear; div(phi,omega) Gauss linear; div(phi,v2) Gauss limitedLinear 0.5; div(phi,f) Gauss limitedLinear 0.5; div(phi,R) Gauss linear; div(R) Gauss linear; div(phi,nuTilda) Gauss upwind; div((nuEff*dev(T(grad(Urel))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; laplacian(nuEff,U) Gauss linear corrected; laplacian(nuEff,Urel) Gauss linear corrected; laplacian((1A(U)),p) Gauss linear corrected; laplacian((1A(Urel)),p) Gauss linear corrected; laplacian(DkEff,k) Gauss linear corrected; laplacian(DepsilonEff,epsilon) Gauss linear corrected; laplacian(DomegaEff,omega) Gauss linear corrected; laplacian(DREff,R) Gauss linear corrected; laplacian(DnuTildaEff,nuTilda) Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p ; } Code:
solvers { p { solver PCG; preconditioner DIC; tolerance 1e06; relTol 0.01; } Urel { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e7; relTol 0.01; } k { solver PBiCG; preconditioner DILU; tolerance 1e07; relTol 0.01; } omega { solver PBiCG; preconditioner DILU; tolerance 1e07; relTol 0.1; } } SIMPLE { nNonOrthogonalCorrectors 2; } relaxationFactors { fields { p 0.3; } equations { Urel 0.4; k 0.4; omega 0.4; } } 

July 4, 2014, 22:42 

#5 
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
Can anyone give me some advice? I'm struggling for several days
By the way, the residual is also always among 0.30.5 

July 5, 2014, 02:56 

#6 
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
hello,everyone, I tried another way, still, the problem stays the same. I think it's due to the periodic boundary, so I generate a full impeller's mesh(unstructured) and with only 3 boundaries: inlet, wall, outlet
All the setting are the same as before except without periodic boundaries, while, the velocity and pressure continues to grow and finally crashed. I have already checked the mesh, it's ok, so there is no doubt about the geometry(for example, transform mesh with a wrong scale).The only problem my be the boundary conditions, the schemes used won't cause this unreal result , I think 

July 7, 2014, 03:07 

#7 
Senior Member

Hi,
I believe it is the schemes that cause your divergence. You use linear for the convection in the turbulent equations, but these have very high gradients near solid walls. This will lead to an unstable system. Also the SFCD scheme is not very stable. You could better use limitedLinear or perhaps even upwind for k or omega. Regards, Tom 

July 7, 2014, 08:04 

#8  
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
Quote:
Thank you for your reply. I changed the scheme and solution as the mixer tutorial and use Ke instead, now the result is converged. Xianbei 

July 8, 2014, 23:05 

#9  
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
Quote:
I'm facing another problem I want to do LES calculation with the same Mesh. In fact, after computing with RANS, the y+ turns out to be <2.5 around the blade, so it's fine enough to do LES. While, when I use SRFPimpleFoam to accomplish this, the Courant number goes large very quickly in a given timestep size(deltaT), while, if I use Code:
adjustTimeStep yes; maxCo 50; All the boundary conditions are the same as in RANS except the new nuSgs,which is Code:
dimensions [ 0 2 1 0 0 0 0 ]; internalField uniform 0; boundaryField { bottomWall { type zeroGradient; } topWall { type zeroGradient; } part_1 { type zeroGradient; } in { type calculated; value uniform 0; } out { type calculated; value uniform 0; } ps { type zeroGradient; } ss { type zeroGradient; } bi { type zeroGradient; } bo { type zeroGradient; } shroud { type zeroGradient; } hub { type zeroGradient; } peri1 { type cyclic; } peri2 { type cyclic; } } Code:
PIMPLE { nOuterCorrectors 2; nCorrectors 2; nNonOrthogonalCorrectors 2; pRefCell 0; pRefValue 0; } Any advice is highly appreciated Xianbei 

July 9, 2014, 03:02 

#10 
Senior Member

Hello Xianbei,
I think using maxCo = 50 for LES may not be accurate enough. You will probably not resolve the smallest time scales. That being said, using only two outer correctors and maxCo=50 is probably the cause of the divergence. I would suggest to reduce your maxCo and/or increase the number of outer correctors for the PIMPLE solver. You may also want to use residualControl for the convergence within a time step. Regards, Tom 

July 9, 2014, 09:32 

#11  
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
Quote:
Thank you very much. I searched a lot about the divergence in the forum and found it should be more in outer correctors for PIMPLE. I'll try and report the result soon. Xianbei 

July 10, 2014, 03:44 

#12  
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
Quote:
I tried both your methods, use 20 outer correctors and residual control of p at 1e2 and U 1e5, also, the maxCo is limited to 5, the calculation is now proceeding well.Thank you very much A quick question about the p residual: Is it acceptable for a residual of p to 1e2. When setting this, the calculation can converge in 20 steps. Xianbei 

July 10, 2014, 04:18 

#13 
Senior Member

Hi Xianbei,
Good to hear it is running. 1e2 sounds like it is not enough, but you can only tell if you compare the results to experiment or literature. I would use at least 1e4, but if 1e2 is accurate enough than it is ok. I think that would be up to you to decide. Kind regards, Tom 

July 10, 2014, 07:08 

#14  
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
Quote:
Yes,it's do sounds not enough. I run another case which is 40 outercorrectors and p 1e3, however, most steps take the largest 40 correctors, which means a tendency of not converge to 1e3. So I'll keep the 1e2 case and see if the result is acceptable(comparing with experiment). Thank you. Xianbei 

July 10, 2014, 21:50 

#15  
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
Quote:
Looking for help again I find a unexpected fact that if I decompose the domain into more parts in order to calculate in parallel, the residual rises. For example, if I decompose it into 4 parts, the residual can be below 1e5 of p ,with GAMG solver and 1 nNonorthogonalCorrector, while if I decompose it into 16, the solution can never get a residual below even 1e4. It's quite unacceptable for me, if I want to improve the accuracy, the speed will slow down with only 4 processors. Is there anything I can do to avoid this? Xianbei 

July 10, 2014, 23:07 

#16  
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
Quote:
Sorry for annoying. I tried many times, and find that the residual do be influenced by the number of processors used. I use the scotch method to decompose. The conclusion I can draw is that for my case, the maximum number of processor is 8 to make sure the residual of p to be below 1e5. However, I still insist OF can be paralleled with as many processors as possible without accuracy loss. Xianbei 

July 11, 2014, 04:30 

#17 
Senior Member

Hi Xianbei,
No problem, I will only answer when I have time available and if someone else can join the discussion and help you, that would be great as well. About the decomposition, I remember a discussion during an OpenFOAM workshop where something similar was shown. That is to say, depending on the number of cpus used, the instantaneous results for a particular case (LES as well) differed, but the statistical parameters (average forces, standard deviation, fluctuation scales etc.) where all in agreement. I believe the comment was that the solver tolerance (fvSolution) should have been reduced by 1 or 2 orders of magnitude to have a more consistent development of the flow between different decompositions. The mathematical reason is that you do solve a slightly different matrixvector system and the nonlinearity of the equations can cause this effect. So I can only suggest that you tighten the tolerance on your final subiteration to have less difference between runs. Otherwise you maybe get lower residuals with 15 cpus instead of 16. Kind regards, Tom 

July 11, 2014, 07:33 

#18  
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
Quote:
Thank you for the details. You have helped me a lot, I really appreciate very much. Yes, maybe the result won't be affected much, however, only the residual is low enough can make one believe that the calculation is accurate enough. Thank you for your suggestion, I'll try it, if no further improvement is seen, I'll use 8 processor(Thanks God that the mesh size is not so big, 0.3 million) Xianbei 

July 14, 2014, 23:04 

#19  
Senior Member
Huang Xianbei
Join Date: Sep 2013
Location: Yangzhou,China
Posts: 284
Rep Power: 7 
Quote:
I find another strange thing about the yPlus. When I use RANS model in the calculation, yPlusRAS returns the y+<5 on the walls which I have specified a small distance at the first layer of grid. I run the LES case for another 1 day and the flow is steady (the monitor velocity varies much less), then I run the yPlusLES and find that the yPlus returns is much bigger than the RANS case, the yPlus is almost twice of that!! Have you ever experience this? Xianbei 

July 15, 2014, 03:35 

#20 
Senior Member

Hi,
I have not performed any real LES cases, just played around a bit, so I can not say I have seen something similar. Tom 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Urgent problem! Appreciate all you help!! 3D Centrifugal Pump set up problems!  RR2  FLUENT  5  April 13, 2012 08:17 
Centrifugal Pump Cavitation problem or not.  ismael.s  CFX  13  February 27, 2012 09:00 
velocity profile export from a simulation onto another  sudhirlv  STARCCM+  1  September 12, 2010 18:57 
Fluent simulation of centrifugal pump  yvonne  ANSYS  3  January 28, 2010 05:48 
Peripheral pump CFD simulation  Nevel  Main CFD Forum  0  October 8, 2009 01:09 