This paper provides a simple, compact and efficient 90-line pedagogical MATLAB code for topology optimization using hexagonal elements (honeycomb tessellation). Hexagonal elements provide nonsingular connectivity between two juxtaposed elements and, thus, subdue checkerboard patterns and point connections inherently from the optimized designs. A novel approach to generate honeycomb tessellation is proposed. The element connectivity matrix and corresponding nodal coordinates array are determined in 5 (7) and 4 (6) lines, respectively. Two additional lines for the meshgrid generation are required for an even number of elements in the vertical direction. The code takes a fraction of a second to generate meshgrid information for the millions of hexagonal elements. Wachspress shape functions are employed for the finite element analysis, and compliance minimization is performed using the optimality criteria method. The provided Matlab code and its extensions are explained in detail. Options to run the optimization with and without filtering techniques are provided. Steps to include different boundary conditions, multiple load cases, active and passive regions, and a Heaviside projection filter are also discussed. The code is provided in Appendix~A, and it can also be downloaded along with supplementary materials from \url{https://github.com/PrabhatIn/HoneyTop90}.
翻译:本文为使用六边形元素(honeycomb comb comsellslation)进行表层优化提供了简单、紧凑和高效的90线教学 MATLAB 代码。六边形元素提供了两个平行元素之间的非星系连接,从而从优化的设计中产生了下端的检查板模式和点连接。提出了生成蜂窝熔化的新方法。元素连通矩阵和相应的节点坐标阵列分别以5(7)和4(6)行确定。对于垂直方向中偶数元素,需要为网格生成另外两条线。该代码为生成数以百万计六边形元素的网格信息需要一分之一的第二线。为有限元素分析使用节制形状功能,并使用优化标准方法进行合规最小化。提供了马特拉布代码及其扩展的详细解释。提供了使用和不过滤技术进行优化的选项。包含不同边界条件、多个多负载区和被动区以及沿 Heaviside 过滤器的步骤。该代码在附录-A}Inchspress 提供补充材料。