We present a 250 line Matlab code for topology optimization for linearized buckling criteria. The code is conceived to handle stiffness, volume and Buckling Load Factors (BLFs) either as the objective function or as constraints. We use the Kreisselmeier-Steinhauser aggregation function in order to reduce multiple objectives (viz. constraints) to a single, differentiable one. Then, the problem is sequentially approximated by using MMA-like expansions and an OC-like scheme is tailored to update the variables. The inspection of the stress stiffness matrix leads to a vectorized implementation for its efficient construction and for the sensitivity analysis of the BLFs. This, coupled with the efficiency improvements already presented by Ferrari and Sigmund 2020, cuts all the computational bottlenecks associated with setting up the buckling analysis and allows buckling topology optimization problems of an interesting size to be solved on a laptop. The efficiency and flexibility of the code is demonstrated over a few structural design examples and some ideas are given for possible extensions.
翻译:我们为线性压载标准提供了250行的地形优化马特拉布代码。该代码的构想是处理硬度、体积和载荷因素(BLFs),作为客观功能或制约。我们使用Kreisselmeier-Steinhauser聚合功能,将多重目标(viz.制约因素)降低到一个可区分的目标。然后,问题按顺序通过使用类似于MMA的扩展和类似OC型计划来比较。对压力僵化矩阵的检查导致其高效构建和对BLFs敏感分析的矢量化实施。这加上Ferrari和Sigmund 2020 已经提出的效率改进,削减了与安装振动分析相关的所有计算瓶颈,并允许在手提电脑上解决一个有趣的尺寸的顶层优化问题。代码的效率和灵活性体现在几个结构设计示例中,并提出了一些可能的扩展想法。