Generative Design in Structural Analysis / How to handle connections / Multithreading?

Hey community,

i am building a connection between Dynamo/Generative Design und RFEM as the source of structural analysis. Currently i am able to transfer and calculate my parametric model. As output i recieve my desired solution.
Now a want to create a generative Design for the explained script. When i run my created study it seems like the generative Design modul tries to start several threads at once. So my first question: Is there some kind of multithreading in the refinery-logic?

When the study is running my FEM-software runs sometimes in a error and crashes. I never recieve any results from the dynamo-script. When i run the script on its own it works perfectly fine. My first guess is that I have to handle the access to RFEM by creating some type of multithreading for my Zero-Touch-Node library. But I dont know how to do that and if it solves the problem.

Did somebody do that before?
And/Or do you have an idea how to solve the problem?

greetings

It’s likely worth reviewing my AU class this year as we cover this in some depth early on, but Generative Design works by spinning up 6 concurrent instances of Dynamo Core (Sandbox) and running the graph with the desired inputs. This means to use external software in the context of Generative Design you’ll need to be able to run 6 concurrent instances of the tool, which is a non-starter for most structural analysis software as it limits the concurrent uses to a single instance, and to the use of only one processor at a time. Short of those two things the analysis software can crash, causing GD to get bad results throughout the study (you can’t trust any of it).

If you can spin up concurrent instances and limit each instance to one core, it mostly works, but generally speaking it’s best to do the analysis in the Dynamo context. You’ll get faster results, and explore more of the space this way (think of how long it takes to open your analysis software, and how long it takes to run the analysis - imagine doing that 100,000 times as this is what you’ve requested). This isn’t to say 'you should write a full FEA application which runs on a Dynamo core (that’d be cool, but the silliness would be far greater), but use the same rules which guide you as an engineer when you do initial layouts - the typical 2/3 the of the span plus 2" guide for wood framed members comes to mind.

That content will get you 90% of the way there one a half dozen or less options, each of which can then be analyzed in depth via your FEA of choice.

Hey @JacobSmall

thank you very much for your detailed answer. That gets me a big step further ahead. I really need to figure out how to organize the queue for my FEA. I know that its possible because i saw it before. So maybe you know a way to achive may goal?

I was looking for your AU class but sadly there is no video. Do you know where i can review you class?

I recognised that there is a service called “GenerativeDesignServer” when I start a new study. I guess this one handles the concurrent instances of Dynamo Core. Is there i way to communicate with that service?

greetings

Controlling the number of concurrent cores used to be possible by manipulating the number of concurrent studies, but as I understand it that broke other aspects of the application and as such isn’t a thing at this time.

My AU session isn’t available until AU starts this year - be patient (we may have AU before the US presidential election is decided).

There isn’t a way to communicate or control the Generative Design server at this time.

1 Like

Hi,

I solved the problem with the threading and want to share the solution with you. There is a config.-file in %Appdata%\generative-design-client which controls the used instances. Using only 1 solved the problem.

greetings

I hadn’t recommended this hack as adjusting that setting is unsupported and may cause Generative Design to fail, resulting in incorrect explorations or recording incorrect results. I do not recommend planning on using that as a long term fix as a result.