GridapTopOpt.jl: A scalable Julia toolbox for level set-based topology optimisation

Zachary J. Wegert,Jordi Manyer,Connor Mallon,Santiago Badia,Vivien J. Challis
2024-10-11
Abstract:In this paper we present GridapTopOpt, an extendable framework for level set-based topology optimisation that can be readily distributed across a personal computer or high-performance computing cluster. The package is written in Julia and uses the Gridap package ecosystem for parallel finite element assembly from arbitrary weak formulations of partial differential equation (PDEs) along with the scalable solvers from the Portable and Extendable Toolkit for Scientific Computing (PETSc). The resulting user interface is intuitive and easy-to-use, allowing for the implementation of a wide range of topology optimisation problems with a syntax that is near one-to-one with the mathematical notation. Furthermore, we implement automatic differentiation to help mitigate the bottleneck associated with the analytic derivation of sensitivities for complex problems. GridapTopOpt is capable of solving a range of benchmark and research topology optimisation problems with large numbers of degrees of freedom. This educational article demonstrates the usability and versatility of the package by describing the formulation and step-by-step implementation of several distinct topology optimisation problems. The driver scripts for these problems are provided and the package source code is available at https://github$.$com/zjwegert/GridapTopOpt.jl.
Mathematical Software
What problem does this paper attempt to address?
The problem that this paper attempts to solve is how to develop an efficient, easy - to - use and extensible framework for topology optimization based on the level - set method in the field of structural optimization. Specifically, the author introduces **GridapTopOpt**, a toolbox written in the Julia programming language, which aims to solve large - scale three - dimensional topology optimization problems and supports parallel computing. The following are the key problems that the paper attempts to solve: 1. **Improving the extensibility and efficiency of topology optimization**: - **Parallel computing**: The paper proposes a framework that can be easily distributed on personal computers or high - performance computing clusters, taking advantage of Julia's parallel computing capabilities, especially achieving distributed - memory parallel computing through the Message Passing Interface (MPI). - **Automatic differentiation**: To alleviate the bottleneck of analytic derivative derivation in complex problems, the paper implements automatic differentiation techniques, which help to quickly calculate gradients and sensitivities. 2. **Simplifying the user interface**: - **Intuitive user interface**: GridapTopOpt provides an intuitive and easy - to - use user interface, allowing users to implement various topology optimization problems with a syntax close to mathematical symbols. - **Flexible extensibility**: Through the multiple dispatch mechanism, users can easily extend the functionality of the library without modifying the core implementation. 3. **Solving practical engineering problems**: - **Multi - physics problems**: The paper shows that GridapTopOpt can handle various types of topology optimization problems such as two - dimensional and three - dimensional, linear and nonlinear. - **Large - scale problems**: This toolbox can solve benchmark and research problems with a large number of degrees of freedom, which is suitable for large - scale optimization requirements in practical engineering. 4. **Education and popularization**: - **Educational articles**: The paper demonstrates the usability and flexibility of GridapTopOpt by describing in detail the formulation and step - by - step implementation process of several specific topology optimization problems, which helps students and beginners understand the basic concepts and techniques of topology optimization. ### Main contributions of the paper - **Technical contributions**: Developed an efficient parallel computing framework that supports topology optimization based on the level - set method. - **User - friendly**: Provided an intuitive and easy - to - use toolbox, enabling researchers and engineers to quickly get started. - **Educational value**: Helped students and beginners understand and apply topology optimization techniques through detailed examples and code. ### Conclusion By introducing the GridapTopOpt toolbox, the paper has solved some key problems in the field of topology optimization, especially in parallel computing, automatic differentiation and user interface design. These improvements not only improve the efficiency and extensibility of topology optimization, but also provide strong support for education and research.