Spillway Analysis Fixed Water Surface Boundary Condition
Hello All,
I have a question regarding boundary conditions for free surface (VOF) simulations using the interFoam solver (v1.7). This is my first real adventure into CFD  I am still learning. I am trying to set up and run a spillway validation case against the physical model results from the Army Corps of Engineers for a standard WES ogee spillway, as has been done with other commercial codes. So far I have successfully generated the mesh at a few different resolutions, and have been able to run the simulation and view the results for both laminar and RAS turbulence models. However, and this is where my question comes in, I have only been able to set up the case with a fixedVelocity inlet and zeroGradient outlet. This approach seems to be okay if the flow rate is known and the performance for that flow rate is needed. What I am having trouble figuring out is how to specify a fixed inlet water surface elevation boundary condition. I presume that it would be a pressure type boundary condition, but haven't had any success figuring it out. Does anyone have any suggestions on how to set this up? I have searched extensively through the forums and have tried to look at the source code to figure it out without success. Also I am in search of a good CFD reference to help me really understand the subject if anyone knows of one. FYI  using the velocity inlet the results are quite good  I believe after some work with the boundary conditions the results will be very good. Thanks, Matt 
Hello Again,
Thanks to everyone who has read my post. Could someone provide a little feed back? Was my question not clear? Is it not possible using current solvers? Is the answer obvious and I am just not searching for the correct terms? Thanks, Matt 
Hi Matthew,
About the boundary condition, the whole problem setup must satisfy the continuity equation. That means that the water that flows through the spillway must be replaced somehow. One way to do it is having an inflow condition in some surface, like you did. I suppose another option would be having big reservoir such that it’s level slowly decreases as the water flows out. I think it’s also possible to implement a volumetric source of fluid in the reservoir. This source would then replace the fluid that is flowing out. I don’t know if these other options would be easy to implement, perhaps the best alternative is to use the inflow condition, like you did. About the cfd references, I would recommend, in increasing level of difficulty and completeness: 1) Numerical Heat Transfer and Fluid Flow by Patankar 2) Computational Methods for Fluid Dynamics by Ferziger and Peric I also suggest that you look at this tread: http://www.cfdonline.com/Forums/ope...ulicjump.html 
Hi Paulo,
Thank you very much for the reply. I understand what you are saying regarding the continuity equation  maybe the approach I have taken is the best, however, the Waterways Experiment Station (WES) standard spillway shape and the expected nappe profile are all based on head and not flow. I would prefer to not go through an iterative procedure varying flows until I get the head correct  although I will if I have to. I think I would like to look into setting an upstream water surface elevation (at the inlet) a little more, and maybe with your help and the input of others we/I can come up with a way  I think it must be possible. What do you think about creating a boundary face at the inlet that is the height of the desired water surface elevation and setting the alpha for that patch to be equal to 1 (where 1 is water and 0 is air), then setting the velocity to some type that would allow the required flow to enter the system to maintain the required water surface elevation. Thoughts? Thanks again for your help. Matt 
Maybe a horizontal inlet patch at the bottom of the reservoir with constant p = rgh where h is the height of the desired level. Makes sense to me, but I don't know if it can be implemented to be stable.

Terp,
Thanks for the reply. I think I will give that a shot next. On my currently running model I do have it fed from the bottom, but using velocity not pressure. I think you are right, using pressure (if it will run ok) sounds like it would give me the ability to control water surface elevation. What is the best boundary condition type to use for this? pressureInletVelocity? or maybe pressureInletOutletVelocity? Thanks again for your help. Matt 
Matt,
I would try pressureinletvelocity first. But I can't seem to find any examples of it working. This person tried it for a natural convection inlet, and gave up. http://www.tfd.chalmers.se/~hani/kur...rial_Shiri.pdf Let me know if you try it! 
I will update the post with some results if I get it working.

So, it appears that the pressureInletVelocity BC is only a valid boundary of the for the velocity (U) boundary. Any idea what the best boundary to use for the pressure is and how to calculate the value?

Hello,
I just wanted to check in on this thread and see if anyone has been able to implement a fixed water surface elevation inlet where the water surface elevation is specified (maybe using groovyBC) and OpenFOAM will calculate the inlet velocity. In my case I want to specify a water level behind a spillway and have OF calculate the velocity at the inlet. I have tied quite a few combinations of p_rgh (fixedValue, totalPressure, buoyantPressure, and groovyBC with different fixedValues for air and water) and U (pressureInletVelocity, zeroGradient, pressureInletUniformVelocity), but with no success. I am now thinking that maybe the answer lies in using a combination of groovyBC and sampledSets to monitor the gradient of the water surface through the inlet and adjust the velocity to keep it flat? Just wanted to throw it out there and see if anyone has any thoughts that they want to share. Matt 
Quote:
BTW: you said spillway. Just recently stumbled upon this nice tutorial that uses swak for simulating one: https://www.hpc.ntnu.no/display/hpc/...AM++swak4Foam 
Thanks Bernhard for your input. I think as you pointed out, (and I agree) that "overreacting" to changes may be a problem with this approach. I was thinking of possibly using some kind of "limiter" to prevent large changes to the inflow velocity. Maybe even a rolling average... I guess at this point I really just need to stop procrastinating and try it. :)

Quote:
What MIGHT be useful also is the function object that solves a transport equation as with this you might solve an equation for the residual time (I think the pulsedPitzDailyexample does this) and you can "measure" the time it takes the fluid to reach the "sensor". But that is just an idea 
Quote:
I am just wondering if you succeeded with your boundary conditions for the case of fixed WSE? I am going through the same type of situation. If you could shed any light, it would be much appreciated. Thank you, 
All times are GMT 4. The time now is 12:42. 