CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM (
-   -   Cylindrical coordinate system - tangential velocity ( December 6, 2010 10:18

Cylindrical coordinate system - tangential velocity

I am running a case in which I have to set up the velocity in cylindrical coordinate system. My case has the axial velocity of 10 m/s and tangential velocity (which is homogeneous in all inlet) of 7 m/s (radial component is zero). With the script for the inlet velocity in the BC, I have the following possibility:

type cylindricalInletVelocity;
axialVelocity 10;
centre (0 0 0); //by default (0 0 0)
axis (0 0 1);
rpm 22.29;
radialVelocity 0;
value uniform (0 0 10);

but this script gives me only an outside tangential velocity (given by the rpm and the radius of the inlet tube) which is not the homogeneous tangential component I need for the simulation (in this case it is proportional to the radius, but this is not my case).

If I set


is not recognized!

does anyone know how to solve this problem?

many thanks

swahono December 6, 2010 21:39

I think you better of using groovyBC.

Download instruction from:

The 0/U dict entry should look something like this:


inlet    {        type            groovyBC;        variables      "rpm=8000.0;Un=55.8;c=sum(pos()*mag(Sf()))/sum(mag(Sf()));n=sum(normal())/mag(sum(normal()));p=pos()-c;r=mag(p)+1.0e-10;R=max(r);xt=vector(n.y,-n.x,0);xT=xt/mag(xt);yt=vector(-n.x*n.z,-n.y*n.z,n.x*n.x+n.y*n.y);yT=yt/mag(yt);";        valueExpression "-Un*normal() + (rpm*pi/30)*((p & yT)*xT - (p & xT)*yT)";
c is the centre of the patch, n is the averaged patch normal. You can easily extend it to have a variation on the patch normal component, for instance a parabolic inlet would only require the addition of *(1-pow(r/R,2)) to Un*normal().

Stefano December 7, 2010 06:07

1 Attachment(s)
Thank you very much for your answer. I didn't know anything about groovy BC, which is actually always a usefull tool since I am new on OF.

My problem, unfortunately, is not regarding a swirling with rpm.

Imagine that I have a tube in which I want to set up a velocity in cylindrical coordinate with two components: an axial one and a tangential one. If I use rpm, the tangential velocity is proportional to radius, but in my case all the intel patch needs the same tangential component magnitude (see the inlet zone on the attachment). This is due to simulate the swirling motion.

Have a look to the picture of the inlet: setting up the axial and tangential component, inside the tube I will have a swirl.

Many thanks for cooperation


All times are GMT -4. The time now is 00:58.