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.

This library is under the Lesser General Public License (LGPL).