CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Uniform Flow around a cylinder (https://www.cfd-online.com/Forums/openfoam-solving/57765-uniform-flow-around-cylinder.html)

santos March 13, 2009 05:47

Hi Bin! Try to use central
 
Hi Bin!

Try to use central differencing (linear) scheme instead of upwind on the convection. I think its more appropriate for your low Reynolds problem.

Regards,
Jose Santos

zhoubinwx March 13, 2009 06:14

Hi Santos, Let me try CD sc
 
Hi Santos,

Let me try CD scheme, and report here later.

Thank you.

Bin

lin March 13, 2009 06:17

Hi,Bin From the first glanc
 
Hi,Bin

From the first glance of your files,I think you are "lazy",you should just copy it from some other place and never change it,just I do. After my searching the forum,I plan my next step is to change something in the two files.One suggestion is as Jose Luis Santos refer,using higher order scheme than upwind.Also if your velocity is small,you should change the tolerance of U,no guarantee to improve the result,but worth to try.


For the third dimension size,I do not see any obvious improvement too,but I read this suggestion in the forum from the developer.Notice that what I mean is not that the third dimension size should be comparable to the size of the cylinder,but the size of the first grid around the cylinder.

If I were you,I will not take the analytical results so serious,because the analytical result is indeed for a different case than what you are trying to simulate,except the Re number.It's not easy to evaluate how the assumptions in the analytical derivation affect Cd.

ngj March 13, 2009 07:53

Hi Bin I would extract some
 
Hi Bin

I would extract some lines along the radial axes and compare these results with the analytical results. Then you will get a feel of the deviation between the simulated and analytical boundary layer.

Especially, you could see if you boundary layer does not resolve the velocity gradient sufficiently good.

Best regards,

Niels

zhoubinwx March 13, 2009 10:55

Hi Hua Zen and Niels, Thank
 
Hi Hua Zen and Niels,

Thank you for your suggestions.

As for "using higher order scheme than upwind"and "change the tolerance of U", I have made the following modification in fvSchemes and fvSolution files respectively:
div(phi,U) Gauss linear;
and
p PCG
{
preconditioner DIC;
tolerance 1e-12;
relTol 0.01;
};
U PBiCG
{
preconditioner DILU;
tolerance 1e-12;
relTol 0.1;
};
However, I can not get converged results, pls see the log:
Time = 69997

DILUPBiCG: Solving for Ux, Initial residual = 4.85479001865e-05, Final residual = 1.67447473264e-06, No Iterations 2
DILUPBiCG: Solving for Uy, Initial residual = 5.06896545828e-05, Final residual = 4.71628738443e-06, No Iterations 1
DICPCG: Solving for p, Initial residual = 0.00694162440303, Final residual = 6.92499552004e-05, No Iterations 131
DICPCG: Solving for p, Initial residual = 6.90923506458e-05, Final residual = 5.84082992343e-07, No Iterations 51
DICPCG: Solving for p, Initial residual = 6.61152959367e-07, Final residual = 5.78213683191e-09, No Iterations 139
DICPCG: Solving for p, Initial residual = 2.11009841793e-08, Final residual = 2.04101076342e-10, No Iterations 143
time step continuity errors : sum local = 1.01832061429e-21, global = -1.56519101488e-22, cumulative = 1.18498523108e-20
ExecutionTime = 793.5 s ClockTime = 794 s

Time = 69998

DILUPBiCG: Solving for Ux, Initial residual = 2.48311765638e-05, Final residual = 6.84772803551e-07, No Iterations 3
DILUPBiCG: Solving for Uy, Initial residual = 5.02053441742e-05, Final residual = 2.87853528472e-06, No Iterations 2
DICPCG: Solving for p, Initial residual = 0.0157303895822, Final residual = 0.00014742581282, No Iterations 80
DICPCG: Solving for p, Initial residual = 0.000143716280743, Final residual = 1.35346045767e-06, No Iterations 100
DICPCG: Solving for p, Initial residual = 1.35375298735e-06, Final residual = 1.32050674117e-08, No Iterations 147
DICPCG: Solving for p, Initial residual = 1.6946616575e-08, Final residual = 1.56915506155e-10, No Iterations 155
time step continuity errors : sum local = 5.00552481925e-22, global = -9.11982162461e-23, cumulative = 1.17586540945e-20
ExecutionTime = 793.58 s ClockTime = 794 s

Time = 69999

DILUPBiCG: Solving for Ux, Initial residual = 2.38077651352e-05, Final residual = 1.4072658573e-06, No Iterations 2
DILUPBiCG: Solving for Uy, Initial residual = 3.28876452124e-05, Final residual = 4.36425209665e-07, No Iterations 2
DICPCG: Solving for p, Initial residual = 0.00641424933856, Final residual = 5.78238685853e-05, No Iterations 131
DICPCG: Solving for p, Initial residual = 4.82496305812e-05, Final residual = 4.33324957724e-07, No Iterations 43
DICPCG: Solving for p, Initial residual = 5.04520570041e-07, Final residual = 4.57111751424e-09, No Iterations 141
DICPCG: Solving for p, Initial residual = 1.18765927155e-08, Final residual = 1.08764621832e-10, No Iterations 100
time step continuity errors : sum local = 4.75227261696e-22, global = 2.496705833e-23, cumulative = 1.17836211529e-20
ExecutionTime = 793.66 s ClockTime = 794 s

Time = 70000

DILUPBiCG: Solving for Ux, Initial residual = 1.19519643247e-05, Final residual = 4.75905856089e-07, No Iterations 2
DILUPBiCG: Solving for Uy, Initial residual = 3.35627045824e-05, Final residual = 2.95541142512e-06, No Iterations 2
DICPCG: Solving for p, Initial residual = 0.00999944944465, Final residual = 9.12617320076e-05, No Iterations 84
DICPCG: Solving for p, Initial residual = 9.23706787691e-05, Final residual = 8.07128052817e-07, No Iterations 103
DICPCG: Solving for p, Initial residual = 8.16857388457e-07, Final residual = 8.09196470779e-09, No Iterations 136
DICPCG: Solving for p, Initial residual = 1.61059066966e-08, Final residual = 1.36627605826e-10, No Iterations 140
time step continuity errors : sum local = 8.72091539644e-22, global = -8.17798665568e-23, cumulative = 1.17018412863e-20
ExecutionTime = 793.76 s ClockTime = 794 s

I do not know why the simulation cannot converge.

Bin

lin March 13, 2009 11:39

For the tolerance Take this o
 
For the tolerance
Take this one for example:
tolerance 1e-12;
relTol 0.01;

You change only the "tolerance" ,not "relTol".If you check the user guide,you will know this the solver will stop if one of the two is satisfied. It seems in your log that the first one is never used.

As for the scheme,if you still could not get converged result,I have seen somewhere in the forum that one would better first start some other scheme,and then second order.So you could try the simulation from the result of upwind result as a start.


And in fact I have been considering your case.I do not know for your Re,whether some other physical process will be important.Since for your low Re and Re around 1-100,both flows are laminar.If the model could get good
result for 1-100,then the model should be verified already.(Assume that the round-off error not affect the result)

I guess that the difference between your result and analytical result is because the assumption used in the analytical expression.

zhoubinwx March 14, 2009 05:20

Hi Hua Zen, Really apprecia
 
Hi Hua Zen,

Really appreciate that you follow my post and give me some good suggestions.

I will try to play around the "tolerance", "relTol" and "other scheme", in order to get converged results. I find my mesh is too coarse,at far away from the cylinder.

Please follow David's suggestions, to read that paper:
Title: Momentum and heat transfer from cylinders in laminar crossflow at 10-4 =< Re =< 200
Authors: Bogard D.D.; Garrison D.H.; Lange C.F.; Durst F.; Breuer M.
If you could not get it, please let me know.

From now on, I will go back to my micrometer size problem, in order to add my slip boundary code. Welcome to pay attention to my next following post.

Best regards,

Bin

zhoubinwx March 15, 2009 06:10

Dear all, Can I ask one que
 
Dear all,

Can I ask one question about simpleFoam solver:

when I set in the file constant/RASProperties:
RASModel laminar
turbulence off;

what will be fvc::div(nuEff()*dev(fvc::grad(U)().T()) in laminar.C file? Is it 0? Why?

Thank you for your attention.

Bin

zhoubinwx March 15, 2009 08:37

Hello, I know that fvc::div
 
Hello,

I know that fvc::div(nuEff()*dev(fvc::grad(U)().T()) =1/3*nuEff()*grad(div(U)), when it is incompressible flow, it equals to 0.

Now my problem about why it does not converge goes to:
1. mesh quality;
2. div(phi,U), grad(p) and laplacian(nuEff,U) schemes for momentum equation.
3.laplacian((1|A(U)),p), grad(p) schemes for pressure correction equation.

Let me play with different schemes now.

Thank you for your attention.

Bin

zhoubinwx March 16, 2009 01:55

Dear Foamers,

This is a very nice platform. OpenFOAM becomes so nice. Thank you, organizers.

As for my uniform flow around a cylinder, the cylinder radius is 1 micrometer, while upstream, downstream and top distance is 1000 micrometer now.

I have tried to use central central difference scheme for the convective term instead of upwind, it works fine when the computational domain is small, however, it does not work for large computational domain like 1000micrometer or more.


Therefore, I learn from some existing posts, use the following schemes for my low Re flow(Re<1):
divSchemes
{
default none;
div(phi,U) Gauss QUICKV cellLimited leastSquares 1.0;
div(phi,k) Gauss QUICK cellLimited leastSquares 1.0;
div(phi,epsilon) Gauss QUICK cellLimited leastSquares 1.0;
div(phi,R) Gauss linear;
div(R) Gauss linear;
div(phi,nuTilda) Gauss QUICK cellLimited leastSquares 1.0;
div((nuEff*dev(grad(U).T()))) Gauss linear;
}

What I get:
DILUPBiCG: Solving for Ux, Initial residual = 1.03553200448e-05, Final residual = 2.78983276507e-08, No Iterations 3
DILUPBiCG: Solving for Uy, Initial residual = 1.72354405369e-05, Final residual = 1.18743299709e-07, No Iterations 3
DICPCG: Solving for p, Initial residual = 0.000573905389101, Final residual = 5.57363086449e-06, No Iterations 120
DICPCG: Solving for p, Initial residual = 5.54622914e-06, Final residual = 5.3858588214e-08, No Iterations 41
DICPCG: Solving for p, Initial residual = 7.90462819447e-08, Final residual = 7.8670023242e-10, No Iterations 75
DICPCG: Solving for p, Initial residual = 1.29586868496e-08, Final residual = 1.1139023921e-10, No Iterations 121
time step continuity errors : sum local = 2.72055609614e-09, global = 4.27382015215e-11, cumulative = 1.32480768615e-06
ExecutionTime = 863.19 s ClockTime = 865 s

Time = 12103

DILUPBiCG: Solving for Ux, Initial residual = 1.01795685162e-05, Final residual = 1.72202544505e-08, No Iterations 3
DILUPBiCG: Solving for Uy, Initial residual = 1.62845011413e-05, Final residual = 9.25681206317e-08, No Iterations 3
DICPCG: Solving for p, Initial residual = 0.000638536334373, Final residual = 5.94425402805e-06, No Iterations 71
DICPCG: Solving for p, Initial residual = 5.99149129924e-06, Final residual = 5.72198099944e-08, No Iterations 120
DICPCG: Solving for p, Initial residual = 7.1040362187e-08, Final residual = 7.08878632619e-10, No Iterations 130
DICPCG: Solving for p, Initial residual = 1.20902645837e-08, Final residual = 1.11660344159e-10, No Iterations 120
time step continuity errors : sum local = 2.62896976359e-09, global = 6.26439641475e-11, cumulative = 1.32487033011e-06
ExecutionTime = 863.27 s ClockTime = 865 s

Time = 12104

DILUPBiCG: Solving for Ux, Initial residual = 1.01807516553e-05, Final residual = 3.37481036812e-08, No Iterations 3
DILUPBiCG: Solving for Uy, Initial residual = 1.60627753132e-05, Final residual = 1.15491299036e-07, No Iterations 3
DICPCG: Solving for p, Initial residual = 0.000459795854851, Final residual = 4.52798245098e-06, No Iterations 115
DICPCG: Solving for p, Initial residual = 4.53882529717e-06, Final residual = 4.08024951933e-08, No Iterations 47
DICPCG: Solving for p, Initial residual = 5.52843066809e-08, Final residual = 5.38876565464e-10, No Iterations 120
DICPCG: Solving for p, Initial residual = 1.13196894953e-08, Final residual = 1.08566361529e-10, No Iterations 118
time step continuity errors : sum local = 2.41694994532e-09, global = -2.34079605543e-10, cumulative = 1.32463625051e-06
ExecutionTime = 863.34 s ClockTime = 865 s

Time = 12105

DILUPBiCG: Solving for Ux, Initial residual = 1.02192542903e-05, Final residual = 4.30670523412e-09, No Iterations 4
DILUPBiCG: Solving for Uy, Initial residual = 1.62224420005e-05, Final residual = 1.1355526897e-07, No Iterations 3
DICPCG: Solving for p, Initial residual = 0.00062791611302, Final residual = 5.75405936012e-06, No Iterations 118
DICPCG: Solving for p, Initial residual = 5.78040635386e-06, Final residual = 5.73131777609e-08, No Iterations 46
DICPCG: Solving for p, Initial residual = 7.83562369839e-08, Final residual = 7.8192729193e-10, No Iterations 121
DICPCG: Solving for p, Initial residual = 1.25884982906e-08, Final residual = 1.17843703303e-10, No Iterations 126
time step continuity errors : sum local = 2.47922039251e-09, global = -3.53202238733e-10, cumulative = 1.32428304827e-06
ExecutionTime = 863.41 s ClockTime = 865 s

Time = 12106

DILUPBiCG: Solving for Ux, Initial residual = 1.02939664929e-05, Final residual = 4.28857709447e-08, No Iterations 4
DILUPBiCG: Solving for Uy, Initial residual = 1.62688567487e-05, Final residual = 1.36293849551e-07, No Iterations 3
DICPCG: Solving for p, Initial residual = 0.000538634222647, Final residual = 5.34445751033e-06, No Iterations 61
DICPCG: Solving for p, Initial residual = 5.38257563201e-06, Final residual = 5.36484980642e-08, No Iterations 122
DICPCG: Solving for p, Initial residual = 8.34912517693e-08, Final residual = 8.2879980719e-10, No Iterations 70
DICPCG: Solving for p, Initial residual = 1.30555418797e-08, Final residual = 1.28991063003e-10, No Iterations 117
time step continuity errors : sum local = 2.37604132027e-09, global = 2.74819423606e-10, cumulative = 1.32455786769e-06
ExecutionTime = 863.48 s ClockTime = 865 s

Time = 12107

DILUPBiCG: Solving for Ux, Initial residual = 1.03387025777e-05, Final residual = 2.75179481283e-08, No Iterations 4
DILUPBiCG: Solving for Uy, Initial residual = 1.66393167178e-05, Final residual = 1.3199226195e-07, No Iterations 3
DICPCG: Solving for p, Initial residual = 0.000526005312335, Final residual = 5.24477342292e-06, No Iterations 125
DICPCG: Solving for p, Initial residual = 5.62805031808e-06, Final residual = 5.0483500148e-08, No Iterations 44
DICPCG: Solving for p, Initial residual = 6.41034682407e-08, Final residual = 6.3426681675e-10, No Iterations 119
DICPCG: Solving for p, Initial residual = 1.11918294544e-08, Final residual = 1.08216553477e-10, No Iterations 127
time step continuity errors : sum local = 2.29118741072e-09, global = 4.98494068734e-10, cumulative = 1.32505636176e-06
ExecutionTime = 863.55 s ClockTime = 865 s

Time = 12108

DILUPBiCG: Solving for Ux, Initial residual = 1.02048007513e-05, Final residual = 2.61609759552e-08, No Iterations 3
DILUPBiCG: Solving for Uy, Initial residual = 1.66144139216e-05, Final residual = 9.40048099447e-08, No Iterations 3
DICPCG: Solving for p, Initial residual = 0.000504044545101, Final residual = 4.16061686449e-06, No Iterations 126
DICPCG: Solving for p, Initial residual = 4.27252809065e-06, Final residual = 4.17187473555e-08, No Iterations 46
DICPCG: Solving for p, Initial residual = 6.56098091566e-08, Final residual = 6.27565825808e-10, No Iterations 120
DICPCG: Solving for p, Initial residual = 1.35910212776e-08, Final residual = 1.25093758127e-10, No Iterations 122
time step continuity errors : sum local = 2.44065654584e-09, global = 5.19977423449e-10, cumulative = 1.32557633919e-06
ExecutionTime = 863.62 s ClockTime = 865 s

Time = 12109

DILUPBiCG: Solving for Ux, Initial residual = 1.0260817769e-05, Final residual = 2.37941701208e-08, No Iterations 3
DILUPBiCG: Solving for Uy, Initial residual = 1.67815495455e-05, Final residual = 1.18564614583e-07, No Iterations 3
DICPCG: Solving for p, Initial residual = 0.000596011848656, Final residual = 5.05137334017e-06, No Iterations 120
DICPCG: Solving for p, Initial residual = 5.028472864e-06, Final residual = 4.52981055293e-08, No Iterations 47
DICPCG: Solving for p, Initial residual = 6.27294616621e-08, Final residual = 5.98383839521e-10, No Iterations 122
DICPCG: Solving for p, Initial residual = 1.17453754585e-08, Final residual = 1.16917997412e-10, No Iterations 111
time step continuity errors : sum local = 2.49175931067e-09, global = 2.4882672876e-11, cumulative = 1.32560122186e-06
ExecutionTime = 863.7 s ClockTime = 865 s

As we could see from the above log file, the residual of p fluctuates, but no converge.

If anyone has some suggestions, welcome.

Best regards,

Bin

l_r_mcglashan March 16, 2009 05:14

More important than the residuals, perhaps, is what your solution looks like. Have you tried monitoring the values for your solution at different points? How does the solution change?

zhoubinwx March 16, 2009 11:18

Hi McGlashan,

Thank you for your suggestions. As you said, we should rely on the stability of the parameters (u, or p) at some sampling positions. Also when we increase the deltaT, we can find bigger residual. However, my problem now is:when my computational domain becomes larger and larger, the residual is the order of 10^(-2) and the residual for p just fluctuates.

I can not report my simulated results to my professor with such bad residuals. therefore I need to try suitable discretisation schemes (the mesh is ok through checkMesh utility). BTW, welcome for further advice.

I will post my residual plot, as well as U velocity at some sampling position, if I can not find a suitable way out after several days.

Thank you again, McGlashan.

Bin

zhoubinwx March 16, 2009 14:47

Dear all,

Today Mr. Santos pointed out that there maybe something wrong in my mesh, and he is right. Thank you.

Why I made such a mistake using blockMesh?

I follow the equation of U-38, under "2.1.6.2 Changing time and time step", so that I get the expression of the minimum size of the cell.

Here I would like to share with you, after I check very carefully, when R>1, this expression is not correct.


The correct one for R>1 should be: delta_xs=L*(R^(1/(n-1))-1)/(R^(n/(n-1))-1)
Just for your information.


Hi, Santos, thank you again;).
Bin

zhoubinwx March 20, 2009 04:52

1 Attachment(s)
Dear Foamers,

Would you mind if I attach my test case here, because I still have a problem about convergence.

Best regards,

Bin

zhoubinwx March 20, 2009 10:17

One question to myself: is symmetry boundary condition on the top of the computational domain is right? Is it because of this boundary condition that my simulation does not converge?(But if I remember well, when the upstream, downstream and top distances are small, I could get converged results, when they become large and I add more grids correspondingly, no converge...)


:confused:

lin March 20, 2009 10:57

If I were you.

1. More grid around the cylinder
2. change the residual to smaller value

what is the distance from you first grid to the cylinder?

zhoubinwx March 20, 2009 18:01

Hi Lin,

Thank you for your advice.

I am generating and checking again the mesh quality very carefully with blockMesh. Your suggestion of "More grid around the cylinder" is reasonable. although I have already 40 cells on the half cylinder(radius=1micrometer);
As for "change the residual to smaller value", I have set very lower residuals for both p and U. They are of the order 10^12.

Your question: what is the distance from you first grid to the cylinder?
Ans: the distance of my "first grid"(if you mean inlet) to the cylinder is 2000 micrometer; if you mention "first grid" as the grid near the cylinder, then the distance equals to the cell length on the cylinder surface.

I will try my best to eliminate the mesh quality problem....

Thank you agian, Lin.

Bin

l_r_mcglashan March 24, 2009 14:01

I'm quite interested in this, I had similar problems to you but never really had time to sort it out:
See this thread

My drag coefficient would keep increasing. I only get this behaviour for flow around a cylinder. When I did it for a square cylinder I had no such problems.

zhoubinwx March 27, 2009 02:04

Hi, Mr. McGlashan,

I have read your post in the above post. I'm lucky we are on the same boat :)

Recently I have tried to use grading mesh around the the cylinder, after I take a look at these mesh, I could see they aspect ratio is quite good near cylinder. Would you please try to calculate the minimum and maximum size of the mesh between your cylinder and out fictious "cylinder"? So that we know R=max/min, and since we know the distance between these two cylinders, we can get how many cells we need from the equation in UserGuide.pdf case.

I can get better converged result, the only problem I have now is as long as time goes on, Cd decreases.

Good luck.

Bin


P.S. you could also send me your test case, so that we may try together.

santos March 27, 2009 05:14

Hi there!

Allow me to enter your boat, now I am studying creeping flow around a sphere, Reynolds = 0.1. I will be glad to keep up with your progress, and I will keep you up to date with mine as well.

I have run 2 preliminary simulations, the first having the sphere radius 1/10 of the channel height, and the second 1/20. The computed Cd deviates 12% and 8% respectively from Stokes law (24/Re).

Regards,
Jose Santos


All times are GMT -4. The time now is 11:27.