
[Sponsors] 
December 14, 2013, 16:29 
groovyBC for oscillatory flow

#1 
New Member
Skywalker
Join Date: Aug 2012
Posts: 1
Rep Power: 0 
Hi Foamers,
I'm using groovyBC for oscillatory flow in a simple rectangular box, it's only a test. Six boundaries in this case, front, back, top and bottom are all slip. inlet and outlet are set to groovyBC. The solver is pisoFoam. The velocity filed on left and right are set as: inlet { type groovyBC; valueExpression "vector(Um*cos(ome*time()),0,0)"; variables "Um=1.95;ome=2*pi/5.5;"; timelines (); value uniform (1.95 0 0); } outlet { type groovyBC; valueExpression "vector(Um*cos(ome*time()),0,0)"; variables "Um=1.95;ome=2*pi/5.5;"; timelines (); value uniform (1.95 0 0); In this case, U=1.95*cos(ome*t). Since dp/dx=dU/dt=1.95*ome*sin(ome*t), so the BC of pressure filed is set as: inlet { type groovyBC; gradientExpression "Um*ome*sin(ome*time())"; variables "Um=1.95;ome=2*pi/5.5;"; timelines (); fractionExpression "0"; value uniform 0; } outlet { type groovyBC; gradientExpression "Um*ome*sin(ome*time())"; variables "Um=1.95;ome=2*pi/5.5;"; fractionExpression "0"; timelines (); value uniform 0; } Both velocity and pressure filed blows up in a few seconds, I don't know if there is mistake in it... 

December 15, 2013, 07:08 

#2  
Assistant Moderator
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,226
Rep Power: 50 
Quote:
As it seems to take only a few timesteps to blow up I'd suggest that you write out every timestep and have a look at them. Usually then it becomes painfully clear what the problem is. If it takes a bit longer you can use purgeWrite in the controlDict to keep only the last few. Another problem can be that you only specify Neumanconditions for the pressure. Usually OF then needs a referencepressure from you. I'm not 100% sure but as groovyBC is a mixedBC it is possible that OF says "Ah. there's a Dirichlettype BC here. Don't need a reference pressure". Remedy here would be to fix the pressure on one boundary
__________________
Note: I don't use "Friend"feature on this forum out of principle. Ah. And by the way: I'm not on Facebook either. So don't be offended if I don't accept your invitation/friend request 

November 10, 2018, 16:32 

#3 
Senior Member
alberto
Join Date: Apr 2016
Location: Mexico
Posts: 117
Rep Power: 9 
Hi, i want to simulate the pulsatile flow in the brain, and i took the syntaxis from here.
We define the vector velocity with his components, but I want to use a velocity normal to the inlet surface or flow rate, because my inlet geometry is not only in one plane. could you help me please! inlet { type groovyBC; valueExpression "vector(R*(1+(A1*cos(2*1*pi*ome+B1))+(A2*cos(2*2*pi*ome+B2))+(A3*cos(2*3*pi*ome+B3))+(A4 *cos(2*4*pi*ome+B4))+(A5*cos(2*5*pi*ome+B5))),0,0) "; variables "A1=0.29244;A2=0.5908;A3=0.2726;A4=0.198;A5=0.1124 ;B1=4.027;B2=6.509;B3=1.913;B4=1.461;B5=0.074;Te=0 .75;R=0.3324;ome=time()/Te;"; timelines (); value uniform (0.093 0 0); } 

November 11, 2018, 12:19 

#4  
Assistant Moderator
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,226
Rep Power: 50 
Quote:
In groovyBC the function normal() gives you the unit vector normal to each patch face. So by multiplying it (watch the sign) with your velocity you should get what you need
__________________
Note: I don't use "Friend"feature on this forum out of principle. Ah. And by the way: I'm not on Facebook either. So don't be offended if I don't accept your invitation/friend request 

November 11, 2018, 13:46 

#5 
Senior Member
alberto
Join Date: Apr 2016
Location: Mexico
Posts: 117
Rep Power: 9 
Thrank you my friend, now I am trying this:
{ type groovyBC; valueExpression "R*(1+(A1*cos(2*1*pi*ome+B1))+(A2*cos(2*2*pi*ome+B2))+(A3*cos(2*3*pi*ome+B3))+(A4 *cos(2*4*pi*ome+B4))+(A5*cos(2*5*pi*ome+B5)))"; variables "A1=0.29244;A2=0.5908;A3=0.2726;A4=0.198;A5=0.1124 ;B1=4.027;B2=6.509;B3=1.913;B4=1.461;B5=0.074;Te=0 .75;R=0.3324*normal();ome=time()/Te;"; timelines (); value uniform (0.093 0 0); } I am multiplying the R*normal(), but could you explainme what the sign mean? What will be the result with () or (+), I will try both. 

November 12, 2018, 07:53 

#6  
Assistant Moderator
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,226
Rep Power: 50 
Quote:
Exactely. I keep forgetting whether normal() points in or out. So I leave finding the correct sign as "an exercise for the reader" (that is the usual formulation if a textbook author isn't sure about the details)
__________________
Note: I don't use "Friend"feature on this forum out of principle. Ah. And by the way: I'm not on Facebook either. So don't be offended if I don't accept your invitation/friend request 

Thread Tools  Search this Thread 
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
mass flow in is not equal to mass flow out  saii  CFX  12  March 19, 2018 05:21 
Different flow patterns in CFX and Fluent  avi@lpsc  FLUENT  4  April 8, 2012 06:12 
Flow meter Design  CD adapco Group Marketing  Siemens  3  June 21, 2011 08:33 
potential flow vs. Euler flow  curious ...  Main CFD Forum  23  July 21, 2006 07:40 
Plug Flow  Franck  Main CFD Forum  3  September 4, 2003 05:57 