Incorrect Drag and Drag Coefficient for flow over a cylinder
Hello all,
I've been struggling with this for a while and I'm hoping that somebody here can give me a hand with it. I'm trying to simulate flow over a cylinder and compare that to past numerical studies to see if I am simulating correctly. Initially I am just checking to see if drag forces and drag coefficients match up to theoretical and numerical simulations. From past results I see that for what I have I should be getting a drag force of about 6.57e7N and a drag coefficient of about 1. I am getting a drag force of 1.5e7 (pressure force only) and a drag coefficient of about 2.63. Here are some details about my simulation  Simulating air at Re=100 (flow velocity = 7.834e4m/s to give that Re)  2D simulation of cylinder with 1m radius (zdirection has length of 0.1m)  total control volume size is (217.77, 41.97) with cylinder at (41.97, 0) symmetry plane along xaxis  total mesh size is (379, 73) with grading all towards the cylinder  total simulation time is 100 000s to give ~40 flow cycles over the body  I am using RAS turbulent model with kepsilon model  Below is my U, p, nut, k and epsilon 0 files as well as my controlDict file to show how I am printing out forces and forcecoeffs: U: boundaryField { inlet { type freestream; freestreamValue uniform (7.834e4 0 0); } backOutlet { type freestream; freestreamValue uniform (7.834e4 0 0); } cylinder { type fixedValue; value uniform (0 0 0); } frontAndBack { type empty; } topOutlet { type freestream; freestreamValue uniform (7.834e4 0 0); } bottomOutlet { type symmetryPlane; } p: dimensions [0 2 2 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type freestreamPressure; } backOutlet { type freestreamPressure; } cylinder { type zeroGradient; } frontAndBack { type empty; } topOutlet { type freestreamPressure; } bottomOutlet { type symmetryPlane; } } nut: dimensions [0 2 1 0 0 0 0]; internalField uniform 6.089e4; //nut = C*k^2/epsilon where C = 0.09 boundaryField { inlet { type freestream; freestreamValue uniform 6.089e4; } backOutlet { type freestream; freestreamValue uniform 6.089e4; } cylinder { type nutWallFunction; value uniform 0; } topOutlet { type freestream; freestreamValue uniform 6.089e4; } bottomOutlet { type symmetryPlane; } frontAndBack { type empty; } } k: dimensions [0 2 2 0 0 0 0]; internalField uniform 3.069e7; boundaryField { inlet { type freestream; freestreamValue uniform 3.069e7; } backOutlet { type freestream; freestreamValue uniform 3.069e7; } cylinder { type kqRWallFunction; value uniform 0; } topOutlet { type freestream; freestreamValue uniform 3.069e7; } bottomOutlet { type symmetryPlane; } frontAndBack { type empty; } } epsilon: dimensions [0 2 3 0 0 0 0]; internalField uniform 1.4e11; //epsilon = C^0.75*k^1.5/l where C = 0.09 and l = characteristic length boundaryField { inlet { type freestream; freestreamValue uniform 1.4e11; } backOutlet { type freestream; freestreamValue uniform 1.4e11; } cylinder { type epsilonWallFunction; value uniform 0; } topOutlet { type freestream; freestreamValue uniform 1.4e11; } bottomOutlet { type symmetryPlane; } frontAndBack { type empty; } } controlDict: application simpleFoam; //steadystate solver for incompressible, turbulent flow startFrom latestTime; startTime 0; stopAt endTime; endTime 100000; //~40 revolutions deltaT 5; writeControl adjustableRunTime; writeInterval 1000; purgeWrite 0; writeFormat ascii; writePrecision 6; writeCompression uncompressed; timeFormat general; timePrecision 6; runTimeModifiable yes; adjustTimeStep yes; maxCo 0.5; maxDeltaT 1.5; functions ( forces { type forces; functionObjectLibs ("libforces.so"); patches (cylinder); rhoName rhoInf; rhoInf 1.2; CofR (0 0 0); outputControl outputTime; outputInverval 1; } forcesCoeffs { type forceCoeffs; functionObjectLibs ( "libforces.so" ); // lib to load outputControl timeStep; outputInterval 1; patches ( cylinder // change to your patch name ); // name of fields pName p; UName U; rhoName rhoInf; log true; // dump to file rhoInf 1.2; CofR ( 0 0 0 ); liftDir ( 0 1 0 ); dragDir ( 1 0 0 ); pitchAxis ( 0 0 0 ); magUInf 7.834e4; lRef 2; Aref 0.2; } ... If anyone has any ideas for my problem I would really appreciate it. I know my description is a little long but I really have no idea where my problem may be. I think it has to do with my initial pressure conditions because my pressure field also doesn't match up to past simulation, but I am really not sure. A million thanks to anyone that can help =D J 
At a Re of 100, would the flow not be laminar? Have you tried turning off the turbulence model? Also, are you comparing apples to apples, i.e. are you comparing total drag to total drag, viscous drag to viscous drag, etc?

Hi, thanks for the reply.
Looking at the solvers, I guess I would need to use icoFoam. Is there anything that is used for laminar steadystate problems? Does that even exist? Thanks J 
In Re=100 you need u unsteady simulation because of vortex shedding behind cylinder
therfore, Cd will be time averaged CD over simulation time 
I believe it calculates it at every iterations, and then from there I can take the average of them to get the cd of the cylinder, right?

Also for my drag coefficient output, why does it start at a high value, then continuously decreases, appearing to asymptotically approach a value (the value I'm assuming is the actual drag coefficient)?
Thanks 
Quote:
In response about the Reynolds number. The reason i chose to use turbulent modelling was because I read that for flow around an object, purely laminar flow exists only until Re=0.1. So, to be safe, I decided to use a turbulence model. Does this sound correct? Thanks 
I don't know where you read the condition on the Re, but for practical purposes the flow around a cylinder at a Re = 100 will be laminar, and probably massively unsteady (I can't remember the cutoff where the separation bubble collapses into a vortex street.) I am unfamiliar with icoFoam, so I cannot answer any questions about that code. The behavior you describe for the drag coefficient is not unexpected, since the initial drag calculation will use a velocity gradient at the surface much larger than what the actual solution is  after one iteration or timestep, the approximate gradient at the surface is Ufreestream/ds, where ds is the distance of the first node off the wall. This assumes a noslip wall, and is obviously much larger than the final velocity gradient, and resultant shear stress, will be.

hello every1,
i am also new to openfoam. i have done similar sim ulation for flow acrodss a cylinder. i get drag n lift forces correctly, i.e accor ding to vortex shedding i am getting variation in lift forces. but the coeff of drag n lift Cd n Cl, i am getting them constant throughout. i am unable ti digest this contrasting behavour. please guide me thr this. thanks n regards malhar. 
All times are GMT 4. The time now is 05:43. 