By Mohaiminul Islam
Introducing Topology Optimization for Additive Manufacturing
Additive manufacturing (3D printing) is a technique to create structures directly from computer files, much like common printers, but instead of imprinting an image and text on paper with ink, 3d printers create a 3D structure with a wide range of materials (from polymers to metals and even living tissue). Due to the versatile nature of this technique, it has enabled us to create complex structures ranging from automotive bodies to artificial human hearts. In contrast to traditional machining techniques, 3D printing has minimal limitations on the shape and complexity of the design. Due to these advantages, efficient and optimized design of structures has become an important part of 3D printing.
Topology optimization (TO) is a technique for developing optimal designs with minimal a priori decisions. Before 3D printing, however, TO was limited to research studies due to its complex and intricate structures. With the advent of 3D printing, it is now feasible to manufacture optimized structures from TO.
One of the major limitations of TO is computational cost and lack of generalizability, optimized structure for one scenario is not suitable for another one. There have been several studies to circumvent these issues; one of the promising advancements is data driven approaches, namely Machine Learning (ML). ML methods can build off previous data and predict future outcomes while saving computational resources.
Developing a Topology Optimization Methodology
For my Scholars Studio digital research project, I am developing Python code to accelerate the optimization process with the help of machine learning without losing much accuracy, making a model useful for different loading case scenarios. My plan for this project is to have unoptimized structure (initial guess at the flow chart in Figure 1) with force and loading condition as input and optimized structure as output.
Topology optimization redistributes materials in a way that the structural integrity is maximized while using the least amount of material necessary. In structural optimization, one of the common objectives is to make the structure durable. For example, building a wall with the least amount of bricks while keeping the wall structurally sound. As TO redistributes materials and gets rid of any unnecessary materials, this technique saves on raw materials. The resulting structure is lightweight as well as strong and ready to be 3D printed.
The example gif at the beginning, uses 60% of the original structure (thus saving 40% in raw materials and weight) while keeping the structure durable. The optimized structures are more efficient (by minimizing friction), use less materials, so they are more environmentally friendly, and they save time and money for manufacturing.
Figure 1: Topology optimization flow chart.
Despite many advantages, this sample suffers from several disadvantages as well. The optimization problem is not general for every loading condition, and it is computationally expensive (the gif at the beginning took 1200 iterations to get to the final results). ML algorithms have the inherent ability to learn from data traits.
As a result, TO if coupled with ML algorithm has a prospect to be generalizable for any loading condition while remaining computationally inexpensive. Because once the ML model is trained it can predict without any iteration, thus saving time at the same and with enough training data ML can be generalized for many load cases. TO can also be extended to optimize micro-structures or multi-material structures.
Machine Learning and Topology Optimization
In this project, I will solve the partial differential equations (PDEs) in their weak form with FEniCS, a Python library specially designed to solve PDEs numerically. The details of the solution will be discussed in the next blog post. Solving PDEs numerically is a challenge as it introduces errors to the solution. However, in most cases analytical solution for a PDE doesn’t exist, so solving numerically is the only option. Keeping the numerical errors at an acceptable level is always a challenge.
Once I have the data from TO analysis, I will use Keras for ML implementation. The ML algorithm will hopefully get to the final optimized structure without any iterations with reasonable accuracy using just a fraction of the time of the TO process.
As for coding I prefer to use Jupyter Notebooks in an Anaconda environment. My code will be made public so that any interested party can access and reproduce the results.
This project aims to accelerate the process of structural optimization for 3D printing, making the process more robust and computationally efficient. Currently I am working with large scale structure. In future I plan to incorporate smaller scale into optimization framework. For example, now I am building a wall with optimized shape, in future I can also add the optimization of the brick (orientation of the brick, best shape of the brick considering practical case scenarios).
The next step for this project is to incorporate multi-scale optimization where the micro (brick) and macro (wall) structure is optimized simultaneously. This will ensure more reduction of wastage of raw material by ensuring optimum design with the best material properties. The general design framework should be applicable to a design problem based on loading conditions particular to any industry.