Grasshopper

algorithmic modeling for Rhino

Hello everyone,

In anticipation of the first public release of Butterfly I would like to share a small definition that can hopefully get people started and allow some experimentation with Butterfly.

This definition is designed for an outdoor study (an indoor example will follow shortly). It also includes a hopefully more user friendly UI that allows the user to set all the necessary inputs for the simulation and run the case without using the actual GH definition.

To use this example to its full extent, along with Butterfly (details on installations can be found here https://github.com/mostaphaRoudsari/Butterfly/wiki/Getting-Started-...) you will also need the HumanUI tools (http://www.food4rhino.com/project/human-ui?ufh). However, HUI isn't necessary if you are only interested in the BF part of the definition which will still run.

Butterfly, and the example itself, is still a work in progress. I hope it can inspire people to get involved, test things out, and help it improve!

Kind regards,

Theodore.

P.S.: Add the path of the attached butterfly logo's location in your computer in the definition for a more buggy feeling :)

Views: 13325

Attachments:

Replies are closed for this discussion.

Replies to This Discussion

Hi Theodore. Very nice! Thanks for sharing. I copy your screen capture from twitter here to make it visual.

Hi Theodoros and thank you for the example.

I've found a problem when changing the wind direction. I corrected this in the attached (the rotation of the vector wasn't right).

Also i have a question on this. In the HumanUI window it says that the wind direction go: 0 North, 90 East, 180 south, 270 West. If this is right the example should be fixed too in order to give the right data. Right now giving 0 means that the wind is blowing from the south.

-A.

Attachments:

Hi Abraham,

Thanks for testing man! Also, much appreciated for fixing that vector thing, I thing I wasn't actually testing that part of the definition and forgot to check.

And yes you are right 0 means South wind for BF since as in all Ladybug tools Y is North. I believe that's why I left it simply as a number in the UI window.

I should also add that the little crude way of creating a location in mesh that is inside the wind tunnel but outside the building (as it should) is not really working properly for multiple geometry inputs.

Kind regards,

Theodore.

Hi Abraham,

I just realized that the wind direction input in the definition was completely wrong. I was actually rotating the wind tunnel which does nothing since the wind is always considered in relation to the input geometry.

The following definition should do the job. I also updated the tool-tip to represent the change and logic of wind direction in a wind tunnel. Finally, the location in mesh should be ok now and will work for any Brep input.

Kind regars,

Theodore.

Attachments:

Hi Theodore,

Thank you very much for all this.

I have run your grasshopper definition. 

This was the first error I encountered. I then bypassed the humanUI by using boolean toggles into the 'runit' inputs of the rest of the components.

these  failed to collect data.

All ran well up to Time 1000. However after trying to read the results in different ways it seems that the meshes return one value only. Perhaps it is due to the compression? there isnt any postprocessing subfolder as there used to be in the case folder. There are zipped files in 0,100,200..1000 folders

Would you know How can I solve this?

Things are getting closer. So excited.

Kind Regards,
Olivier

Hi Olivier,

There is a boolean that indicates if you want the results to be compressed. Make sure you have _writeCompression_ in controlDict component set to False.


Mostapha

Hi Mostapha,

thank you.

I have clustered my geometry entirely defined in GH and will try to run it.
I have attached the file here, could you have a quick look at the settings? 

It seems there are 2 rectangles within the wind tunnel.

Olivier

Attachments:

The Input geometry had 4 values whereas the BFsurface component output 3.
I flattened and it solved the issue.

I am running it now... crossing fingers. Will update here.

Olivier

Hi Olivier, Thanks for posting an image. I think for your case you need to refine the mesh around the object (which we haven't implemented in Butterfly yet) or create a very dense mesh overall to get all the edges correctly. Keep me posted and I can apply the mesh refinement boundaries.

Hi Mostapha,

Here is the result capture of these settings:

Wind speed  1m/s

Refinement level 5

Grid size  0.5m

Resolving time steps 500

I understand the simulation is running with k and epsilon at default values 0.001, how were those values determined if I may ask? Are these results accurate?

Kind Regards,
Olivier

Hi Olivier,

Thanks for trying out BF! And I am sorry for responding so late, I have been quite busy at home lately. 

First of all thanks for finding out kinks in the HumanUI file. That one is just intended for an easier application of BF and not really for learning how to use BF, hope it was helpful. Not sure what this error is though as I can't reproduce it in my computer. Are you sure you have the latest Human components? I'll try and look it up when I can for you.

Concerning your results, they do look as expected. A heavy wake area behind the building has been created as you can see, with a quite clear pattern of wind deceleration and a recirculating vortex. This is a standard pattern in outdoor wind and something that generally we try to either minimize or plan activities around since these areas tend to have lower wind velocities and less recirculation, thus leading to debris/dust deposition and potentially higher pollutant concentration.

There are a lot of nice examples of urban wind patterns online you can check, it makes easier for you to help validate the results you get.

Finally, the k and epsilon values for outdoor studies are currently being calculated with (pretty) standard equations for the k-e family of turbulence models. I believe you can find these in the BF source code. Unfortunately I don't have access right now to check where exactly but I would look before the blockMesh component, since the case folder with all the values is created at that point.

Good luck in your CFD journey! Please keep posting results and issues!

P.S.: Btw if you are interested on the effect of your building geometry at a section parallel to the wind direction you could also try a 2D simulation. You can do that either by manually editing your blockMeshDict and setting 1 cell width on the direction perpendicular to your wind or by simply assigning a 1m wide windTunnel (centered at your geometry). This will allow you to refine your model much more than possible in a 3D case with lower run times as well. Ofc it's not as accurate as a 2D case but it's nice for experimentation.

Kind regards,

Theodore.

Hi Theodore,

Thank you for your previous reply. Please forgive me the silence as it took me a while before pursuing back my CFD journey.

I have been using the outdoor example file to run airflow through an atrium with windward windows opened. I believe the results are coherent, the area of stagnant air on the 2nd floor is a result of pressure differences on a multistorey building.

My future intention is to optimise the outlet's geometry to benefit best from wind driven effects, I will set to an evolutionary solver to lower the average pressure in the leeward side of the outlet.
For this reason I will have to proceed with lower accuracy to reduce run times and finally set it to the maximum for reliability of the final solution and result visualisation.

The way I have been trying to increase accuracy is by lowering down the testgrid size to 0.1 and using snappyhexmeshdict.
I am not so confident in varying the different refinement levels and cell sizes of the refinement region and windtunnel.
Would you be able to provide me with a a brief explanation on how to handle these parameters for higher or lower accuracy?


Does Butterfly/OpenFoam processes stratification of heat (stack effect) accounting for internal heat gain?
I was thinking of allocating a mannequin somewhere in the rooms and assign its surface temperature to human body temperature, and perhaps add some boxes for any electrical devices.

Thank you for making all of this possible.

Kind Regards,
Olivier

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service