CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM

Swirl input using groovyBC

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree1Likes
  • 1 Post By tuominen

Reply
 
LinkBack Thread Tools Display Modes
Old   February 14, 2011, 19:59
Default Swirl input using groovyBC
  #1
Member
 
Join Date: Nov 2010
Posts: 50
Rep Power: 5
usergk is on a distinguished road
Hello Foamers,

I am trying to implement swirl input in a cylindrical tube (axis along z dir). I came across the groovyBC code to implement swirl input:

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(0,n.z,-n.y);xT=xt/mag(xt);yt=vector(n.y*n.y+n.z*n.z,-n.x*n.y,-n.x*n.z);yT=yt/mag(yt);";
valueExpression "-Un*normal() + (rpm*pi/30)*((p & yT)*xT - (p & xT)*yT)";
}

Can someone explain what xt, yt, and (p & yT)*xT - (p & xT)*yT refer to?

Thanks so much,

Regards,
gk

Last edited by usergk; February 15, 2011 at 20:31.
usergk is offline   Reply With Quote

Old   February 15, 2011, 12:43
Default
  #2
Member
 
Join Date: Nov 2010
Posts: 50
Rep Power: 5
usergk is on a distinguished road
Hello,

Can anyone provide some hints here?

Many thanks,
gk

Last edited by usergk; February 15, 2011 at 20:32.
usergk is offline   Reply With Quote

Old   February 16, 2011, 03:08
Default
  #3
Senior Member
 
Bernhard
Join Date: Sep 2009
Location: Delft
Posts: 787
Rep Power: 11
Bernhard is on a distinguished road
They are defined in variables. If you don't understand the formulation, make a sketch, using the known vectors (pos and normal), in a random orientation. In your sketch you will understand each term immediately. (With the assumption that this is a correct implementation of course )
Bernhard is offline   Reply With Quote

Old   February 16, 2011, 03:16
Default
  #4
New Member
 
L.Tuominen
Join Date: Jul 2010
Posts: 8
Rep Power: 6
tuominen is on a distinguished road
Quote:
Originally Posted by usergk View Post
Hello Foamers,

I am trying to implement swirl input in a cylindrical tube (axis along z dir). I came across the groovyBC code to implement swirl input:

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(0,n.z,-n.y);xT=xt/mag(xt);yt=vector(n.y*n.y+n.z*n.z,-n.x*n.y,-n.x*n.z);yT=yt/mag(yt);";
valueExpression "-Un*normal() + (rpm*pi/30)*((p & yT)*xT - (p & xT)*yT)";
}

Can someone explain what xt, yt, and (p & yT)*xT - (p & xT)*yT refer to?

Thanks so much,

Regards,
gk
Hi

I have used following code:
Code:
type         groovyBC;
variables
(
    "yp=pos().y;"
    "xp=pos().x;"
    "r=sqrt(pow(xp,2)+pow(yp,2));"

    "U_ax=31.35;"
    "U_t=20.97;"
    "theta=asin(xp/r);"
    "U_tx=sqrt(pow(U_t*cos(theta),2));"
    "U_ty=-U_t*sin(theta);"
);
valueExpression "vector ( U_tx, U_ty, U_ax )";
U_ax is axial velocity along z-axis and U_t is tangential velocity. U_tx and U_ty are tangential velocity's x- and y-components. Sqrt and pow in U_tx only make sure that x component is always positive (I have modelled only sector, not full cylinder).

Lasse
Rickard.Solsjo likes this.
tuominen is offline   Reply With Quote

Old   February 16, 2011, 11:43
Default
  #5
Member
 
Join Date: Nov 2010
Posts: 50
Rep Power: 5
usergk is on a distinguished road
Thanks a lot for the inputs! Really appreciate it!

I was able to get it running using Lasse's code.

gk
usergk is offline   Reply With Quote

Old   July 25, 2013, 08:02
Default
  #6
New Member
 
Federica Farisco
Join Date: Jul 2013
Posts: 2
Rep Power: 0
FedericaF is on a distinguished road
Hello,

I used funkySetBoundary in openfoam 1.7 to generate a swirl in the inlet patch for a sector of a cylinder and it works. I have attached below the file funkySetBoundaryDict used.


Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.7.1 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

velocityswirl {
 field U;
   expressions
   (
       {    
            target value;
            patchName inlet;
                       
            variables       "rpm=1000.0;Un=10;c=sum(pos()*mag(Sf()))/sum(mag(Sf()));n=sum(normal())/mag(sum(normal()));n=sum(normal())/mag(sum(normal()));p=pos()-c;r=mag(pos()-vector(0,0,1))+1.0e-10;R=max(r);xt=vector(0,n.z,-n.y);xT=xt/mag(xt);yt=vector(n.y*n.y+n.z*n.z,-n.x*n.y,-n.x*n.z);yT=yt/mag(yt);";
                   
                          expression "-Un*normal() + (rpm*pi/30)*(((pos()-c) & yT)*xT-((pos()-c) & xT)*yT)";
       }
);
}  

//!!! in "variables" do not leave any space between the definitions of two variables and in "espression" try to replace the name of few variables with their definitions !!!

//!!! c=sum(pos()*mag(Sf()))/sum(mag(Sf())) works just for full patches; for other cases you have to set manually !!!
FedericaF is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Howe to get swirl velocity component in 2D axisymtric swirl modeling Perra Fluent UDF and Scheme Programming 1 December 12, 2009 02:37
Swirl in Pressure Swirl Atomizer varunrajendra FLUENT 0 August 19, 2009 12:09
Quantifying Swirl Ianto Main CFD Forum 0 April 27, 2009 10:54
2d axisymmetric with swirl heather OpenFOAM Running, Solving & CFD 5 July 28, 2005 17:20
Swirl in backflow on pressure outlets Jonas Larsson FLUENT 17 February 3, 2000 02:14


All times are GMT -4. The time now is 10:01.