## 9 Topology Optimization Results
\(e_{vol}=0.05\), while the remaining cases considered an initial density equal to 0.5. The maximum move limit was equal to 0.2 for the OC or MMA algorithms and 1.0 for the SciPy algorithms SLSQP or Trust-constr, corresponding to their pre-default values. The blurring filter was applied to both the sensitivity and design densities with a maximum search radius of 8.0 mm for the L-bracket, 12.0 mm for the Cantilever beam, and 3.5 mm for the bonded support, except for the discrete version of the OC, which only applied the blurring filter to the sensitivity. The influence of the frozen elements was also considered during the application of the blurring filter. For stress-dependent problem statements, a p-norm exponential factor \(Qi=8.0\) was used. Overall, the Trust-constr and SLSQP algorithms tended to require a larger number of iterations to reach convergence. The reason for this difference was justified by their internal convergence criteria, as described in Section 6.11. In the results shown, the existence of few elements with intermediate design densities is, generally, to be expected for two reasons. First, applying a blurring filter will cause a gradual transition between the solid and void regions, avoiding a full \"black-and-white\" solution. Second, as described in Section 6.11, the convergence criterion depends only on the values of the objective function and does not impose a strict restriction on the final solution being constituted only by solid elements. These two factors justify the apparent better performance of the discrete version of the OC algorithm, since it only uses solid elements and does not have a blurring filter applied to the element densities. However, it is most likely that this optimization method converged to a better local minimum. It is also relevant to note that the mesh size had an influence on the use of elements with intermediate design densities. To completely avoid the existence of residual grey areas, it is recommended to implement projection methods [103], to define the final contour of the geometry, or to apply a final threshold filter to the design densities of each element. However, despite the potential influence of internal parameters, such as the filtering approach, mesh refinement, and the choice of the optimization algorithm and its hyperparameters, the results presented in both case studies are in line with the information reported in previous publications [53]. Regarding the computational efficiency of the implementation proposed here, it was seen that it requires an average of 50 s per iteration when executed with an Intel(r) Core(tm) i7-8750H CPU @ 2.20 GHz. However, the use of external packages, to apply the SLSQP and Trust-constr algorithms available in Python, led to an increase of this value to an average of 380 s per iteration. These values include the whole process required to perform an iteration, including: the update of the material properties, the preparation of the ABAQUS(r) input file, model execution, data extraction from the FEA solution, the calculation of gradients, the application of the optimization process to update the design densities, and the plot of the new material distribution. Finally, the Cantilever beam and L-bracket problems solved in these sections could also be replicated in 3D space. This is possible as the code provided includes the implementation of a 3D element (C3D8 in ABAQUS(r)) and as the problem solving process does not require any particular adaptation when being converted to 3D space. The interested reader is informed that the Dataset [94] contains all the solutions obtained by each optimization algorithm, at each iteration. Due to its large extension, the information presented in this section is limited to the most-relevant solutions.