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

Boundary Conditions for Atmospheric flow

Register Blogs Community New Posts Updated Threads Search

Like Tree10Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   June 27, 2013, 10:35
Default Boundary Conditions for Atmospheric flow
  #1
New Member
 
Øystein Myrmo
Join Date: Jun 2013
Location: Oslo
Posts: 6
Rep Power: 12
oystein_myrmo is on a distinguished road
I am fairly new to OpenFOAM, so please bear with me. I am looking to set up an atmospheric flow around an offshore platform. The inlet wind conditions can be set by using the atmBoundaryLayerInletVelocity BC. I am wondering about the other BCs, however. What are the best BCs for the sides, top, outlet and bottom of the domain? The bottom of the domain is assumed to be water (flat). Also, what are the best BCs for the structure itself? My physical variables are velocity, pressure, k and epsilon.

So far I am thinking the following, please correct me where I am wrong and fill in where I am wondering:

Velocity:
- Inlet: atmBoundaryLayerInletVelocity
- Outlet: ???
- Sides: ???
- Top: slip ???
- Water: fixedValue 0
- Walls: fixedValue 0

Pressure:
- Inlet: inletOutlet
- Outlet: outletInlet
- Sides: ???
- Top: ???
- Water: zeroGradient
- Walls: zeroGradient

k and epsilon:
- Same as for velocity?

Any comments are highly appreciated! Are there any good references for descriptions of the BCs other than Doxygen?
oystein_myrmo is offline   Reply With Quote

Old   July 9, 2013, 03:40
Default
  #2
New Member
 
Øystein Myrmo
Join Date: Jun 2013
Location: Oslo
Posts: 6
Rep Power: 12
oystein_myrmo is on a distinguished road
I will give you my current take on this. Please correct me if I'm wrong.

Velocity:
- internalField uniform (Ux Uy Uz)
- Inlet: atmBoundaryLayerInletVelocity
- Outlet: inletOutlet (inletValue uniform (0 0 0) )
- Sides: slip
- Top: slip
- Water: fixedValue (value uniform (0 0 0) )
- Walls: fixedValue (value uniform (0 0 0) )

Pressure:
- internalField uniform 0
- Inlet: zeroGradient
- Outlet: fixedValue (value $internalField)
- Sides: slip
- Top: slip
- Water: zeroGradient
- Walls: zeroGradient

