CFD Outdoor Analysis

Hi guys,

I want to run a wind analysis at the urban scale ( I saw some of you who tried @devang, @minggangyin, @TheodorosGalanos,). Despite my research on the forum and on github where I found some snippets of informations, I didn’t saw enough to significantly help through that journey…

What kind of settings are preferable for the grading part and for snappyhexmesh at that scale ?
Maybe you have a template with basic settings for this kind of analysis that you may want to share ?

As you can see in the definition I started, the refinement region is not align with the case (windtunnel). It doesn’t seem optimal. Is that important ? As I want to analyse the wind in few directions, is it better to rotate the case ? (439.5 KB)

related post:

Thanks alot !
Charles C.

OpenFOAM v1706 / VM oracle 5.2.8
Last Butterfly version 0.0.04 Nov_26_2017
32GB Ram
6 CPU 4.9Ghz
(should be able to run something !)

Hi @CharlesCollin,

Can you please re-attach the GH file with your geometry internalised?

I don’t think there is a template. Meshing strategy is always case specific. We will need to try things to arrive at a mesh with which a solution would run in acceptable time. I see that you’re using Wind tunnel Auto grading. This is the one I use also. The other way is to go for a gradient mesh. It basically means we will have small size mesh in the area of interest and then gradually we decrease the mesh size as we move from the area of interest to the edge of wind tunnel. I will write a tutorial for you after work today to do this.

Yes. You need to create wind tunnel after considering all the rotations.
Say following is the goemetry

Now we rotate the geometry around itself and generate a union box

We use this box to generate the wind tunnel

rotate (17.9 KB)

1 Like

Hi devang,

As I understand, when you change the wind direction, it is the buildings that actually rotate right ? Based on the way I build my GH definition, it would be a problem for me to rotate these buildings (whole topography, roads and buildings are generated from another GIS plugin). The ideal would be to have a static refinement region and buildings then simply rotate the wind tunnel. Anyway I can achieve this ? considering good practices @TheodorosGalanos talk about here:

Is their a way to simply change the wind vector input and the case will uptade itself (rotate) based on that vector direction ?

For now, I don’t know if its a snappyhexmesh problem but my pressures values and wind velocity are not working properly… (1.4 MB)

I really appreciate your help !
Thank you

Also @minggangyin post that Outdoor+indoor airflow - #3 by minggangyin and this is quite exactly what I’m looking for. is it possible for you @minggangyin to share that GH definition / or make an Hydra with it. I would be definitely be grateful :slight_smile:

Hi Charles,

Thanks for sharing the definition. It’s a bit of a mess but I have added some adjustments to it.

Main things I did was to delete the region refinement completely. I find it suboptimal to refine during SHM when we can refine during blockMesh much faster and more efficiently. Also, a refRegion that is not parallel to the flow is not generally a good idea. I’ve replaced the refinement region with a smaller number of grid cell in the area of interest (1m in this case, I would change that to 2m if you want to actually run it for a test). Additionally, because of that the refinement in the geometries can now be reduced (2,2).

The other thing I added is a (messy I apologize) showcase of the logic behind constructing a proper wind tunnel. Your wind tunnel was really too small to provide any kind of accurate simulation. The one I have provided is a very good rule of thumb that will work in almost all cases. Of course, you can feel free to adjust it as you test it on each case.

Hope this helps!

Kind regards,
Theodore. (1.4 MB)


Hi guys,

Thank you very much @TheodorosGalanos for the «messy» definition. Really instructive on how to build that Case :wink:

  1. One thing about the time it took to run this analysis; not optimal :confused: took maybe 45 min to get to iterration 500. 35 seconde between each iterrations + the blockmesh 1 min (5 min to vizualise mesh… ?!?) + snappyhexmesh 7 min. An more over that I’m only running this at 4m cell size. (At 2m cellsize its 3.5min between each iteration, and I have a quite powerfull computer).

  2. Regarding the discussion upward with @devang, I assume we have no other choice then rotating the buildings to change the wind direction ? It would be too imprecise to only change the wind vector direction while having a more square windtunnel case ?

  3. Also, I still have some error values which I had to replace in order to get a correct result visualisation. On the 10296 presures values 2206 where astronomic numbers. I presume these incorrect values correspond to cells inside buildings. Any other way to do not include them into the final results? (2.5 MB)

I would definitely consider that a blazing fast study! Typical studies of this size would take a couple of days running. It really depends what you need this for however. Also, any type of sensible mesh (i.e. >3-4 million cells) should not be displayed in Rhino. Even though we have the component, I don’t think Rhino/GH was made for this. You should download and use paraview for windows. It can load a 10m cell mesh in seconds.

