Structural and Multidisciplinary Optimization

, Volume 21, Issue 2, pp 120–127

A 99 line topology optimization code written in Matlab


  • O. Sigmund
    • Department of Solid Mechanics, Building 404, Technical University of Denmark, DK-2800 Lyngby, Denmark¶e-mail:
Educational article

DOI: 10.1007/s001580050176

Cite this article as:
Sigmund, O. Struct Multidisc Optim (2001) 21: 120. doi:10.1007/s001580050176


The paper presents a compact Matlab implementation of a topology optimization code for compliance minimization of statically loaded structures. The total number of Matlab input lines is 99 including optimizer and Finite Element subroutine. The 99 lines are divided into 36 lines for the main program, 12 lines for the Optimality Criteria based optimizer, 16 lines for a mesh-independency filter and 35 lines for the finite element code. In fact, excluding comment lines and lines associated with output and finite element analysis, it is shown that only 49 Matlab input lines are required for solving a well-posed topology optimization problem. By adding three additional lines, the program can solve problems with multiple load cases. The code is intended for educational purposes. The complete Matlab code is given in the Appendix and can be down-loaded from the web-site

Key words: topology optimization, education, optimality criteria, world-wide web, Matlab code
Download to read the full article text

Copyright information

© Springer-Verlag Berlin Heidelberg 2001