k:
- internalField uniform ( (3/2)*(U*I)^2 as given here: http://www.cfd-online.com/Wiki/Turbu...ary_conditions )
- Inlet: fixedValue (value $internalField)
- Outlet: inletOutlet (inletValue uniform 0)
- Sides: slip
- Top: slip
- Water: zeroGradient
- Walls: kqRWallFunction (value $internalField)

epsilon:
- internalField uniform ( C_mu^(3/4) * k^(3/2) / L as given here: http://www.cfd-online.com/Wiki/Turbu...ary_conditions )
- Inlet: fixedValue (value $internalField)
- Outlet: inletOutlet (inletValue uniform 0)
- Sides: slip
- Top: slip
- Water: zeroGradient
- Walls: epsilonWallFunction (value $internalField)

I am a bit uncertain of whether I should use inletValue $internalField or uniform 0 for k and epsilon. Does anybody have any recommendations for this? Should the water be treated by wall functions rather than zeroGradients? The scale of the cells at the water level is likely to be around 1 m.
raj kumar saini likes this.
oystein_myrmo is offline   Reply With Quote

Old   July 29, 2013, 10:29
Default Boundary conditions
  #3
Member
 
niru
Join Date: Apr 2012
Posts: 55
Rep Power: 14
Niru is on a distinguished road
hi


Reg the boundary conditions. Offshore platforms and atmosphere surrounding it is an open environment and flows in open environment are called external flows.
I dont know about open foam , but in CF, we can use the Open boundary conditions for side walls and top of atmosphere. A opening BC will allow velocity to go inside and outside the domain reflecting the actual wind in atmosphere. Usually pressure values are not known in external flows. You have to run a steady state run for few iterations using outflow pressure conditions (usually 0 pressure difference) , find the pressure values from steady state run and use the values for transient run. The offshore platform as such is considered as a rigid body in the simulation.

BTW
Your work on "Numerical modeling of pool spreading,
heat transfer and evaporation in
liquefied natural gas (LNG)" was good. I am assuming that you wrote this thesis.
Niru is offline   Reply With Quote

Old   July 29, 2013, 10:52
Default
  #4
Senior Member
 
Lieven
Join Date: Dec 2011
Location: Leuven, Belgium
Posts: 299
Rep Power: 22
Lieven will become famous soon enough
Hi all,

Although it seems like a very simple problem to set the boundary conditions, it is actually quite tricky. Have a look at the following papers for more information:

* Richards, P., & Hoxey, R. (1993). Appropriate boundary conditions for computational wind engineering models using the k-ϵ turbulence model. Journal of Wind Engineering and Industrial Aerodynamics, 47, 145–153.
* Blocken, B., Stathopoulos, T., & Carmeliet, J. (2007). CFD simulation of the atmospheric boundary layer: wall function problems. Atmospheric Environment, 41(2), 238–252. doi:10.1016/j.atmosenv.2006.08.019
* Sumner, J., & Masson, C. (2011). k- epsilon simulations of the neutral atmospheric boundary layer: analysis and correction of discretization errors on practical grids. International Journal for Numerical Methods in Fluids. doi:10.1002/fld

It is for example very tempting to set the slip condition at the top of the domain but this will introduce a modeling error which, depending on the extent of the domain, can become non-negligible...

Cheers,

Lieven
Anwer and Gerhard like this.
Lieven is offline   Reply With Quote

Old   August 4, 2013, 07:55
Default
  #5
New Member
 
Øystein Myrmo
Join Date: Jun 2013
Location: Oslo
Posts: 6
Rep Power: 12
oystein_myrmo is on a distinguished road
Quote:
Originally Posted by Niru View Post
Reg the boundary conditions. Offshore platforms and atmosphere surrounding it is an open environment and flows in open environment are called external flows.
I dont know about open foam , but in CF, we can use the Open boundary conditions for side walls and top of atmosphere. A opening BC will allow velocity to go inside and outside the domain reflecting the actual wind in atmosphere. Usually pressure values are not known in external flows. You have to run a steady state run for few iterations using outflow pressure conditions (usually 0 pressure difference) , find the pressure values from steady state run and use the values for transient run. The offshore platform as such is considered as a rigid body in the simulation.
Thank you for your comments. This is the kind of BCs I am looking for, but I cannot really find a suitable one in the source code. I found one called freeStream though, described as This boundary condition provides a free-stream condition. It is a 'mixed' condition derived from the inletOutlet condition, whereby the mode of operation switches between fixed (free stream) value and zero gradient based on the sign of the flux. I am not sure if this will be correct either, since this BC is derived from an outlet BC. I'll look at bit more into it.

Quote:
Originally Posted by Niru View Post
BTW
Your work on "Numerical modeling of pool spreading,
heat transfer and evaporation in
liquefied natural gas (LNG)" was good. I am assuming that you wrote this thesis.
Yes, you are correct - this is my master's thesis. And thank you! How did you come by it anyway? Boiling of LNG (or mixtures in general) is a relatively small research field.
oystein_myrmo is offline   Reply With Quote

Old   August 4, 2013, 08:02
Default
  #6
New Member
 
Øystein Myrmo
Join Date: Jun 2013
Location: Oslo
Posts: 6
Rep Power: 12
oystein_myrmo is on a distinguished road
Quote:
Originally Posted by Lieven View Post
Hi all,

Although it seems like a very simple problem to set the boundary conditions, it is actually quite tricky. Have a look at the following papers for more information:

* Richards, P., & Hoxey, R. (1993). Appropriate boundary conditions for computational wind engineering models using the k-ϵ turbulence model. Journal of Wind Engineering and Industrial Aerodynamics, 47, 145–153.
* Blocken, B., Stathopoulos, T., & Carmeliet, J. (2007). CFD simulation of the atmospheric boundary layer: wall function problems. Atmospheric Environment, 41(2), 238–252. doi:10.1016/j.atmosenv.2006.08.019
* Sumner, J., & Masson, C. (2011). k- epsilon simulations of the neutral atmospheric boundary layer: analysis and correction of discretization errors on practical grids. International Journal for Numerical Methods in Fluids. doi:10.1002/fld

It is for example very tempting to set the slip condition at the top of the domain but this will introduce a modeling error which, depending on the extent of the domain, can become non-negligible...

Cheers,

Lieven
Thank you, Lieven - I will look into these papers. Do you by chance know if the same problems apply to other turbulence models as well? Will it be different when using for example Reynold's Stress Model?
oystein_myrmo is offline   Reply With Quote

Old   August 4, 2013, 08:25
Default thesis
  #7
Member
 
niru
Join Date: Apr 2012
Posts: 55
Rep Power: 14
Niru is on a distinguished road
I am working on LNG pool spreading and evaporation. I am developing my own model for it . Have you graduated? Can you share your experience on working with that topic?
Niru is offline   Reply With Quote

Old   August 4, 2013, 12:35
Default thesis
  #8
New Member
 
Øystein Myrmo
Join Date: Jun 2013
Location: Oslo
Posts: 6
Rep Power: 12
oystein_myrmo is on a distinguished road
Cool! Check your personal inbox, so we can continue on topic here
oystein_myrmo is offline   Reply With Quote

Old   August 4, 2013, 18:24
Default
  #9
Senior Member
 
Lieven
Join Date: Dec 2011
Location: Leuven, Belgium
Posts: 299
Rep Power: 22
Lieven will become famous soon enough
I didn't test other models on the problem (simply because the k-epsilon model is the most frequently used model for this situation). But I'm pretty sure that this issue will be present in the other models too but maybe not to the same extent.

Cheers,

L
Lieven is offline   Reply With Quote

Old   August 6, 2013, 05:04
Default
  #10
Senior Member
 
Eloïse
Join Date: Jul 2012
Location: Trondheim, Norway
Posts: 113
Rep Power: 13
Eloise is on a distinguished road
Quote:
Originally Posted by oystein_myrmo View Post
Thank you, Lieven - I will look into these papers. Do you by chance know if the same problems apply to other turbulence models as well? Will it be different when using for example Reynold's Stress Model?
Hello Øystein,

For different turbulence models, please check as well this reference:
Richards, P. J., and S. E. Norris. "Appropriate boundary conditions for computational wind engineering models revisited." Journal of Wind Engineering and Industrial Aerodynamics 99.4 (2011): 257-266.


Best regards,
Eloïse
Eloise is offline   Reply With Quote

Old   August 13, 2013, 05:21
Default
  #11
New Member
 
Øystein Myrmo
Join Date: Jun 2013
Location: Oslo
Posts: 6
Rep Power: 12
oystein_myrmo is on a distinguished road
Thank you for the reference, Eloise.

I have digged into the atmBoundaryLayerInletVelocity and atmBoundaryLayerInletEpsilon boundary conditions, and I find it a bit strange that the roughness length (z0_), the minimum coordinate in z-direction (zGround_) and friction velocity (Ustar_) are all defined as scalarFields of the same size as the patch where the BC is applied. Shouldn't all of these parameters be constants (i.e. scalar) in the wind profile?

I see in the implementation of atmBoundaryLayerInletVelocityFvPatchVectorField that Ustar_[i] is calculated depending on z0[i] like this:

Code:
forAll (Ustar_, i)
{
    Ustar_[i] = kappa_*Uref_/(log((Href_  + z0_[i])/max(z0_[i] , 0.001)));
}
and the calculation of the velocity itself (Un) depends on all of Ustar_[i], zGround_[i] and z0_[i] like this:

Code:
forAll(coord, i)
{
    if ((coord[i] - zGround_[i]) < Href_)
    {
         Un[i] =
            (Ustar_[i]/kappa_)
            * log((coord[i] - zGround_[i] + z0_[i])/max(z0_[i], 0.001));
    }
    else
    {
         Un[i] = Uref_;
    }
}
What's the reason the BC is implemented in this way? Also, why is the boundary layer truncated at Uref_ and forcing it to remain constant from thereon? Since this BC is of type fixedValueFvPatchVectorField the calculation of the values is only done once (?) and thus the log calculations are also done only once.

Can anyone enlighten me on these issues?
oystein_myrmo is offline   Reply With Quote

Old   August 14, 2013, 07:23
Default
  #12
Senior Member
 
Eloïse
Join Date: Jul 2012
Location: Trondheim, Norway
Posts: 113
Rep Power: 13
Eloise is on a distinguished road
Hello Øystein,

A simple way to test your BCs is to run an "empty fetch case", i.e. an empty 2D domain on which you use your set of BCs. By comparing your inlet and outlet profiles of U k and epsilon, you will be able to see if your set of BCs are consistent.

I haven't try to use the atmBoundaryLayer BCs from OpenFOAM, but I'd not be surprised if it did not maintain the profiles through the domain. Instead, I'd recommend you to implement the recommendations suggested in the above mentioned papers.

Regards,
Eloïse
Eloise is offline   Reply With Quote

Old   March 17, 2014, 13:09
Default
  #13
Senior Member
 
Join Date: Jul 2009
Posts: 260
Rep Power: 17
kingjewel1 is on a distinguished road
Did anybody determine whether they were happy with the way the ABL is currently modelled by atmBoundaryLayerInletVelocity?

To be honest i'm a bit puzzled as to how to implement a turublent gradient at the ceiling of the domain as suggested in "Appropriate boundary conditions for computational wind engineering models revisited". Any thoughts here?
kingjewel1 is offline   Reply With Quote

Old   June 23, 2015, 05:49
Default
  #14
New Member
 
Michael
Join Date: Feb 2015
Posts: 18
Rep Power: 11
allett02015 is on a distinguished road
Hello!

Did anyone find a solution to the above Problems? I have the same problem. I applied nutkAtmRoughWallFunction and epsilon wall functions at the wall.

In order to test if the solution optained with openfoam is consistent with the theory I used a 2D channel an applied a cyclic bounday condition at inlet and outlet. At the top of the domain a used a constant velocity.

It is some kind of couette flow.

Theoretically the converged velocity solution should be logarithmic at the wall U = U*/kappa ln ( ( z + z0)/z0)). Unfortunately I did not get the theretical profile.

Find attached the plot of the velocity
Attached Images
File Type: jpg Uz.jpg (17.4 KB, 196 views)
File Type: jpg Uz_log.jpg (17.2 KB, 142 views)
allett02015 is offline   Reply With Quote

Old   June 30, 2015, 05:27
Default
  #15
New Member
 
Michael
Join Date: Feb 2015
Posts: 18
Rep Power: 11
allett02015 is on a distinguished road
Hello! I've tried to implement the discretisation of the Production therm suggesteb by

Richards, P. J., and S. E. Norris. "Appropriate boundary conditions for computational wind engineering models revisited." Journal of Wind Engineering and Industrial Aerodynamics 99.4 (2011): 257-266.

In openfoam it looks like :

volVectorField snGradU("snGradU",fvc::average(fvc::snGrad(U_) ) );
volScalarField G(GName(), nut_*magSqr( snGradU ) );

So I compute first the face area avereg of the gradient and then squared it to get the Production term G.

But still I got a turbulent lengthcale which is increasing with hight with a lower inclination compared to kappa*z. Did anyone try this solution?
allett02015 is offline   Reply With Quote

Old   August 25, 2016, 06:57
Default
  #16
Senior Member
 
Yuehan
Join Date: Nov 2012
Posts: 142
Rep Power: 13
wc34071209 is on a distinguished road
Is there any progress regarding this problem?
wc34071209 is offline   Reply With Quote

Old   August 26, 2016, 04:00
Default
  #17
New Member
 
Michael
Join Date: Feb 2015
Posts: 18
Rep Power: 11
allett02015 is on a distinguished road
unfortunately I was not able to solve the problem. but it is definitely a numerical issue. If you use an equidistant mesh an use a very fine resolution the spike of k at the bottom vanishes.

Another guess of me was that the reason is the first order approximation of the velocity gradient at the wall in the calculating the turbulent production.

but I hadn't the time to test if this assumption is right.
allett02015 is offline   Reply With Quote

Old   April 4, 2020, 12:42
Default
  #18
Senior Member
 
René Thibault
Join Date: Dec 2019
Location: Canada
Posts: 114
Rep Power: 6
Tibo99 is on a distinguished road
Hi everyone!

I read your post and I think I got similar issue with the simulation that I try to perform.

I used the ABL inlet condition for U,k and e. Use nutkAtm......, epsilonWallFunction and kqRWallFunction for the bottom wall boundary condition.

The U profile at the Inlet match the U profile at the Outlet, but I got this spike on the k profile at the Outlet near the wall(see image). The mesh is equally spaced(dy=1mm) and the spike seem to appear before the mesh grid (see image).

Do you have any ideas what could cause this issue?

Don't hesitate if you need more information and clarification.

Thank!


P.S.: Just keep in mind that if the shape of the k profile doesn't seem too look right at mid height, it's because this come from a solution that wasn't converge. But, I assure you, this spike is still there even though the solution is converge.

k.jpg

Zoom-k.jpg
Tibo99 is offline   Reply With Quote

Old   May 25, 2020, 16:03
Default
  #19
Member
 
Petros Ampatzidis
Join Date: Oct 2018
Location: Bath, UK
Posts: 64
Rep Power: 7
petros is on a distinguished road
Hi René,

I would imagine that the spike, which is a rather common issue in most ABL simulations, is found at the Inlet of your domain, since the flow adjusts along its way. Specifically, is usually aparent in the first 2-3 cells and then gradually disappears. Although I am not confident about this, I think there is an inconsistency between wall functions and the atmBoundaryLayer inlet profiles that lead to an overestimation of k at the wall.
See: Divergence problem in domain??

Have you managed finally to simulate your ABL, cause I'm pretty much stuck at the same stage?

Best,
Petros
petros is offline   Reply With Quote

Old   May 28, 2020, 13:07
Default
  #20
Member
 
Luis Eduardo
Join Date: Jan 2011
Posts: 85
Rep Power: 15
lebc is on a distinguished road
René, could you share you case? I've been trying to make the profiles match, but I had no success so far.

I recently saw in this post (Atmospheric boundary layer) that some modifications were proposed to make the profiles match, but I couldn't make it work for me.
lebc is offline   Reply With Quote

Reply

Tags
boundary conditions


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 Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Boundary conditions low Mach number flow lost.identity Main CFD Forum 0 November 28, 2010 04:44
3-D Compressible Flow Boundary Conditions Tyler FLUENT 4 February 5, 2009 19:58
boundary conditions for boundary layer flow A. Al-zoubi CFX 0 November 3, 2007 07:11
Internal flow simulation boundary conditions Kishore FLUENT 1 July 10, 2007 11:42
Please help with flow around car modelling! Tudor Miron CFX 17 March 19, 2004 19:23


All times are GMT -4. The time now is 09:03.