# UDF Defining VOF Free Surface at Outlet

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

 June 2, 2008, 14:01 UDF Defining VOF Free Surface at Outlet #1 Alex Guest   Posts: n/a Sponsored Links I am currently modeling the horizontal flow of water with a free surface and air above (using VOF model in FLUENT). My question relates to the outlet boundary condition. I am trying to define the pressure profile at the outlet. The idea was to loop over the cells at the exit while reading the volume fraction to determine the height of the free surface. With the height of the free surface I was going to define the pressure in the water with a linear relation to the hydrostatic pressure at the bottom of the domain. Hopefully this will allow for the free surface to shift up and down. I have tried several techniques with my UDF but I keep recieving an (ACCESS VIOLATION). I have looked through the UDF manual quite a bit and don't understand where my problem is occuring. I have added my udf used below. If anyone has any idea how to do this, or can see my problem, please let me know. /************************************************** ********************* Outlet pressure profile for multiphase flow with VOF ************************************************** **********************/ #include "udf.h" DEFINE_PROFILE(pressure_profile,t,i) { real x[ND_ND], xx[2], pstat, density; real gravity, yholder, height, vof, pbot; Domain *d; face_t f; cell_t cc; Thread *t; Thread *tt; d=Get_Domain(1); pstat=0; density=998.2; gravity=9.81; yholder=1; height=6; vof=0; pbot= density*gravity*height; thread_loop_c(cc,domain){ begin_c_loop(cc,tt){ vof = C_VOF(cc,tt); C_CENTROID(x,cc,tt); if (vof < 1) { if (x[0]>14.9) { if (x[1] >= yholder) {yholder = x[1];} } } }end_c_loop(cc,tt) } begin_f_loop(f,t){ F_CENTROID(xx,f,t); if (xx[1]>yholder) {F_PROFILE(f,t,i) = pstat;} if (xx[1]<=yholder) {F_PROFILE(f,t,i) = pstat + pbot*(yholder-xx[1])/yholder;} }end_f_loop(f,t) } I would appreciate any help, thank. Alex

 June 6, 2008, 06:56 Re: UDF Defining VOF Free Surface at Outlet #2 Victor Guest   Posts: n/a What are you trying to do, in fact? Are you trying to impose a pressure outlet profile? I can't see why one would do that, why don't you just use a "outflow" BC at the outlet? That should work just fine. Then you'll get the pressure profile at the outlet as a result from Fluent, not as a BC you have to impose. My best regards, Victor

 June 6, 2008, 11:14 Re: UDF Defining VOF Free Surface at Outlet #3 Alex Guest   Posts: n/a Due to the geometry, we have set part of our top boundary as a pressure inlet. Fluent will not allow the use of pressure conditions and outflow conditions. Therefore we were trying to define an approximate pressure outlet profile for a distance downstream.

 June 6, 2008, 11:34 Re: UDF Defining VOF Free Surface at Outlet #4 Victor Guest   Posts: n/a Hi, Ok, maybe I just thought the problem is simpler than it is, but I still don't get one thing: you've just said that you KNOW you have the top of the boundary as a pressure inlet boundary condition. Then you just have to set is as a "pressure inlet" boundary condition with Fluent. I think your problem is that your downstream boundary has one part as a inlet (with know pressure) and other as outlet. If so, just split the face with Gambit, before meshing the volumes, so you'll be able to set two separately boundary conditions for your problem at the downstream. So the pressure inlet is know and you just set it manually. The outlet you set as outflow, so Fluent will use the pressure from the cells just before the boundary faces - it'll consider the hydrostatic pressure automatically as you have gravity activated. If you're not sure about where the boundary condition turns from outflow to inflow, just try first where you think is more logical, and then check for backflow in the solution, so you'll be able to do another mesh and be more accurate in the simulation. That should work... Probably I didn't get it right and I'm just bothering you with useless advices. Sorry if that's the case. My best regards, Victor.

 June 6, 2008, 12:48 Re: UDF Defining VOF Free Surface at Outlet #5 Alex Guest   Posts: n/a Victor, Thanks for the reply, I appreciate the help. The problem that I am testing, has waves which develop and have the potential of changing the water level at the exit with time. That is one of the reasons why I am trying to model a pressure outlet which adjusts to the water height at the exit. Since I cannot specify two separate outlets when the water level at the exit will be changing (because then my mesh would need to change with time). Secondly, unless you know a trick, Fluent will simply not allow me to specifiy a pressure condition (anywhere in the domain) with an outflow boundary condition. It will tell me that solution cannot proceed until I get rid of my pressure BC or my outflow bc. Sorry if I caused any confusion with an unclear problem statement. If my reasoning doesn't make sense please let me know, I am relatively new to VOF modeling.

 August 18, 2010, 01:18 UDF Defining VOF Free Surface at Outlet #6 New Member   Anshul Join Date: Aug 2010 Posts: 1 Rep Power: 0 hi, Alex did ur UDF worked? Did u find any mistake in that? I have a very similar problem.... Please let me know the solution of this? Thanks in advance!

 September 9, 2010, 12:46 wave outlet #7 New Member   Hermanus Henning Join Date: Jun 2010 Posts: 6 Rep Power: 9 ukg, I'm simulating a ship oscillating vertically in water. The waves being generated by the hull need to travel through my 'far-boundaries' (I can't really call them far-wall boundaries) so I defined them as pressure outlets. In the edit BC (pressure outlet) tab in FLUENT, i set open-channel flow and specified the top and bottom of the initial water level. Maybe try that? It worked for me. I hope it helps. All the best Kind regards

 September 14, 2010, 07:41 #8 Senior Member   Jouke de Baar Join Date: Oct 2009 Posts: 126 Rep Power: 9 Hi, perhaps you can use this udf for a pressure outlet: #include "udf.h" DEFINE_PROFILE(static_pressure,thread,position) { real x[ND_ND]; real zcoor; face_t f; begin_f_loop(f,thread) { F_CENTROID(x,f,thread); zcoor = x[2]; F_PROFILE(f, thread, position) =-9.81*999*zcoor; } end_f_loop(f,thread) } See http://repository.tudelft.nl/view/ir...-36dea1f40918/ for a similar case

 September 14, 2010, 09:54 Wave outlet #9 New Member   Hermanus Henning Join Date: Jun 2010 Posts: 6 Rep Power: 9 Hi Jouke, Thank you for the suggestion. I did try implementing a prescribed hydrostatic pressure profile like the one you posted, however I'm not convinced that this boundary condition (BC) will not affect the surface waves generated by my oscillating hull. As far as I understand it, FLUENT's open channel BC tracks the free surface and then determines the hydrostatic pressure profile. Please inform me if I'm misunderstanding these BCs. Thank you for your help Kind Regards

 September 14, 2010, 10:21 #10 Senior Member   Jouke de Baar Join Date: Oct 2009 Posts: 126 Rep Power: 9 You're right, I didn't read your post very well ... I am not familiar with the open channel settings, they might very well be a solution. I've always had inflow problems so didn't use it. Another option you could consider is to have a numerical beach. This is where you have a fairly large domain, with very large cells at the edge. The large cells will act as a filter for the waves, in this way your grid will damp the waves at the edge of the domain. I'm not sure this will work, but it might be an option.

 September 14, 2010, 10:34 wave BC #11 New Member   Hermanus Henning Join Date: Jun 2010 Posts: 6 Rep Power: 9 Thank you Jouke, I've also considered beaches, but due to the large number of simulations that I need to run, I can't afford to implement large computational domains. A lot of people also run their simulations until the waves reach their far-wall boundaries, but this is way to computationally intensive for me So that is why I'm experimenting with the open-channel pressure outlet BC, it looks promising... even though it also has its own limitations If it doesn't work I'll try a numerical beach for sure. Thanks again for your help All the best

 February 20, 2012, 06:29 #12 New Member   Arshiya Hoseyni Chime Join Date: Feb 2012 Posts: 11 Rep Power: 7 Hi Alex and everybody else I am working on the same problem. I was wondering if you wrote any UDF for the inlet velocity for your case? I figured that Fluent assigns a velocity to both water and air in the open channel free surface problem! But, I want the air to have no velocity! I know it has not much effects on the flow but, when I put a gate in my flow I face some trouble! My advisor wants me to write a UDF to set a parabolic water flow from bottom to free surface and then set air velocity on top to zero! Did you end up doing anything like this? Here is my UDF... #include "udf.h" #define Ui 2.0 DEFINE_PROFILE(inlet_x_velocity, thread, position) { real x[ND_ND]; real y; face_t f; begin_f_loop(f,thread) { F_CENTROID(x, f, thread); y=x[1]; } if (y<0.05.) { F_PROFILE(f, thread, position)= Ui*(y*y)/(0.05*0.05); } else F_PROFILE(f,thread, position)=0; end_f_loop(f,thread); } Best regards Arshiya

 March 29, 2012, 12:01 whats the meaning of sum in surface monitoring define for tracking water elevation? #13 New Member   rz Join Date: Mar 2012 Posts: 25 Rep Power: 0 what s the meaning of selecting sum in "define surface monitor" for "Phrases" , "volume fraction" . I have a 2 phase domain, primary phase is air and secondary phase is water. I am going to track surface changes for water, in internet i read that I have to select sum when i intoduce monitors/surface/surface monitors/define surface monitor. my case is a Neumerical Wave Tank. please help me.

