Annual analysis calculation time

Dear all,

After many years of working with the great LB HB plugins, I am testing extensively HB+ 0.0.05 in order to apply it soon on Revit at work.
I have run few tests on Rhino with DF and Solar Access components and I am amazed how fast and responsive they are!
On the other hand, I am running annual analysis (both solar and daylight); I know the huge amount of output produced but I am worried about calculation times, quite long and resources demanding if compared to LB/HB Legacy. I feel this critical especially in the concept phase when usually many volumetric options are going to be evaluted.

I performed a solar annual analysis on a simple building envelope within an urban context (attached) with the following inputs
2 surface analyzed
1440 test points
1532 obstruction meshes


With complexity setting to 0 (low), calculations lasts 12 minutes on my laptop, while the same on LB takes few seconds.
My laptop is
i7-7500U,
16 GB SDRAM DDR4-2133,
NVIDIA® GeForce® 940MX 4 GB
DDR3 SSD M.2 da 256 GB
Rhino 6.1 SR1

I am wondering if it is possible to speed the calculations. Any hints?
Will parallel CPU option (as for the legacy plugins) be available in the near future?
Here you’ll find my model and code. 3D_test twin towers_190203_AB.3dm (509.1 KB)
test_H _Solar annual analysis_190203_AB.gh (449.7 KB)

Your help and suggestions will be very appreciated!
Many thanks in advance!
Regards from Italy,
Alberto

1 Like

I haven’t got the right software here to view your scripts but it seems that you are using Honeybee[+] to compute solar radiation. If you run an Annual Radiation study in :honeybee: HB[+] you are using Radiance to compute radiation values for every hour of the year. If you run an Annual Radiation study using :ladybug: Ladybug Legacy you are using Rhino Vectors landing on your surface based on a Cummulative Sky. These are two very different methods as they use different software to generate results. If you try running Annual Radiation using Honeybee Legacy you will also notice it is quite slow.

To resume:

  • :honeybee:[+] & :honeybee:[Legacy]: Uses Radiance for daylight/radiation modelling and is slow
  • :ladybug:[Legacy]: Generates a Cummulative Sky in Rhino and uses Rhino vector math to calculate cummultive radiation over a given time period. This is very quick.

I would recommend sticking to ladybug for external cumulative radiation studies as using Honeybee[+]/Radiance is equivalent to breaking a wall with a toothpick (you’ll get there eventually but you might as well use a sledgehammer :smile: )

Hope this helps.

Dear @AntoineDao,
You are right.
At work, I am going to perform analysis on Revit, so I’d like to implement fully LB/HB+ plugins to perform analysis on Revit including annual solar studies.
It would be great to include Ladybug Legacy annual radiation studies on the next release of Ladybug+.
Would it be possible in a near future @mostapha ?

Last but not least a big thank you to all the HB LB team for your impressive work!
And to make life of architects easier!
Alberto

Yes. I already have made a quick test on how to generate a cumulative sky from the output of gendaymtx but I haven’t tested/validated the results. If you want to give it a try yourself here is the code which as I said has not been validated.

Dear Musthapha,
Thanks a lot to share the py file.
I’m not used to python but I’ll be happy to contribute!
In the last years I get a lot from your wonderful job, and it is time to pay back!

Just to start, if I understood correctly this python:

  1. translates a H+ SkyMatrix into a CumulativeSkymtx. Am I right?
  2. cumulativeSkymtx should be compatible with H+ recipes?
  3. May I apply both in Grasshopper and Dynamo environment, right?
    Thanks for your feedback,
    Alberto

Hi @alberto.bruno, Thank you for the kind words and your willing to help. I’m afraid that this problem might not be the best fit for the first time contribution but in any case these are the steps that one needs to take to include cumulative radiation studies in Honeybee[+].

  1. Subclass SkyMatrix class and overwrite execute method to add post-processing that I shared in the previous post.
  2. Write a new recipe to run the cumulative study or update the Annual Radiation recipe to handle the new sky as a sky-matrix with a single hour.
  3. Validates the outcome against the existing methods in Honeybee legacy and Ladybug.

Dear @mostapha
I spent few hours trying to understand the steps, but with no knowledge of python, I am not able to follow you.

By the way, I was able to transform original.smx to cumulative smx.
Then I tried to load cumulative.smx into the Honeybee Plus_Annual radiation recipe then I get the following error message ’ 1. Solution exception:<type ‘str’> is not a valid Honeybee sky.

I am still willing to help. In case you can provide me some components I’d be happy to test them extensively on my projects.
Let me know and thanks for your understanding,
Alberto

Hi @alberto.bruno,

Thank you for trying! :+1: As I said this might not be the best getting started to help issue. I would have get you more sample codes but since a number of major changes going to happen to the Honeybee library let’s wait and give it another try after the changes are made.

I have the same problem with the calculation time. I am using 05_annual_radiation… sample but there is no option to run radiance in parallel. Is it possible with any other component? Thank you.

Not yet unfortunately but we are getting closer and closer to a new release.

Thank you for the clarification, I hope that the number of cpu’s option in annual daylight analysis component can be simply adjusted for run radiance comp. If it is possible, can you direct me? I am a bit familiar with this stuff. Btw, both of the components runs grid based simulations but the related components even different to create grid points, why is the reason for that? Last, can I use mesh vertices as input points for the simulations instead of using a component for grid points?

Hello everyone,

First of all, thank you to all the people who created these amazing tools and to all who are giving advice and support in the forums.

I recently started working on a rather large project on grasshopper and I have some questions about the system performance related to doing the honeybee annual daylight simulations. I modeled my honeybee zones using the Create hb surface component. To give u an idea about the scale of the realized floor surface, there are floors with around 5000 sqm and not simple rectangular shape and testpoint grids of 200*200cm. The issue I am facing is the simulations are taking so much time meanwhile the usage of my RAM is not getting any higher than 60% in total and rhino usage is maximum 2 GB, and the commandprompt CPU usage (during the simulation) is around 14%. By my general understanding, I expected the RAM or CPU usage to get to the maximum so I can get a faster performance. In simple words instead of waiting 50 minutes for a simulation with the stated usage percentages, the simulation gets done in 20 minutes with maximum ram usage. However, I don’t know if the assumption I am making is even valid for Rhino/GH/LB/HB or not! I would really appreciate it if you could help me understand if this timing is normal and I should just go along with it or there is something I can do about it.

My laptop hardware is:

16GB RAM
Intel Core i7 10875H
NVIDIA Geforce RTX 2060 6GB

Thank you so much in advance and please let me know if you need any extra information.

I recommend using the LBT plugin. The Radiance simulations there are developed in a manner that is much more parallelized and scale-able.