Abstract
This paper presents a MATLAB code implementation of the Adaptive Bubble Method (ABM) published by Cai and Zhang (2020) for topology optimization. The ABM has the main feature of inserting deformable holes adaptively into the design domain to reflect the designer’s motto that “The art of structure is where to put the holes.” This method consists of three modules: (i). implicit description of holes with the closed B-spline (CBS) curve possessing high deformability; (ii). determination of optimal insertion points in each iteration using the topological derivative combined with a matrix operation-based searching scheme; (iii). fixed grid-based finite element analysis (FEA) using the ersatz material model. Representative numerical examples are tested to illustrate the implementation of the ABM. A compact 168-line MATLAB code is provided in the Appendix and explained in detail for educational purpose.
References
Allaire G, Jouve F, Toader AM (2004) Structural optimization using sensitivity analysis and a level-set method. J Comput Phys 194(1):363–393. https://doi.org/10.1016/j.jcp.2003.09.032
Andreassen E, Clausen A, Schevenels M, Lazarov BS, Sigmund O (2011) Efficient topology optimization in MATLAB using 88 lines of code. Struct Multidisc Optim 43(1):1–16. https://doi.org/10.1007/s00158-010-0594-7
Bendsøe MP (1989) Optimal shape design as a material distribution problem. Struct Optim 1(4):193–202. https://doi.org/10.1007/BF01650949
Bendsøe MP, Sigmund O (2003) Topology optimization—theory, methods, and applications. Springer, Berlin
Cai S, Zhang W (2015) Stress constrained topology optimization with free-form design domains. Comput Methods Appl Mech Eng 289:267–290. https://doi.org/10.1016/j.cma.2015.02.012
Cai S, Zhang W (2020) An adaptive bubble method for structural shape and topology optimization. Comput Methods Appl Mech Eng 360:112778. https://doi.org/10.1016/j.cma.2019.112778
Christiansen RE, Sigmund O (2021) Compact 200 line MATLAB code for inverse design in photonics by topology optimization: tutorial. J Opt Soc Am b: Opt Phys 38(2):510–520. https://doi.org/10.1364/JOSAB.405955
da Silva GA, Aage N, Beck AT, Sigmund O (2021) Local versus global stress constraint strategies in topology optimization: a comparative study. Int J Numer Methods Eng 122(21):6003–6036. https://doi.org/10.1002/nme.6781
Eschenauer HA, Kobelev VV, Schumacher A (1994) Bubble method for topology and shape optimization of structures. Struct Optim 8(1):42–51. https://doi.org/10.1007/BF01742933
Ferrari F, Sigmund O (2020) A new generation 99 line MATLAB code for compliance topology optimization and its extension to 3D. Struct Multidisc Optim 62(4):2211–2228. https://doi.org/10.1007/s00158-020-02629-w
Gao J, Luo Z, Xia L, Gao L (2019) Concurrent topology optimization of multiscale composite structures in MATLAB. Struct Multidisc Optim 60(6):2621–2651. https://doi.org/10.1007/s00158-019-02323-6
Huang X, Xie Y (2010) Evolutionary topology optimization of continuum structures: methods and applications. Wiley, New York
Jiu L, Zhang W, Meng L, Zhou Y, Chen L (2020) A CAD-oriented structural topology optimization method. Comput Struct 239:106324. https://doi.org/10.1016/j.compstruc.2020.106324
Liu K, Tovar A (2014) An efficient 3D topology optimization code written in MATLAB. Struct Multidisc Optim 50(6):1175–1196. https://doi.org/10.1007/s00158-014-1107-x
Novotny AA, Sokołowski J (2013) Topological derivatives in shape optimization. Springer, Berlin
Sigmund O (2001) A 99 line topology optimization code written in MATLAB. Struct Multidisc Optim 21(2):120–127. https://doi.org/10.1007/s001580050176
Sigmund O, Maute K (2013) Topology optimization approaches. Struct Multidisc Optim 48(6):1031–1055. https://doi.org/10.1007/s00158-013-0978-6
Svanberg K (1987) The method of moving asymptotes—a new method for structural optimization. Int J Numer Methods Eng 24(2):359–373. https://doi.org/10.1002/nme.1620240207
Talischi C, Paulino GH, Pereira A, Menezes IFM (2012) PolyTop: a MATLAB implementation of a general topology optimization framework using unstructured polygonal finite element meshes. Struct Multidisc Optim 45(3):329–357. https://doi.org/10.1007/s00158-011-0696-x
Wang C, Zhao Z, Zhou M, Sigmund O, Zhang XS (2021) A comprehensive review of educational articles on structural and multidisciplinary optimization. Struct Multidisc Optim 64:2827–2880. https://doi.org/10.1007/s00158-021-03050-7
Wang MY, Wang X, Guo D (2003) A level set method for structural topology optimization. Comput Methods Appl Mech Eng 192(1):227–246. https://doi.org/10.1016/S0045-7825(02)00559-5
Wei P, Li Z, Li X, Wang MY (2018) An 88-line MATLAB code for the parameterized level set method based topology optimization using radial basis functions. Struct Multidisc Optim 58(2):831–849. https://doi.org/10.1007/s00158-018-1904-8
Xia L, Xia Q, Huang X, Xie Y (2018) Bi-directional evolutionary structural optimization on advanced structures and materials: a comprehensive review. Arch Comput Methods Eng 25(2):437–478. https://doi.org/10.1007/s11831-016-9203-2
Xie Y, Steven GP (1993) A simple evolutionary procedure for structural optimization. Comput Struct 49(5):885–896. https://doi.org/10.1016/0045-7949(93)90035-C
Yaghmaei M, Ghoddosian A, Khatibi MM (2020) A filter-based level set topology optimization method using a 62-line MATLAB code. Struct Multidisc Optim 62(2):1001–1018. https://doi.org/10.1007/s00158-020-02540-4
Zhang W, Yuan J, Zhang J, Guo X (2016) A new topology optimization approach based on Moving Morphable Components (MMC) and the ersatz material model. Struct Multidisc Optim 53(6):1243–1260. https://doi.org/10.1007/s00158-015-1372-3
Zhang W, Zhao L, Gao T (2017a) CBS-based topology optimization including design-dependent body loads. Comput Methods Appl Mech Eng 322:1–22. https://doi.org/10.1016/j.cma.2017.04.021
Zhang W, Zhao L, Gao T, Cai S (2017b) Topology optimization with closed B-splines and Boolean operations. Comput Methods Appl Mech Eng 315:652–670. https://doi.org/10.1016/j.cma.2016.11.015
Zhang W, Zhou L (2018) Topology optimization of self-supporting structures with polygon features for additive manufacturing. Comput Methods Appl Mech Eng 334:56–78. https://doi.org/10.1016/j.cma.2018.01.037
Zhang W, Zhou Y, Zhu J (2017c) A comprehensive study of feature definitions with solids and voids for topology optimization. Comput Methods Appl Mech Eng 325:289–313. https://doi.org/10.1016/j.cma.2017.07.004
Zhou Y, Zhang W, Zhu J, Xu Z (2016) Feature-driven topology optimization method with signed distance function. Comput Methods Appl Mech Eng 310:1–32. https://doi.org/10.1016/j.cma.2016.06.027
Zhou Y, Zhu J, Zhan H, Zhang W, Gu Y (2021) A bio-inspired B-spline offset feature for structural topology optimization. Comput Methods Appl Mech Eng 386:114081. https://doi.org/10.1016/j.cma.2021.114081
Acknowledgements
The financial support for this work from National Natural Science Foundation of China (11702254, 12032018) and Key Science and Technology Program of Henan Province (212102210068). The authors would like to thank Professor Krister Svanberg for providing the MATLAB implementation of the Method of Moving Asymptotes algorithm used in this work.
Author information
Authors and Affiliations
Contributions
Daoyuan Yu wrote the original draft and the initial MATLAB code; Tong Gao contributed to the conception of this study and helped perform the optimization with constructive discussions; Shouyu Cai and Weihong Zhang contributed significantly to methodology development, manuscript modification and code streamlining, and both provided the project funding support for this work.
Corresponding author
Ethics declarations
Conflict of interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.
Reproducibility of results
The 168-line MATLAB code is provided in the Appendix, and can also be downloaded in the supplementary material. A more detailed implementation of the ABM is available upon request by email (caishouyu@zzu.edu.cn). The MMA algorithm we use here is Version September 2007 (and a small change August 2008) developed by Professor Krister Svanberg (krille@math.kth.se).
Additional information
Responsible editor: Xiaojia Shelly Zhang
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Supplementary Information
Below is the link to the electronic supplementary material.
Appendix
Appendix
Rights and permissions
About this article
Cite this article
Yu, D., Cai, S., Gao, T. et al. A 168-line MATLAB code for topology optimization with the adaptive bubble method (ABM). Struct Multidisc Optim 66, 10 (2023). https://doi.org/10.1007/s00158-022-03403-w
Received:
Revised:
Accepted:
Published:
DOI: https://doi.org/10.1007/s00158-022-03403-w