Abstract
This paper presents a MATLAB code with the implementation of the Topology Optimization of Binary Structures (TOBS) method first published by Sivapuram and Picelli (Finite Elem Anal Des 139: pp. 49–61, 2018). The TOBS is a gradient-based topology optimization method that employs binary design variables and formal mathematical programming. Besides its educational purposes, the 101-line code is provided to show that topology optimization with integer linear programming can be efficiently carried out, contrary to the previous reports in the literature. Compliance minimization subject to a volume constraint is first solved to highlight the main features of the TOBS method. The optimization parameters are discussed. Then, volume minimization subject to a compliance constraint is solved to illustrate that the method can efficiently deal with different types of constraints. Finally, simultaneous volume and displacement constraints are investigated in order to expose the capabilities of the optimizer and to serve as a tutorial of multiple constraints. The 101-line MATLAB code and some simple enhancements are elucidated, keeping only the integer programming solver unmodified so that it can be tested and extended to other numerical examples of interest.
References
Allaire G (2009) A 2-D Scilab Code for shape and topology optimization by the level set method. http://www.cmap.polytechnique.fr/allaire/levelset_en.html
Andreassen E, Clausen A, Schevenels M, Lazarov BS, Sigmund O (2011) Efficient topology optimization in MATLAB using 88 lines of code. Struct Multidiscip Optim 43:1–16
Ansola LR, Querin OM, Garaigordobil JA, Alonso GC (2018) A sequential element rejection and admission (SERA) topology optimization code written in Matlab. Struct Multidiscip Optim 58(3):1297–1310. https://doi.org/10.1007/s00158-018-1939-x
Beckers M (1999) Topology optimization using a dual method with discrete variables. Struct Multidiscip Optim 17:14–24
Challis VJ (2010) A discrete level-set topology optimization code written in Matlab. Struct Multidiscip Optim 41:453– 464
Cornuéjols G (2008) Valid inequalities for mixed integer linear programs. Math Program B 112:3–44
Deaton JD, Grandhi RV (2014) A survey of structural and multidisciplinary continuum topology optimization: post 2000. Struct Multidiscip Optim 49:1–38
Emmendoerfer H, Fancello EA, Silva ECN (2018) Level set topology optimization for design-dependent pressure load problems. Int J Numer Methods Eng 115(7):825–848
Feppon F, Allaire G, Bordeu F, Cortial J, Dapogny C (2019) Shape optimization of a coupled thermal fluid-structure problem in a level set mesh evolution framework. SeMA J 76(3):413– 458
Gao T, Zhang W (2010) Topology optimization involving thermo-elastic stress loads. Struct Multidiscip Optim 42(5):725– 738
Guest JK, Prèvost JH, Belytschko T (2004) Achieving minimum length scale in topology optimization using nodal design variables. Int J Numer Meth Eng 61(2):238–254
Haftka RT, Gürdal Z (1991) Elements of structural optimization, 3rd edn. Kluwer Academic Publishers, Kluwer
Huang X, Xie YM (2007) Convergent and mesh-independent solutions for the bi-directional evolutionary structural optimization method. Finite Elem Anal Des 43:1039–1049
Land AH, Doig AG (1960) An automatic method of solving discrete programming problems. Econometrica 28:497–520
Liang Y, Cheng G (2019) Topology optimization via sequential integer programming and canonical relaxation algorithm. Comp Methods Appl Mechan Eng 348:64–96. https://doi.org/10.1016/j.cma.2018.10.050
Liang Y, Cheng G (2020) Further elaborations on topology optimization via sequential integer programming and canonical relaxation algorithm and 128-line MATLAB code. Struct Multidiscip Optim 61:411–431
Neofytou A, Picelli R, Huang TH, Chen JS, Kim HA (2020) Level set topology optimization for design-dependent pressure loads using the reproducing kernel particle method. Struct Multidiscip Optim 61:1805–1820
Picelli R, Sivapuram R (2019) Solving topology optimization with 0,1 design variables and mathematical programming: the TOBS method. In: Proceedings of the 13th world congress of structural and multidisciplinary optimization (WCSMO-13), Beijing, China
Picelli R, Neofytou A, Kim HA (2019) Topology optimization for design-dependent hydrostatic pressure loading via the level-set method. Struct Multidiscip Optim 60:1313–1326
Picelli R, Ranjbarzadeh S, Sivapuram R, Gioria RS, Silva ECN (2020) Topology optimization of binary structures under design-dependent fluid-structure interaction loads. Struct Multidiscip Optim 62:2101-2116
Querin OM, Steven GP, Xie YM (1998) Evolutionary structural optimisation (ESO) using a bidirectional algorithm. Eng Comput 15(8):1031–1048
Rozvany GIN, Zhou M, Birker T (1992) Generalized shape optimization without homogenization. Struct Opt 4:250–254
Sigmund O (2001a) A 99 line topology optimization code written in Matlab. Struct Multidiscip Optim 21:120–127
Sigmund O (2001b) Design of multiphysics actuators using topology optimization - Part i: one material structures. Comput Methods Appl Mech Eng 190:6577–6604
Sigmund O (2007) Morphology-based black and white filters for topology optimization. Struct Multidiscip Optim 33(4-5):401–424
Sivapuram R, Picelli R (2018) Topology optimization of binary structures using integer linear programming. Finite Elem Anal Des 139:49–61
Sivapuram R, Picelli R (2020) Topology design of binary structures subjected to design-dependent thermal expansion and fluid pressure loads. Struct Multidiscip Optim 61:1877–1895
Sivapuram R, Picelli R, Xie YM (2018) Topology optimization of binary microstructures involving various non-volume constraints. Comput Mater Sci 154:405–425. https://doi.org/10.1016/j.commatsci.2018.08.008
Svanberg K, Werme M (2005) A hierarchical neighbourhood search method for topology optimization. Struct Multidiscip Optim 29:325–340
Svanberg K, Werme M (2006) Topology optimization by sequential integer linear programming. In: Bendsøe MP, Olhoff N, Sigmund O (eds) IUTAM symposium on topological design optimization of structures, machines and materials. Springer, Netherlands, pp 425–436
Vanderbei RJ (2014) Linear programming: foundations and extensions, 4th edn. Springer, US
Vicente WM, Picelli R, Pavanello R, Xie YM (2015) Topology optimization of frequency responses of fluid-structure interaction systems. Finite Elem Anal Des 98:1–13
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 Multidiscip Optim 58:831–849
Williams P (2009) Integer programming. Springer, Boston, pp 25–70
Xia L, Xia Q, Huang X, Xie YM (2018) Bi-directional evolutionary structural optimization on advanced structures and materials: a comprehensive review. Arc Comput Methods Eng 25(2):437– 478
Xie YM, Steven GP (1993) A simple evolutionary procedure for structural optimization. Comput Struct 49:885–896
Yoon GH (2020) Topology optimization method with finite elements based on the k − ε turbulence model. Comput Methods Appl Mechan Eng 361:112–784
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 Multidiscip Optim 53:1243–1260
Zuo ZH, Xie YM (2015) A simple and compact python code for complex 3D topology optimization. Adv Eng Softw 85:1–11
Funding
The first author would like to thank the support of FAPESP (São Paulo Research Foundation), grants 2018/05797-8 and 2019/01685-3 under the Young Investigators Awards program.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
The authors declare that they have no conflict of interest.
Additional information
Responsible Editor: Ming Zhou
Publisher’s note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Replication of results
The 101-line code is provided in the Appendix A. The code and its modified versions to run all examples in this paper are also provided as supplementary material. A more detailed implementation of the TOBS method is available upon request by email or for download at https://github.com/renatopicelli/tobs.
Electronic supplementary material
Below is the link to the electronic supplementary material.
Appendix A: 101-line TOBS code
Appendix A: 101-line TOBS code
Rights and permissions
About this article
Cite this article
Picelli, R., Sivapuram, R. & Xie, Y.M. A 101-line MATLAB code for topology optimization using binary variables and integer programming. Struct Multidisc Optim 63, 935–954 (2021). https://doi.org/10.1007/s00158-020-02719-9
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00158-020-02719-9