Can you explain what the container and the “Coupling Features” function are for? Could you give an example?

How is it possible to know the value of the displacement?

The nonlinear analysis component has multiple inputs, could you explain the ratios and functions of each input?

Is it possible to do a multi-objective optimization of an analysis? do you think you can share one, I want to learn how to use kiwi3d with evolutionary algorithms.KIWI_EXERCISE_2.gh (38.5 KB)

I know there are many questions but sometimes being self-taught and intuition is not enough.

I have shared a code that I have developed, it seems to be fine, I have read all the posts in this help forum and I think it can help whoever needs it, if I have any errors, could you let me know?

Thanks Enrique

the load displacement curve component can be used to increase the load in nonlinear analysis incrementally. You have a pseudo-time and can define a load factor for every time to be multiplied with the load value. If you don’t define a value for every time step, the load is linearly increased inbetween.

Coupling features can be used to manipulate the automatic coupling. Kiwi couples everything with intersecting geometry. It is also useful for loads and supports as you may e.g. want to ensure that your clamping support is applied to the beam element and not the cables which may share the support point. You define a group id and a list of coupling ids, i.e. group ids of the elements, loads and supports that should be coupled to this element. The default group id is zero if you do not set a coupling features to every element.

The value of the displacement can be evaluated for surface elements with the 2d result components or you can measure them by having two deformed models, one with scaling factor 0. Just evaluate the same uv/t coordinates and measure the distance.

You can find a short documentation on every component in the downloading folder. But in short, the nonlinear analysis is solved in an iterative manner. So you need to define how many iterations you want to allow max and your tolerance that defines if the result is precise enough. Output defines which results are written. It is faster if you only plot those you are interested in. LD = load displacement curve, see above, A is an adaptive load control. If no equilibrium is found, the load increment is bisected max. A times and the solver retries with a smaller increment. This is useful for complex systems. F is only useful if you have many load steps but you are not interested in every result as printing the results slows the whole analysis down.

Using Kiwi with evolutionary algorithms is quite easy. Just set up the optimization with input parameters and design criterion. In the Kiwi analysis, you just have to set Run of the solver to true and maybe disable the shell window (right-click onto the solver). The Anti-freeze option has to be disabled as the optimization loop will otherwise not wait for your analysis to finish.