Concerning the direction, at some point in the future we will try to considering circular background mesh. It could speed up simulations of multiple directions however it does come with its own issues. For now you can either rotate the geometry and keep your wind tunnel as it is or you could just change the incoming wind direction to the wind direction of the wind you are simulating (assuming y is North). That would make for a bit of whacky wind tunnel orientations but should allow you to postprocess easily. It all comes down to preference really. Try things out and see what suits you.

It’s hard to avoid values within buildings with such high cell size. The usual trick is to split the calculation plane with your buildings, take its sillhouette and offset those curves by at least the cell size. That assures no such points, but in this refinement levels it might also mean you lost some areas.

Kind regards,

1 Like

Yeah. I was thinking the same. The production level study of this size simply can not run in this time on a local machine. I definitely use an analysis plane that is at least 500mm away from buildings.

I saw that you read through a lot of Github issues and you read the one in which @TheodorosGalanos mentions about the gradient mesh. Let me know if you still want me to put togather a tutorial for you.

1 Like

Hi @devang,

Sorry for the delay. As a butterfly outdoor analysis take quite a long time to calculate, I was trying to find a way around with UTCI or ENVImet. But UTCI doesn’t really take into account wind context, and I didn’t find a free way to use ENVImet…

But definitly, if its not too much time consuming for you I would really appreciate a tutorial. An I think It would be really helpfull for butterfly beginners.

thank you very much devang !
Charles C.

Hi @CharlesCollin,

I will be happy to help. Wind velocities are indeed considered in micro-climate UTCI recipe in Honeybee.

When I mentioned about the tutorial, I was referring to creating a tutorial to do a gradient mesh. However, I am myself using Wind tunnel grading component lately, and it seems to serve me well.

I am open to helping you run a UTCI study with wind velocities generated from a CFD study in butterfly. I would recommend you start a new post and upload your model with only the geometry relevant to the study and then step by step we develop the whole workflow.

The first step in the process will obviously be running CFD simulations.


I understand the urge to try new tools when we are faced with difficulties. I would recommend staying with Honeybee + Butterfly + Dragonfly workflow. The most challenging part will be arriving at a meshing strategy for CFD simulation. The rest of the workflow is straight forward compared to that.

I trully apreciate your help and time @devang !

I will keep reading and trying hydra files about microclimat to understand at least the basics and be more familiar with E+ simulations and recipes. Then, next week I will make a new post on the subject.

I found a 2 quite relevant discussion regarding LB+HB around ENVImet here #1, and here #2

Unfortunatly it seems the first discussion/experiment - well stared with LB+HB microclimat analysis - didn’t succed and ended up talking about ENVImet…

About the second discussion its a bit too abstract for me yet… also no .gh files attached…

And maybe to clarify my goal, what I want to (try) achieve is an outdoor microclimate map taking into account :

  • Windspeed based on context (CFD)0
  • Surface temperatures
  • Albedo
  • UTCI (outddoor drybulb temp, relative humidity)
  • and especially accurate trees

Essentialy I think it is a combination of : This hydra + this other hydra + CFD infos

I know @chris worked alot on this too, maybe if he isn’t too busy he could give this a look :wink:

Best regards,
Charles C.

1 Like

You can add trees as shading context in the first hydra example. UTCI recipe in Honeybee will consider all the variables you mentioned, except Albedo. I am myself looking into this for a project. My current assumption is the urban heat island simulation with Dragonfly will take into account the albedo. I have yet to ascertain that assumption though.

Hi @CharlesCollin
I have a question! I saw an image you shared here with all the blue arrows as a result (pressure values and wind velocity), can I ask how did you solve that problem?? , cause I have the same kind of results and I’m confuseeeed!!

Hi @samira

One thing I would try is to move your analysis grid (where results are displayed) slightly above the ground level. It can cause that issue. Also try to download another version of the definition in this topic (a newer one) and see if you have the same issue.

good luck :wink:

1 Like

@CharlesCollin Thanks for your post and charing your workflow. I also used the template for outdoor analysis and I do have as well problems with the pressure values and velocity.

Do you have a solution for this problem?

I really appreciate your help.
Thank you in advance

Hi Mr. @TheodorosGalanos

I am trying to run a multiple direction study using butterfly.

As you mentioned above, have you implemented circular background mesh? I think it would be possible with OpenFOAM since Eddy CFD, if I am not mistaken, that they support octagon shaped wind tunnel for multi-directional study.

Kind regards,

Hi Everyone,

I am quite new to Butterfly. As a part of my self-learning study, I did an outdoor CFD analysis. Here is the screenshot of the result. I would like to learn your opinions. Does the result seem okay? The red area on the top where the wind velocity is the highest captures my attention. Wind velocity might be higher there but do you think that much difference is possible? I would be happy to hear any comment you would share.


hey what to do when this error happens?