• Media type: E-Article
  • Title: Topology optimization using PETSc: a Python wrapper and extended functionality
  • Contributor: Smit, Thijs; Aage, Niels; Ferguson, Stephen J.; Helgason, Benedikt
  • imprint: Springer Science and Business Media LLC, 2021
  • Published in: Structural and Multidisciplinary Optimization
  • Language: English
  • DOI: 10.1007/s00158-021-03018-7
  • ISSN: 1615-147X; 1615-1488
  • Origination:
  • Footnote:
  • Description: <jats:title>Abstract</jats:title><jats:p>This paper presents a Python wrapper and extended functionality of the parallel topology optimization framework introduced by Aage et al. (Topology optimization using PETSc: an easy-to-use, fully parallel, open source topology optimization framework. Struct Multidiscip Optim 51(3):565–572, 2015). The Python interface, which simplifies the problem definition, is intended to expand the potential user base and to ease the use of large-scale topology optimization for educational purposes. The functionality of the topology optimization framework is extended to include passive domains and local volume constraints among others, which contributes to its usability to real-world design applications. The functionality is demonstrated via the cantilever beam, bracket and torsion ball examples. Several tests are provided which can be used to verify the proper installation and for evaluating the performance of the user’s system setup. The open-source code is available at <jats:ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:href="https://github.com/thsmit/">https://github.com/thsmit/</jats:ext-link>, repository <jats:inline-formula><jats:alternatives><jats:tex-math>$$\texttt {TopOpt\_in\_PETSc\_wrapped\_in\_Python}$$</jats:tex-math><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:mi>TopOpt</mml:mi> <mml:mi>_</mml:mi> <mml:mi>in</mml:mi> <mml:mi>_</mml:mi> <mml:mi>PETSc</mml:mi> <mml:mi>_</mml:mi> <mml:mi>wrapped</mml:mi> <mml:mi>_</mml:mi> <mml:mi>in</mml:mi> <mml:mi>_</mml:mi> <mml:mi>Python</mml:mi> </mml:mrow> </mml:math></jats:alternatives></jats:inline-formula>.</jats:p>