CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (http://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Spillway Analysis Fixed Water Surface Boundary Condition (http://www.cfd-online.com/Forums/openfoam-solving/86621-spillway-analysis-fixed-water-surface-boundary-condition.html)

mgdenno March 28, 2011 13:13

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

mgdenno April 1, 2011 11:40

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

vatavuk April 3, 2011 10:35

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.cfd-online.com/Forums/ope...ulic-jump.html

mgdenno April 3, 2011 21:47

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

Terp April 4, 2011 13:04

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.

mgdenno April 5, 2011 10:10

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

Terp April 5, 2011 14:26

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!

mgdenno April 5, 2011 16:06

I will update the post with some results if I get it working.

mgdenno April 6, 2011 14:24

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?

mgdenno October 19, 2012 12:36

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

gschaider October 19, 2012 15:03

Quote:

Originally Posted by mgdenno (Post 387538)
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

Can't comment whether it will solve your physical problem but measuring the height with sampledSets and feeding it back to the inlet is possible with swak4Foam/groovyBC. See for instance the fillingTheDam-example that comes with swak which has all the ingredients you need: measuring the height with a sample-line and controlling a BC with it. The tricky thing in your problem might be that the measurement line sees the result of the changed inlet 7.93 seconds (my estimate) after the fact. So you've got to be careful with your control mechanism to not "overreact".

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

mgdenno October 21, 2012 09:35

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. :)

gschaider October 21, 2012 10:00

Quote:

Originally Posted by mgdenno (Post 387757)
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. :)

Something like a rolling average could be done with a stored variable (see examples and the presentation from the 6th Workshop). More sophisticated control strategies might be implemented using either the pythonIntegration-functonObject or the swakCoded-functionObject (both of them allow getting and setting global swak variables). Personally I'd go for Python because dynamicLists etc might be easier there.

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 pulsedPitzDaily-example does this) and you can "measure" the time it takes the fluid to reach the "sensor". But that is just an idea

hotrod950 April 7, 2014 10:58

Quote:

Originally Posted by mgdenno (Post 387757)
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. :)

Hello Mathew,

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 23:07.