TOPress3D: 3D topology optimization with design-dependent pressure loads in MATLAB
Prabhat Kumar
TL;DR
TOPress3D addresses 3D topology optimization for design-dependent pressure loads by solving a Darcy-flow–based pressure field with a drainage term and mapping it to nodal loads via a fixed transformation. It integrates a density-filtered SIMP model with MMA optimization and adjoint sensitivity, including load-sensitivity terms, to minimize compliance under a volume constraint. The work provides a compact, public MATLAB code (158 lines) organized into six parts and demonstrates four 3D load-bearing problems, validating robustness and learning utility. This code serves as an accessible educational tool that can be extended to advanced constraints and applications such as pneumatically actuated soft robots and pressure-loaded metamaterials.
Abstract
This paper introduces "\texttt{TOPress3D}," a 3D topology optimization MATLAB code for structures subjected to design-dependent pressure loads. With a primary focus on pedagogical objectives, the code provides an easy learning experience, making it a valuable tool and practical gateway for newcomers, students, and researchers towards this topic. \texttt{TOPress3D} uses Darcy's law with a drainage term to link the given pressure load to design variables that, in turn, is converted to consistent nodal loads. Optimization problems focused on compliance minimization under volume constraints with pressure loads are solved. Load sensitivities arising due to design-dependent nature of the loads are evaluated using the adjoint-variable approach. The method of moving asymptotes is used to update the design variables. \texttt{TOPress3D} is constituted by six main parts. Each is described in detail. The code is also tailored to solve different problems. The robustness and success of the code are demonstrated in designing a few pressure load-bearing structures. The code is provided in Appendix~B and is available with extensions in the supplementary material and publicly at \url{https://github.com/PrabhatIn/TOPress3D}.
