(by Kazuki_Hayashi)
Simultaneously optimize geometry and topology of trusses.
Support Email

There are three major categories in the field of truss optimization. The first one is size optimization, where cross-sectional areas of members are changed during optimization. The second category is topology optimization, where the connectivity of members varies. As well as size optimization, topology optimization is a well-established field of research. Above all, the ground structure method is widely used; it starts from a highly connected structure called ground structure and eliminates unnecessary members. The last category is geometry optimization, which controls nodal locations to change overall truss geometry. Although numerous mathematical programming approaches have been studies for optimizing truss geometry, it is necessary to set constraints on nodal locations to prevent numerical difficulty due to the existence of extremely short members, called “melting nodes” or “coalescent nodes”. Therefore, there is little possibility to obtain a sparse optimal topology by simply setting nodal coordinates as design variables.

These three types of optimization can be simultaneously conducted by setting cross-sectional areas of members and nodal coordinates as design variables; however, it is difficult to solve because it is necessary to modify the topology by removing coalescent nodes while varying the nodal locations. We developed a novel efficient tool for simultaneous optimization of topology and geometry of truss structures. The force density method (FDM) is applied to formulate an optimization problem to minimize compliance under a constraint on total structural volume, and objective and constraint functions are expressed as explicit functions of force density only. This method does not need constraints on nodal locations to avoid coalescent nodes and enables generating optimal solutions with a variety in topology and geometry at a low computational cost. The optimization problem is solved using sensitivity coefficients and the optimizer is compiled as a component compatible with Grasshopper, an algorithmic modeling plug-in for Rhinoceros.

This component is very similar to that explained in the following article: https://www.sciencedirect.com/science/article/abs/pii/S0965997818310676, but differs in that it uses slsqp solver of NLOPT instead of SNOPT for solving the optimization problem.

Steven G. Johnson, The NLopt nonlinear-optimization package, http://github.com/stevengj/nlopt

## 2021.Oct.27 ##
<FDMopt component (FDMopt folder)>
 ・Modified the codes to accelerate the optimization.
 ・Relative tolerance is chenged from 1.0e-8 to 1.0e-4 to avoid negligibly tiny variable changes.
 ・Fixed a bug of design surface constraint.
<Example (FDMexample.gh)>
 ・Added ex.5: dome-shaped latticed shell using design surfaces.
 ・Added short notes next to examples 4 and 5.
 ・Slightly modified the layout of components for visualization.

## 2021.Sep.17 ##
<FDMopt component (FDMopt folder)>
 ・Published the first version.
<Example (FDMexample.gh)>
 ・Published the first version.

License Cost:
For instructions on installing Grasshopper Add-Ons, please see FAQ for details.
FDMopt component
Grasshopper for Rhino 7 for Win
Grasshopper for Rhino 7 for Win