August 8, 2012, 16:50
#14
New Member

guoji xu
Join Date: Feb 2012
Posts: 19
Rep Power: 7
Quote:
 Originally Posted by Alex ;151211 I am currently modeling the horizontal flow of water with a free surface and air above (using VOF model in FLUENT). My question relates to the outlet boundary condition. I am trying to define the pressure profile at the outlet. The idea was to loop over the cells at the exit while reading the volume fraction to determine the height of the free surface. With the height of the free surface I was going to define the pressure in the water with a linear relation to the hydrostatic pressure at the bottom of the domain. Hopefully this will allow for the free surface to shift up and down. I have tried several techniques with my UDF but I keep recieving an (ACCESS VIOLATION). I have looked through the UDF manual quite a bit and don't understand where my problem is occuring. I have added my udf used below. If anyone has any idea how to do this, or can see my problem, please let me know. /************************************************** ********************* Outlet pressure profile for multiphase flow with VOF ************************************************** **********************/ #include "udf.h" DEFINE_PROFILE(pressure_profile,t,i) { real x[ND_ND], xx[2], pstat, density; real gravity, yholder, height, vof, pbot; Domain *d; face_t f; cell_t cc; Thread *t; Thread *tt; d=Get_Domain(1); pstat=0; density=998.2; gravity=9.81; yholder=1; height=6; vof=0; pbot= density*gravity*height; thread_loop_c(cc,domain){ begin_c_loop(cc,tt){ vof = C_VOF(cc,tt); C_CENTROID(x,cc,tt); if (vof < 1) { if (x[0]>14.9) { if (x[1] >= yholder) {yholder = x[1];} } } }end_c_loop(cc,tt) } begin_f_loop(f,t){ F_CENTROID(xx,f,t); if (xx[1]>yholder) {F_PROFILE(f,t,i) = pstat;} if (xx[1]<=yholder) {F_PROFILE(f,t,i) = pstat + pbot*(yholder-xx[1])/yholder;} }end_f_loop(f,t) } I would appreciate any help, thank. Alex

Hi, Alex, could you teach me how to get the wave surface at a setted section when the wave is propagating passing by this section.

 Thread Tools Display Modes Linear Mode

 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 OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post Gui CFX 9 July 26, 2007 15:12 Gui CFX 0 July 25, 2007 16:03 novice Siemens 2 October 19, 2005 07:31 Luis CFX 0 April 4, 2005 20:36 nico FLUENT 0 November 9, 2004 16:29