Educational article

Structural and Multidisciplinary Optimization

, Volume 21, Issue 2, pp 120-127

First online:

A 99 line topology optimization code written in Matlab

  • O. SigmundAffiliated withDepartment of Solid Mechanics, Building 404, Technical University of Denmark, DK-2800 Lyngby, Denmark¶e-mail:

Rent the article at a discount

Rent now

* Final gross prices may vary according to local VAT.

Get Access


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