Next Article in Journal
CellGAN: Generative Adversarial Networks for Cellular Microscopy Image Recognition with Integrated Feature Completion Mechanism
Previous Article in Journal
Improved Similarity Law for Scaling Dynamic Responses of Stiffened Plates with Distorted Stiffener Configurations
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Sensitivity Analysis and Filtering of Machinable Parts Using Density-Based Topology Optimization

by
Abraham Vadillo Morillas
1,*,
Jesús Meneses Alonso
1,2,
Alejandro Bustos Caballero
3 and
Cristina Castejón Sisamón
1,2
1
MAQLAB Research Group, Mechanical Engineering Department, University Carlos III de Madrid, 28911 Leganés, Spain
2
Pedro Juan de Lastanosa Research Institute, 28911 Leganés, Spain
3
MAQLAB Research Group, Department of Mechanics, Universidad Nacional de Educación a Distancia, 28040 Madrid, Spain
*
Author to whom correspondence should be addressed.
Appl. Sci. 2024, 14(14), 6260; https://doi.org/10.3390/app14146260
Submission received: 11 June 2024 / Revised: 29 June 2024 / Accepted: 15 July 2024 / Published: 18 July 2024

Abstract

:
Topology optimization has become a popular tool for designing optimal shapes while meeting specific objectives and restrictions. However, the resulting shape from the optimization process may not be easy to manufacture using typical methods like machining and may require interpretation and validation. Additionally, the final shape depends on chosen parameters. In this study, we conduct a sensitivity analysis of the main parameters involved in 3D topology optimization—penalization and filter radius—focusing on the density-based method. We analyze the features and characteristics of the results, concluding that a machinable and low interpretable part is not an attainable result in by-default topology optimization. Therefore, we propose a new method for obtaining more manufacturable and easily interpretable parts. The main goal is to assist designers in choosing appropriate parameters and understanding what to consider when seeking optimized shapes, giving them a new plug-and-play tool for manufacturable designs. We chose the density-based topology optimization method due to its popularity in commercial packages, and the conclusions may directly influence designers’ work. Finally, we verify the study results through different cases to ensure the validity of the conclusions.

1. Introduction

Topology optimization (TO) is a design tool for obtaining optimal shapes with known conditions, based on the optimization problem definition. In other words, it aims to achieve the best possible result for a given function while applying specific constraints. TO has been increasingly used during the last years, with increased research on the topic and the development of commercial software for obtaining topology parts, as mentioned by Shiye and Jiejiang [1]. Nevertheless, the foundations of TO theory were established over a century ago [2], with major applications of the actual theory in the guidelines developed by Dorn [3]. Years later, the computerization of topology optimization arrived [4], with further applications in the digital era [5].
In this epigraph, a brief explanation of density-based TO is presented in order to show the used methods, solving techniques, and filters as well as the application of the studied parameters. The values of these and MatLab® codes are provided for replicating the results of the study, which can be applied to the well-known TO codes discussed in the literature [6,7]. This chapter is divided in two sections: one related to the used TO method, and other related to the filters oriented towards subtractive manufacturing.

1.1. Density-Based Topology Optimization

The density-based approach starts from a design domain Ω that is discretized using nodes and elements. This design domain is the maximum space (line, surface, or volume) where the final design could exist. A density value is assigned to each element of the discretized design domain; hence, it is parametrized by this density. The density value is not binary, so it can vary from 0 (void) to 1 (solid), governed by an interpolation function [8,9]. Historically, the use of only black and white elements easily leads to an ill-posed result [10]. Many solutions have been proposed [11,12,13], but none are totally satisfactory. The proposal to include not only binary values for the density of each element was presented by Bendsøe and later by Mlejnek in their studies [8,9]. Those values are calculated following a power rule [14], which will be explained later in this manuscript.
The density-based approach is extensively described in several studies [6,15]. It follows the simplified flowchart shown in Figure 1, where every step is numbered for future reference.
This study gives special attention to levels 4 and 5 of the flowchart in Figure 1, as these processes involve the parameters under study. Specifically, for the interpolation in level 4, the Solid Isotropic Material with Penalization method (SIMP) is utilized. Additionally, a density filter is employed as the filtering technique in level 5.

1.2. Interpolation Scheme: The SIMP

The SIMP is based on the relation of the stress state of every element with its relative density. The formulation is included in Equation (1):
E i = E x i = E m i n + x i p ( E 0 E m i n )
where E i is the element Young Modulus, E m i n is the almost zero elastic modulus of void material for avoiding mathematical incompatibility issues, E 0 is the elastic modulus of the original material, x i is the relative density of the element i , and p is the penalization factor. This penalization factor is one of the parameters to use in the sensitivity analysis of this manuscript. According to Equation (1), it is evident that a higher p will result in a more binary outcome [16,17,18], corresponding to the graph of a power rule function presented in Figure 2. The penalization raises the degree of the SIMP polynomial when it increases, resulting in a more discrete relation between the tensional state of the element and its density.
SIMP represents a robust, highly configurable, and computationally efficient scheme. It does not require homogenization and is adaptive to various design conditions and constraints. Due to these advantages, SIMP is chosen as the initial interpolation scheme for the research conducted in this work. However, using SIMP presents challenges such as dealing with intermediate densities, mesh dependency, and potential non-convergence [19].

1.3. Filtering: The Density Filter

The density-based method employs the Finite Element Method (FEM, see step 3 in Figure 1) and the SIMP method to assign each element a relative density value ranging from 0 to 1. The classical approach is finding a black and white layout (zeros and ones) that minimizes the compliance of the structure. A maximum volume fraction in relation to the original volume of the design domain is usually utilized as the upper limit optimization constraint [6].
Nonetheless, even with SIMP, mesh dependency, checkerboard, ill-posed, or local minima results can still arise [20]. To address these issues, the density filter [21] is employed in this study. A basic formulation of this filter is presented in Equation (2):
x ~ i = j ϵ N i H i j v j x j j ϵ N i H i j v j
where x ~ i is the filtered density of an element, N i represents the neighborhood of a specific element, v j is the volume of the element i , and H i j is a weight factor. The neighborhood of an element is defined as all the elements whose center is within a certain distance R from the centre of the element in analysis. This can be defined as in Equation (3):
N i = j : d i s t ( i , j ) R
where d i s t i , j is the Euclidean distance between elements i and j. The weight factor H i j can be defined as in Equation (4):
H i j = R d i s t ( i , j )
where is element j , which is always inside neighborhood N i . The constant R is defined as the filter radius and is the second parameter used in the sensitivity analysis throughout this paper. Now, x ~ i from Equation (2), known as the filtered density of the element, is substituted in the SIMP (Equation (1)) as in Equation (5):
E i = E x ~ i = E m i n + x ~ i p ( E 0 E m i n )

1.4. Study Description and Novelty

Density-based TO is the most popular method in commercial packages such as Altair Hyperworks suite [22], Ansys suite [23], Dassault Systèmes suite [24], and PTC suite [25]. This manuscript analyzes the two main parameters involved in the TO process: the penalty and filter radius. This study aims to determine the best parameters for obtaining manufacturable results with minimal interpretation for three-axis machining. This research aims to assist designers in making informed decisions and saving time in the preprocessing and simulation phases.
A wide range of values is considered for the mentioned parameters along with calculation times, discreteness, and machinability of the results. All these data are ordered and presented later in this study. It is important to note that other studies [1,16,26] make remarkable contributions in this area, but none of them are specifically oriented to a concrete manufacturing method and are often limited to a short set of values for the studied parameters. Other works [27,28] concentrate on achieving these manufacturable parts by adding filters and additional constraints to the TO process, but a more direct application is sought in the present paper.
The given text describes the development of a novel analysis tool that can assess the machinability of a part for a three-axis machine. This tool is later applied as a filter to automatically modify the non-extra-constrained part, making it more machinable and less interpretable. MatLab® R2023a is used for the ease of use of the scientific and designer communities and to allow the replication of the research results.
The structure of the paper is organized as follows:
  • The initial section discusses the chosen parameter value criteria, along with the load case and material parameters of the main study case for the sensitivity analysis.
  • Following that, the parameters used for analyzing the results are presented and explained, with particular emphasis on the measure of the discreteness and the evaluation of the machinability,
  • Subsequently, the results of the 92 simulations are presented and analyzed, allowing conclusions related to the aim of the study to be obtained.
  • The machining filter is presented and verified through different verification tests.
  • Finally, the conclusions drawn from the study and potential avenues for future research are presented.
In summary, novelty is given in two fields: the extensive sensitivity analysis of a 3D case and the machining analysis and filter. Regarding this last topic, this document includes a machining analysis tool that identifies whether an element is manufacturable via three-axis machining. It calculates the global machinability as a result, achieving a 100% fully machinable design. This analysis tool is used for the machining filter and the sensitivity analysis. Finally, a novel machining filter is presented in combination with the machining analysis tool. It takes into account the density threshold for displaying the elements and does not require big changes in the sensitivity analysis. These are differentiable points with respect to existing machining filters [27,28,29].

2. The Case Study

2.1. Parameter Value Selection Criteria

The text highlights that the filter radius ( R ) and penalization ( p ) are the two main parameters being analyzed. These parameters should not be chosen arbitrarily but require careful consideration to achieve a satisfactory outcome.
For penalization p , previous studies [1,26] indicate that a minimum value of three should be used for isotropic materials with a Poisson Ratio ν~1/3, within the defined topology optimization method. The relative density of each element follows the SIMP power rule, and it is observed that higher penalization values lead to sharper trends towards either 0 or 1 density. To analyze the parameter’s impact, values ranging from three (3) to six (6), inclusive, with increments of one (1) are chosen based on previous studies [1,26]. These values allow one to observe the transitional changes in the resultant shapes when larger penalization values are employed.
For filter radius R , the values were taken from different scopes, and they are summarized in Table 1. These sources include
  • Values used in other mentioned studies (OS).
  • Values derived from the Euclidean distance between the element under analysis and the neighboring layer of elements (ED).
  • Large estimated values intended to observe the behavior of the method with extreme values (LV).
The values of the filter radii in Table 1 were rounded to reduce computation time. This approach was chosen because the filter radius is a highly recurrent value throughout the process. Rounding the number to a value that does not overlap with the next filter radius value has no impact on the result.

2.2. Case Study Description and Material

The study aims to analyze parameters in a 3D structure, so the initial design space needs reliable dimensions in the x, y, and z directions. The typical load case involves minimizing compliance with a volume fraction constraint in a cantilever beam with a vertically applied distributed force. In this study, a point force (tip load) is used to emphasize the 3D nature of the case.
Considering that the element size is 1 in all directions, the initial design space consists of 80 elements in the x direction, 30 elements in the y direction, and 20 elements in the z direction. This choice helps generate fewer flat shapes in the optimization result. Figure 3 illustrates the case study with the applied load and the number of elements.
For this study, a volume fraction of 0.2 is applied, and a material with a Poisson Ratio (ν) of 0.3 is used. The value of E m i n in Equation (1) is set to 10−9. It is close enough to zero to avoid affecting calculations and prevent mathematical singularities. E 0 is set to 1, which is a typically used value in the mentioned previous studies for researching and reducing calculation time. These properties are chosen for comparing the results to other studies [1,26] and having a direct application in the known and accessible MatLab® codes [6,7].
The convergence is achieved when the maximum change in the density of any element between two consecutive iterations is less than 0.01. This is the recommended value based on the experience of previous studies [6].

2.3. Parameters for the Results Analysis

The sensitivity analysis aims to evaluate the machinability by exploring different filter radii and penalties to assist designers in their projects. The parameters extracted from the simulation results are intended to demonstrate this characteristic objectively. These parameters include the number of iterations, time per iteration, measure of non-discreteness, and machinability.
The number of iterations and time per iteration are directly obtained from MatLab® and will be presented in the subsequent section. However, further explanations are needed for the measure of non-discreteness and machinability parameters, which are provided below.

2.3.1. Measure of Non-Discreteness

Discreteness refers to a global characteristic of the final design, indicating how binary the result is with distinct void ( x ~ i = 0) and solid ( x ~ i = 1) elements. This parameter is important because the result representation includes only elements with density x ~ i above a threshold (in this case, 0.5). Consequently, there are elements that do not appear in the final design but still contribute to compliance, and their significance increases as the discreteness of the result grows. Since the designer needs to interpret the shape displayed in the TO result, and an objective of the study is to obtain easily interpretable components, it is essential to control and minimize the discreteness.
To analyze the characteristic of discreteness, Sigmund introduced a tool called the measure of non-discreteness ( M n d ), which is widely utilized in the investigation of this matter [30]. The measure of non-discreteness is represented by Equation (6):
M n d = e = 1 N 4 x ¯ e ( 1 x ¯ e ) N × 100 %
where N refers to the ID of each element in the design domain. The parameter M n d represents the measure of non-discreteness. It should be noted that the lower the value of M n d , the more binary the analysis results are.

2.3.2. Machinability

The machinability of the optimized shape is analyzed by assessing the accessibility of a hypothetical tool to each frontier element. A frontier element refers to the last element with a density higher than the chosen threshold. This analysis involves an element-by-element evaluation.
To initiate the analysis, the set of elements exceeding the selected density threshold is divided into distinct groups:
  • The external layer (EL): comprising all the elements located on the boundaries of the design domain. These elements are always accessible because they do not have any solid interface with the exterior.
  • The core layers (CL): representing the internal solid region, consisting of all the elements forming the shape of the part excluding the frontier elements.
  • The frontier layer (FL): consisting of the elements above the density threshold and located between the solid and void phases.
The frontier layer ( F L ) can be determined by considering that it includes all the elements exceeding the threshold but not belonging to the E L or C L groups, as stated in Equation (7):
n = 1 n N = e = 1 e E L + c = 1 c C L + f = 1 f F L
The F L is divided into three distinct groups in the subsequent step. These groups are based on the accessibility of the elements for a tool. The groups are as follows:
  • Elements directly accessible for a tool: These are the elements within the FL that can be readily machined using a tool.
  • Elements not directly accessible but machinable by machining a neighboring element: These elements are not directly accessible to a tool but can still be manufactured through the machining of a neighboring element.
  • Non-machinable elements: This group consists of elements within the FL that are not machinable.
This division allows for a more detailed understanding of the machinability characteristics of the elements within the F L , providing insights into their accessibility for machining operations. For the F L elements in groups 1 and 2, the process for identifying them is as follows:
For an element to be considered directly accessible for a tool, it must satisfy a specific condition: at its free faces, there must be a row of elements with densities below the selected threshold that extends to the boundaries of the design domain. To illustrate this process, let us consider the simplified 2D example in Figure 4, where the identification process is depicted. The blue elements represent those with densities exceeding the threshold, while the green element e(x,y) is the element currently being analyzed.
To determine if an element satisfies the condition of being directly accessible for a tool in the y axis, the row and column leading to that element are analyzed from the outside towards the inside in both directions (shaded elements in the central pane of Figure 4). If, at any point during the analysis, an element is encountered with a density exceeding the threshold, the condition is not fulfilled for that specific element.
To be considered machinable through its neighbor, an element must meet a specific condition: a free row must extend to its free face. To determine this, the neighboring rows are analyzed from the outside towards the inside until reaching the free face of the element. If, during this analysis, none of the studied lines contains an element with a density above the threshold, then the condition is fulfilled. Figure 5 illustrates this process in a similar manner to the explained process in Figure 4 but in the x axis direction.
The output parameter is a percentage of the machinable elements with respect to all the frontier elements. A value of 100% would mean that the design is fully manufacturable. The MATLAB ® code of this process and the rest of the machining filter (which is explained in subsequent epigraphs) are shown in Appendix A.

3. Sensitivity Analysis

The results of the TOs are presented in tables, which can be found in the Appendix B.1, Appendix B.2, Appendix B.3 and Appendix B.4. Note that the relative density x i of each element is represented with a greyscale factor in Appendix B.2, Appendix B.3 and Appendix B.4, where a darker element represents a value closer to 1. Only elements with a relative density x i > 0.5 are shown. Numerical results for the analysis are shown in Table 1, being
  • Sim. ID: the identifier of the specific TO case.
  • Penalization, p, and Filter Radius, R.
  • Iterations: the number of iterations required to achieve the convergence condition. Note that a maximum of 5000 iterations was set, so if the TO reaches this value, convergence is not reached.
  • It. Time: the average time the TO took in every iteration.
  • Objective, the compliance of the structure, calculated as in Equation (8):
c x = U T K U = n = 1 n E e x e u e T k 0 u e
where K , U , and F are the global stiffness matrix and the global displacement and force vectors, respectively. N is the total number of elements, u e is the e element displacement vector, k 0 is the element stiffness matrix, and x e is the e element density.
Next, in Figure 6 and Figure 7, some remarkable results are displayed along with fitted curves of the discrete results data.
As the filter radius increases, it is expected that higher filter radius values lead to simpler shapes, as the density filter in Equation (2) affects a greater number of elements. However, when the value of the radius becomes very large, the results start to exhibit discontinuities, and the computational cost increases.
Nevertheless, the fitted data depicted in Figure 6 reveal an unexpected trend. It is shown that as the filter radius grows, the TO process requires fewer iterations and less time per iteration for computation. This finding contradicts the initial expectation, as a larger filter radius entails analyzing more elements in each iteration.
Figure 7 provides an analysis of the TOs’ manufacturability. In Figure 7a, higher penalization values lead to slightly lower Mnd. This is an expected outcome, since higher penalization corresponds to a more aggressive interpolation of the SIMP function defined by Equation (1) and Figure 2.
Regarding non-discreteness, the results exhibit regular and predictable behavior for filter radii ranging from Sim. ID 19-72. These values increase with the corresponding filter radii. Similarly, machinability also increases with the filter radius. As mentioned previously, a higher radius corresponds to simpler shapes that are more easily machinable.
In Figure 7, it is evident that results become more inconsistent and show greater dispersion and poor predictability when large filter radii are used. One interesting point to note is that, in the default density-based TO approach, it is not possible to achieve the best values for discreteness and machinability simultaneously, as shown in Figure 8.
Machinability filter in combination with a Heaviside step filter [15,31,32,33] may result in an improvement of the M n d -Machinability combination, as will be presented in the next section.
Lower filter radii and lower penalization values lead to better compliance outcomes. Additionally, the results show lower dispersion with the smallest radii. These findings are expected, because more complex shapes result in a higher moment of inertia, leading to increased stiffness. This can clearly be seen in Figure 9, where the corrected data are represented using a two-term exponential line.

4. Additions to Filtering

The machining filter is positioned inside the optimization algorithm, which in this case is the Optimality Criteria method described by Liu and Tovar in their work [6], using the parameters described in previous studies [34,35,36,37]. The flowchart depicted in Figure 10 illustrates the position of the filters (machining filter and Heaviside step filter) using the numbering notation from Figure 1.
The code now includes three additions: the machining filter, the Heaviside step filter, and the ellipsoid-shaped density filter. These implementations are then explained and positioned inside the OC routine.

4.1. Machining Filter

The new machining filter developed for this study utilizes the analysis method described in Section 2.3.2 to identify elements. Non-machinable elements are identified, and an individual machinability radius, Rmach, is assigned to each of them. The determination of Rmach involves analyzing the neighboring elements of the element under analysis, using the filter radii described in Equation (4) and Table 1. This process is performed individually for each Cartesian axis, so the designer can obtain machinable parts in a concrete direction,
The analysis begins with the smallest practical radius of 1.5. Suppose a neighboring element is deemed machinable through direct access or neighbor access. In that case, this radius is adopted, and the elements influenced by this radius are not analyzed further until the next iteration, for computational efficiency.
Suppose there are no machinable elements within the neighborhood defined by the radius. In that case, the next radius in Table 1 is examined, and this process continues until at least one machinable element is found. This process in MATLAB® code is shown in Appendix B and Appendix C.
Once the non-machinable elements are detected, as explained in Section 2.3.2, and the filter radii are obtained, the filtering process can begin. It is graphically described in Figure 11, and it is also broken down step by step in the next section.
The process starts with the blueprint design, which is the resultant density field of the design variable update in the OC loop. This is represented in Figure 11a, where blue elements have a density over the chosen threshold. Then the filter radii are obtained using the MATLAB® code of Appendix A, considering that, in this case, a machinable result in the x direction is desired. The elements highlighted in pink in Figure 11b are the ones affected by the filter radii.
Now, two conditions are evaluated: the element density is above the density threshold, and pink elements are present in the machining direction at any point of the density field. If an element meets both conditions, its density is turned into zero. This is done to give a first access to the filter for working as will be now described. This first column filtering is represented in Figure 11c, where elements in red are the elements that meet the mentioned conditions. In the same figure, the yellow arrows point to the nearest pink elements in the machining direction, evidencing the existence of non-accessible elements. In Figure 11d, the design after the first column filtering is represented.
The rest of the columns are filtered in a similar way: the elements to filter are selected if they meet the conditions described above, but in this case, they take the density of the element before them in the machine direction, the (x − 1, y) element. In Figure 11e, the second column element detection is represented in a similar way as in Figure 11c. In Figure 11f, green arrows represent the elements from whom the filtered elements take their new density.
Figure 11g represents the density field after the second column filtering. The process continues until there are no elements that meet the filtering conditions. In Figure 11h, the final design after all the filtering processes is represented. The MATLAB® code of the filter itself is shown in Appendix C.
Finally, a kernel filter as described in Equation (2) is applied as a damping tool. Forcing some elements to have a concrete density can lead to a disintegrated density field and thus result in a difficult convergence of the OC routine. This acts as the density filter [21,38] presented in Section 1. It is also where the third addition, the ellipsoid-shaped filter, is applied (Section 4.3).

4.2. Heaviside Step Filter

To achieve a manufacturable part with minimal discretization of the element densities, a chain rule consisting of close filters through a Heaviside function as the one described by Schevenels and Sigmund, Andreassen et al., or Pellens et al. [15,31,32] is used first by applying a dilatation and lastly, an erosion step. Sigmund [30] demonstrated the use of close filters for reducing the discreteness of the result while preserving the original shape (non-filtered shape). The utilized Heaviside step function corresponds to the smooth approximation proposed by Wang et al. [39]:
x ¯ e = tanh β η + t a n h ( β x ~ e η ) tanh β η + t a n h ( β 1 η )
where β corresponds to the Heaviside smoothness parameter: a β approaching zero filters the densities linearly without making any changes, while β trending to infinite causes a step function in the value defined by the parameter η . When η = 1 , the expression corresponds to an erosion filter, while when η = 0 , it corresponds to a dilation filter. x ~ e is the element density before filtering, and x ¯ e is the filtered element density. The aim of using first a dilation filter and later an eroding filter is to avoid a non-volume preserving strategy. In this case, a close–open filter is applied as specified by Sigmund in his study [30].
The sensitivities must be modified to ensure accurate calculation of the new design variables in every OC iteration. This is done through the chain rule described in Equation (10):
c x = c x ¯ x ¯ x ¯ ˇ x ¯ ˇ x ¯ ˇ ^ x ¯ ˇ ^ x ¯ ˇ ^ ^ x ¯ ˇ ^ ^ x ¯ ˇ ^ ^ ˇ x ¯ ˇ ^ ^ ˇ x
where “˄” represents a dilation operator, and “˅” is the erosion operator. The tilde represents the filtered density by the kernel filter.

4.3. Ellipsoid-Shaped Density Filter

The main issue when extrapolating results from the sensitivity analysis to other design spaces is the mesh dependency of the density-based TO [19]. The shape of the optimized part is directly dependent on the density filter described in Equation (2). This is caused by the relation between the filter size and the design domain size: using the same filter size with different design domains leads to different resultant shapes.
To address this characteristic, the original sphere-shaped filter is taken as an ellipsoid with equal semi-axes, so they can be individually varied with the three Cartesian dimensions of the initial design domain. As the used weighting factor is conic weights [38], the radii of the ellipsoid at the same latitude and longitude as the analyzed element, R i j k f i l , must be obtained for calculating the weight of the neighbor elements.
For obtaining this radii, six initial parameters are needed: a , b , and c , which are the semi-axes’ dimensions given by the user, and three filter radii, R x m i n , R y m i n , and R z m i n , respectively. The relative coordinates of the element being analyzed in the kernel filter with respect to the base element are denoted R i , R j , and R k .
The angles α and ω in Figure 12 are the geocentric latitude and longitude, respectively, which can be obtained with trigonometry, as follows:
α = tan 1 R y / R x ω = tan 1 R z / R x
The coordinates of the ellipsoid surface at the same latitude and longitude as the analyzed element, R x , R y , and R z , can be geometrically calculated. By combining these values with the general formula of an ellipsoid, Equation (12) is obtained for the calculation of the desired radius:
R i j k f i l = a b c c 2 cos 2 ( ω ) b 2 cos 2 α + a 2 s e n 2 ( α ) + a 2 b 2 cos 2 α s e n 2 ( ω )
The three implementations are presented and highlighted in green in the flowchart presented in Figure 13. The flowchart represents level 6 of Figure 1 and the blue block of Figure 10. The machining filter is divided into the three phases, described in Appendix A.1, Appendix A.2 and Appendix A.3, and the density filter is computed using the ellipsoid-shaped neighborhood.

5. Results

This section is divided in two parts. The first one validates the proposed additions to the original TO methodology. In this subsection, a concrete case of the sensitivity analysis is chosen, and the machining filter, the ellipsoid-shaped density filter, and the Heaviside step filter are applied separately and together. The aim is to show the impact on the results and verify their performance. The second subsection is an epigraph explaining the conclusions reached in this study, highlighting the most useful points for the potential designers who read this paper.

5.1. Validation

In this subsection, six different validation cases are analyzed based on the subcase R = 3 and p = 6 , whose data and shape can be seen in Appendix B.1 and Appendix B.2. All the figures are colored rainbow-like in the machining direction “i”, starting in blue with the elements (1, y, z) and finishing in red with the elements (80, y, z). This is done to give a clearer view of the results and the difference between the resultant shapes of the validation cases.
For cases (c), (d), (e), and (f), which are the cases where the Heaviside filter is applied, the searching methodology described in [40] is applied, updating the design variables every 25 iterations or when the updating conditions are met. Finally, case (g) is showcased, where the number of iterations for updating the design variables is reduced to 10 with the conditions of case (f). This is done to reduce the total number of iterations and search for an optional different design. A video showcasing case (g) and the AVD described in [40] is available in the Data Availability Statement section.
Relevant validation data are presented in Table 2, which shows the number of iterations before convergence, the measure of non-discreteness, the machinability, and the compliance (as objective function) of all the verification cases.

5.2. Conclusions

Through this study, several conclusions can be drawn regarding the parameters to be considered for designers when using TO as the design methodology, as well as how to fix the issues found. The proposed solutions can be interpreted as potential implementations for commercial software packages in the future, as this kind of methodology has not been implemented yet.
In the sensitivity analysis, modifications over the penalization and filter radius are analyzed in a concrete 3D case. A total of 92 simulations are showcased, presenting the most complete study of this kind found in the bibliography. The results are discussed in Section 3, but additional notes are included regarding the paper’s objective of aiding designers. When designing functional parts, it is important to aim for a low M n d and high machinability. Additionally, the objective function (compliance) should be minimized while meeting the prescribed constraints, the volume fraction in this case study.
The main issue detected in the sensitivity analysis is the fact that a low measure of non-discreteness M n d and high machinability cannot be achieved at the same time. This can be seen in Figure 7, but especially in Figure 8. As the volume fraction is the same for all the simulations, the objective is clearly dependent on the penalization, obtaining better results for low penalizations as Figure 9 and Appendix B.1 evidence. However, worse non-discreteness results are obtained for low penalization factors (Figure 7). Machinability trends show that results with a higher filter radius are more manufacturable, as shown in Figure 7.
Recognizing the limitations in achieving good machinability and non-discreteness, the need for additional tools to achieve the best results in terms of interpretation and manufacturability is acknowledged. For this paper, three additions have been studied and applied (two of them being a novelty): the machining filter, the ellipsoid-shaped density filter, and the Heaviside step filter. The machining filter was developed for obtaining machinable parts in a concrete direction. The ellipsoid-shaped density filter has the aim of obtaining results with concrete features in certain selective directions (looking at, for example, the results of the sensitivity analysis). The Heaviside step filter is applied for obtaining low interpretation of the results or, in other words, low measure of non-discreteness.
Table 2 and Appendix C evidence the successful addition of the three filters separately and combined. In the cases where the machining filter is applied (cases (d) and (f)), a machinability of 100% is achieved with a higher computation cost (more iterations until convergence and more time per iteration). In the cases where the Heaviside step filter is used (cases (b), (d), (e), and (f)), M n d is sensibly lower than “standard” cases. Finally, for the cases where the ellipsoid-shaped density filter is applied (cases (c) and (e)), the machinability is a bit better in comparison to those cases without the filter.
Considering this, and especially looking at cases (f) and (g), the behavior end effectiveness of the developed filters is verified, as a low M subindex is obtained while having 100% machinability. The incrementation of the iterations until convergence is a normal consequence of adding extra constraints (filters in this case) that increase nonlinearity. An incrementation of the objective function with respect to the standard case is also observed, which is an expected result. By modifying the AVD [40] parameters, convergence can be achieved while maintaining good discreteness and 100% performance. Geometrical restrictions introduce dramatic limitations into the possible optimum shapes, but it is the only way to mathematically ensure that an optimum design is reached and allow the designers to use the obtained shapes with low interpretation of the results.
In summary, the sensitivity analysis carried out in this study is a good tool for designers to choose the initial parameters of their TOs. It can be a useful tool for determining some geometrical features through the ellipsoid-shaped density filter. The Heaviside step filter is a valuable tool for obtaining low interpretable designs (with high discretization of the density field), ensuring a good results interpretation stage. The presented machining filter is shown to be an interesting tool for obtaining machinable parts in a certain direction. It has also been demonstrated that a machining filter could be a powerful tool in combination with the other additions presented in the paper. Nevertheless, a convergence or searching strategy should be used, such as Adaptive Variable Design (which has proven its effectiveness), other optimization algorithms, a user custom strategy, etc.

Author Contributions

Conceptualization, A.V.M.; methodology, A.V.M., J.M.A. and A.B.C.; software, A.V.M.; validation A.V.M., J.M.A. and A.B.C.; investigation, A.V.M.; resources, C.C.S.; writing—original draft preparation, A.V.M., J.M.A. and A.B.C.; writing—review and editing, A.V.M., J.M.A. and A.B.C.; supervision, J.M.A. and A.B.C.; project administration, C.C.S.; funding acquisition, C.C.S. All authors have read and agreed to the published version of the manuscript.

Funding

The research work described in this paper is part of the R&D and Innovation projects MC4.0 PID2020-116984RB-C21 and MC4.0 PID2020-116984RB-C22 supported by the MCIN/AEI/10.13039/501100011033.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The original data presented in the study are openly available in the appendices section of this paper. Further questions about the implementation, understanding, and use of the data can be submitted to the corresponding author. A video of the case (g) was generated and is available at the Dropbox link: https://www.dropbox.com/scl/fi/oxgbuo7mamzugsgxqe7m5/Case-g.avi?rlkey=ocer0yqjskmoxidv2sf6hu0ey&st=sbuxk78y&dl=0 (accessed on 11 June 2024).

Acknowledgments

The research work described in this paper is part of the R&D and Innovation projects MC4.0 PID2020-116984RB-C21 and MC4.0 PID2020-116984RB-C22 supported by the MCIN/AEI/10.13039/501100011033.

Conflicts of Interest

The authors declare no conflicts of interest.

Appendix A

Appendix A.1. Machinability MATLAB® Code

function [machnmbr,grayflag,coreflag,machflag,neigflag,periflag,eroflag] = machnumberx(xPhys,nelx,nely,nelz,th)
  machflag=zeros(size(xPhys)); % If machflag=1 means there’s accesibility
  coreflag=zeros(size(xPhys)); % If coreflag=1 means its not frontier
  neigflag=zeros(size(xPhys)); % If neigflag=1 means acces through neigbourhood
  periflag=zeros(size(xPhys)); % If periflag=1 means its the perimeter of the initial volume
  eroflag=zeros(size(xPhys)); % If eroflag=1 means its removable solid
for k1=2:(nelz-1)
  for i1=2:(nelx-1)
    for j1=2:(nely-1)
      if xPhys(j1,i1,k1)>=0.5
        % Count non frontier elements
        if all(xPhys(j1,i1,(k1-1:k1+1))>=th) & all(xPhys(j1,(i1-1:i1+1),k1)>=th) & all(xPhys((j1-1:j1+1),i1,k1)>=th)
          coreflag(j1,i1,k1)=1;
        end
        % Access x direction
        if machflag(j1,i1,k1)==0 && (all(xPhys(j1,1:i1-1,k1)<th) || all(xPhys(j1,i1+1:nelx,k1)<th))
          machflag(j1,i1,k1)=1;
        end
        % Access throough neighbour x direction
        if (all(xPhys(j1+1,1:i1,k1+1)<=th) || all(xPhys(j1-1,1:i1,k1+1)<=th) || ...
            all(xPhys(j1+1,1:i1,k1-1)<=th) || all(xPhys(j1-1,1:i1,k1-1)<=th) || ...
            all(xPhys(j1+1,i1:nelx,k1+1)<=th) || all(xPhys(j1-1,i1:nelx,k1+1)<=th) || ...
            all(xPhys(j1+1,i1:nelx,k1-1)<=th) || all(xPhys(j1-1,i1:nelx,k1-1)<=th))...
            && machflag(j1,i1,k1)==0
          neigflag(j1,i1,k1)=1;
        end
      end
    end
  end
end
for k1=1:nelz
  for i1=1:nelx
    for j1=1:nely
      % Count frontier elements
      if (i1==1 | i1==nelx | j1==1 | j1==nely | k1==1 | k1==nelz) & xPhys(j1,i1,k1)>=th & machflag(j1,i1,k1)==0 & neigflag(j1,i1,k1)==0 & coreflag(j1,i1,k1)==0
        periflag(j1,i1,k1)=1;
      end
    end
  end
end
% Percentaje of accesible elements
machnmbr=((nnz(machflag(:))+nnz(neigflag(:)))*100)/(sum(xPhys(:)>=th)-sum(coreflag(:))-nnz(periflag(:)));
thmat=zeros(size(xPhys));
thmat(find(xPhys>=th))=1;
grayflag=thmat-(machflag+coreflag+neigflag+periflag); % Flag for frontier elements
end

Appendix A.2. Filter Radii MATLAB® Code

function rfil = machradiix(nele,nelx,nely,nelz,xTilde,j1,i1,k1,th)
% RADIUS IN X DIRECTION
  raccsflag=0; raccnflag=0; racceflag=0; raccwflag=0;
  raccs=0; raccn=0; racce=0; raccw=0;
  rneigsflag=0; rneignflag=0; rneigeflag=0; rneigwflag=0;
  rneigs=0; rneign=0; rneige=0; rneigw=0;
  % RADIUS ACCESS IN X DIRECTION
  % x south direction
  radpos=0; j2=j1-1;
if xTilde(j2,i1,k1)>=th
   raccs=NaN;
else
  while raccsflag==0
      if j2>=1 & all(xTilde(j2,(1:i1-1),k1)<th)==1
        raccsflag=1;
      elseif j2>=1
        radpos=radpos+1;
      end
  raccs=j2-j1;    
  if (j2>1 & xTilde(j2,i1,k1)<th) & raccsflag==0, j2=j2-1; else raccsflag=1; end    
  end
end
  % x north direction
  radpos=0; j2=j1+1;
if xTilde(j2,i1,k1)>=th
   raccn=NaN;
else
  while raccnflag==0
    if j2<=nely & all(xTilde(j2,(1:i1-1),k1)<th)==1      
      raccnflag=1;
    elseif j2<=nely
      radpos=radpos+1;
    end
  raccn=j2-j1;  
  if (j2<nely & xTilde(j2,i1,k1)<th) & raccnflag==0, j2=j2+1; else raccnflag=1; end
  end
end
   % x east direction
  radpos=0; k2=k1-1;
if xTilde(j1,i1,k2)>=th
   racce=NaN;
else
  while racceflag==0
      if k2>=1 & all(xTilde(j1,(1:i1-1),k2)<th)==1
        racceflag=1;
      elseif k2>=1
        radpos=radpos+1;
      end
  racce=k2-k1;    
  if (k2>1 & xTilde(j1,i1,k2)<th) & racceflag==0, k2=k2-1; else racceflag=1; end    
  end
end
  
  % x west direction
  radpos=0; k2=k1+1;
if xTilde(j1,i1,k2)>=th
   raccw=NaN;
else
  while raccwflag==0
    if k2<=nelz & all(xTilde(j1,(1:i1-1),k2)<th)==1      
      raccwflag=1;
    elseif k2<=nelz
      radpos=radpos+1;
    end
  raccw=k2-k1;  
  if (k2<nelz & xTilde(j1,i1,k2)<th) & raccwflag==0, k2=k2+1; else raccwflag=1; end
  end
end
  % RADIUS NEIGHBOURHOOD IN X DIRECTION
  % x south direction
  radpos=0; j2=j1-1;
if xTilde(j2,i1,k1)>=th
   rneigs=NaN;
else
  while rneigsflag==0
      if j2>=1 & all(xTilde(j2,(1:i1),k1)<th)==1
        rneigsflag=1;
      elseif j2>=1
        radpos=radpos+1;
      end
  rneigs=j2-j1;    
  if (j2>1 & xTilde(j2,i1,k1)<th) & rneigsflag==0, j2=j2-1; else rneigsflag=1; end    
  end
end
  
  % x north direction
  radpos=0; j2=j1+1;
if xTilde(j2,i1,k1)>=th
   rneign=NaN;
else
  while rneignflag==0
    if j2<=nely & all(xTilde(j2,(1:i1),k1)<th)==1      
      rneignflag=1;
    elseif j2<=nely
      radpos=radpos+1;
    end
  rneign=j2-j1;  
  if (j2<nely & xTilde(j2,i1,k1)<th) & rneignflag==0, j2=j2+1; else rneignflag=1; end
  end
end
   % x east direction
  radpos=0; k2=k1-1;
if xTilde(j1,i1,k2)>=th
   rneige=NaN;
else
  while rneigeflag==0
      if k2>=1 & all(xTilde(j1,(1:i1),k2)<th)==1
        rneigeflag=1;
      elseif k2>=1
        radpos=radpos+1;
      end
  rneige=k2-k1;    
  if (k2>1 & xTilde(j1,i1,k2)<th) & rneigeflag==0, k2=k2-1; else rneigeflag=1; end    
  end
end
  
  % x west direction
  radpos=0; k2=k1+1;
if xTilde(j1,i1,k2)>=th
   rneigw=NaN;
else
  while rneigwflag==0
    if k2<=nelz & all(xTilde(j1,(1:i1),k2)<th)==1      
      rneigwflag=1;
    elseif k2<=nelz
      radpos=radpos+1;
    end
  rneigw=k2-k1;  
  if (k2<nelz & xTilde(j1,i1,k2)<th) & rneigwflag==0, k2=k2+1; else rneigwflag=1; end
  end
end
    
  fil=[raccs raccn racce raccw rneigs rneign rneige rneigw];
  minValue = min(abs(fil(:)));
  minIndex=find(abs(fil)==minValue);
  if mean(size(minIndex))>1
    prefil=fil(minIndex);
    rfil=prefil(1);
  elseif isnan(minValue)
    rfil=0;
  else
    rfil=fil(minIndex);
  end
  
end

Appendix A.3. Machining Filter MATLAB® Code

% MACHINABILITY ANALYSIS
  [machnmbr,grayflag,coreflag,machflag,neigflag,periflag,eroflag] = machnumberx(xTilde,nelx,nely,nelz,th);
  
  checkflag=zeros(size(xPhys)); % Flag for not repeating elements while filtering
  solidflag=zeros(size(xPhys));
  if loop>=25
    for k1 = 1:nelz
    for i1 = 1:nelx
    for j1 = 1:nely
        if i1>1 && i1<nelx && j1>1 && j1<nely && k1>1 && k1<nelz
          rfil = machradiix(nele,nelx,nely,nelz,xTilde,j1,i1,k1,th);
          if rfil>0, j2=[j1:min(j1+rfil,nely)]; k2=[k1:min(k1+rfil,nelz)];
          elseif rfil<0, j2=[max(1,j1+rfil):j1]; k2=[max(1,k1+rfil):k1];
          else, j2=j1; k2=k1; end
            for k2=k2(1:end)
            for j2=j2(1:end)
              if xTilde(j2,i1,k2)<th && checkflag(j2,i1,k2)==0 && grayflag(j1,i1,k1)==1
                checkflag(j2,i1,k2)=1;
              end
            end
            end
        end
    end
    end
    end
  end
  if loop>25
     for k2=1:nelz
     for j2=1:nely
     for i1=1:nelx
       if xTilde(j2,i1,k2) >= th && all(xTilde(j2,1:i1-1,k2)<th) && any(checkflag(j2,i1:end,k2)==1) && i1 > 1
         xTilde(j2,i1,k2) = xTilde(j2,i1-1,k2);
         checkflag(j2,i1,k2) = 1;
         solidflag(j2,i1,k2) = 1;
       elseif xTilde(j2,i1,k2) >= th && i1 == 1 && any(checkflag(j2,i1:end,k2)==1)
         xTilde(j2,i1,k2) = 0;
         checkflag(j2,i1,k2) = 1;
         solidflag(j2,i1,k2) = 1;
       end
   end
   end
   end
  end

Appendix B

Appendix B.1. Numerical Results of the Sentitivity Analysis

Sim. IDPenalizationFilter RadiusIterationsIt. Time
[s]
ObjectiveNon-DiscretenessMachinability
131.556713.88421.94314.74476.959
241.581611.93923.10211.7883.592
351.5167711.93826.645613.48188.424
461.5112211.91927.547912.86691.694
531.882011.65623.54517.05283.195
641.871411.85124.342314.30988.123
751.876511.81327.492216.0580.631
861.877711.38728..552914.81889.976
932112211.94426..627317.2885.983
104262411.22925..075715.32589.987
1152104811.61827.202915.43186.971
126275014.15229.350515.86194.034
1332.45104310.22125.285620.03991.066
1442.458459.91427.999218.70391.904
1552.4595311.01230.983518.37587.688
1662.45133610.71332.726518.05490.878
1732.5100910.15825.688320.60391.927
1842.5134510.03628.41219.02592.277
1952.5133811.25531.806818.81188.728
2062.5125311.78433.594518.66690.139
Sim. IDPenalizationFilter RadiusIterationsIt. Time
[s]
ObjectiveNon-DiscretenessMachinability
2132.998910.02527.543522.93492.992
2242.9121210.27830.83321.34793.632
2352.9122410.54935.492121.44589.727
2462.9108211.36237.202721.11489.466
253375210.99127.919323.28589.966
2643101710.24131.653921.92692.385
2753100310.20336.213921.89690.352
2863101810.8838.011121.50689.577
2933.462810.12930.217625.0992.742
3043.4108910.76635.847724.69192.343
3153.475210.99741.5224.44291.737
3263.444911.20945.716824.65589.955
3333.47123210.23730.58625.53793.644
3443.4797910.82236.540525.15192.466
3553.475459.88842.440524.89391.731
3663.4769710.34446.958525.16289.736
3733.5106810.57730.771825.7393.368
3843.589010.57636.857625.35392.852
3953.567510.7242.765425.06991.84
4063.568610.20747.56925.36291.116
Sim. IDPenalizationFilter RadiusIterationsIt. Time
[s]
ObjectiveNon-DiscretenessMachinability
4133.869514.97632.676527.57595.482
4243.870414.97640.07127.21591.743
4353.86529.90347.015726.8791.478
4463.881711.01854.106827.27990.762
453483610.74834.03428.76595.363
464461411.76942.507628.43890.458
475462610.36750.994528.46989.762
48645849.96658.673528.23292.896
4934.261712.8735.325529.79895.279
5044.27431044.854429.50792.683
5154.291512.31354.523729.45290.514
5264.293410.77863.43429.25793.449
5334.464710.60736.945331.01995.679
5444.450110.43547.850730.79693.079
5554.474410.18558.819230.43894.141
5664.47369.68169.207630.20993.676
5734.511499.68637.652731.51396.252
5844.541510.527749.377931.37292.43
5954.542210.18561.394931.06793.922
6064.55809.97372.460930.896.268
Sim. IDPenalizationFilter RadiusIterationsIt. Time
[s]
ObjectiveNon-DiscretenessMachinability
6134.8101910.46340.173433.04997.36
6244.857310.77854.464433.10693.393
6354.869910.47670.18232.80896.059
6464.852810.72784.894932.61694.806
65358109.53741.765533.9896.755
66459079.73657.494933.97992.887
675585110.55375.859233.78992.671
686560611.06893.040533.56295.795
6935.27799.31343.664435.00897.477
7045.210919.65161.348935.03292.34
7155.210519.88483.305834.97992.605
7265.23379.899104.34634.75495.6
73365359.22444.640837.613100
74465059.41382.308139.49496.195
7556114910.701106.72237.33884.818
7666101510.892138.35937.18185.325
77384739.94173.669947.258100
784839610.078167.95248.2198.516
795845210.246261.63346.8789.919
806857610.743432.58346.60689.592
Sim. IDPenalizationFilter RadiusIterationsIt. Time
[s]
ObjectiveNon-DiscretenessMachinability
8131038110.982118.66653.618100
82410114413.666284.99853.27298.14
83510181114.05219.92138.502100
84610398617.087314.67237.534100
8531523819.017230.28259.919100
86415108320.813363.85351.092100
875155000NaNNaNNaNNaN
886155000NaNNaNNaNNaN
8932011930.664281.49861.537100
9042018933.3281150.961.91NaN
915205000NaNNaNNaNNaN
926205000NaNNaNNaNNaN

Appendix B.2. Results of the Sensitivity Analysis for 1.5 ≤ R ≤ 3.4

p = 3 p = 4 p = 5 p = 6
R = 1.5 Applsci 14 06260 i001Applsci 14 06260 i002Applsci 14 06260 i003Applsci 14 06260 i004
R = 1.8 Applsci 14 06260 i005Applsci 14 06260 i006Applsci 14 06260 i007Applsci 14 06260 i008
R = 2 Applsci 14 06260 i009Applsci 14 06260 i010Applsci 14 06260 i011Applsci 14 06260 i012
R = 2.45 Applsci 14 06260 i013Applsci 14 06260 i014Applsci 14 06260 i015Applsci 14 06260 i016
R = 2.5 Applsci 14 06260 i017Applsci 14 06260 i018Applsci 14 06260 i019Applsci 14 06260 i020
R = 2.9 Applsci 14 06260 i021Applsci 14 06260 i022Applsci 14 06260 i023Applsci 14 06260 i024
R = 3 Applsci 14 06260 i025Applsci 14 06260 i026Applsci 14 06260 i027Applsci 14 06260 i028
R = 3.4 Applsci 14 06260 i029Applsci 14 06260 i030Applsci 14 06260 i031Applsci 14 06260 i032
Applsci 14 06260 i033
x i = 0.5 x i = 1

Appendix B.3. Results of the Sensitivity Analysis for 3.47 ≤ R ≤ 4.7

p = 3 p = 4 p = 5 p = 6
R = 3.47 Applsci 14 06260 i034Applsci 14 06260 i035Applsci 14 06260 i036Applsci 14 06260 i037
R = 3.5 Applsci 14 06260 i038Applsci 14 06260 i039Applsci 14 06260 i040Applsci 14 06260 i041
R = 3.8 Applsci 14 06260 i042Applsci 14 06260 i043Applsci 14 06260 i044Applsci 14 06260 i045
R = 4 Applsci 14 06260 i046Applsci 14 06260 i047Applsci 14 06260 i048Applsci 14 06260 i049
R = 4.2 Applsci 14 06260 i050Applsci 14 06260 i051Applsci 14 06260 i052Applsci 14 06260 i053
R = 4.4 Applsci 14 06260 i054Applsci 14 06260 i055Applsci 14 06260 i056Applsci 14 06260 i057
R = 4.5 Applsci 14 06260 i058Applsci 14 06260 i059Applsci 14 06260 i060Applsci 14 06260 i061
R = 4.7 Applsci 14 06260 i062Applsci 14 06260 i063Applsci 14 06260 i064Applsci 14 06260 i065
Applsci 14 06260 i066
x i = 0.5 x i = 1

Appendix B.4. Results of the Sensitivity Analysis for 5 ≤ R ≤ 20

p = 3 p = 4 p = 5 p = 6
R = 5 Applsci 14 06260 i067Applsci 14 06260 i068Applsci 14 06260 i069Applsci 14 06260 i070
R = 5.2 Applsci 14 06260 i071Applsci 14 06260 i072Applsci 14 06260 i073Applsci 14 06260 i074
R = 6 Applsci 14 06260 i075Applsci 14 06260 i076Applsci 14 06260 i077Applsci 14 06260 i078
R = 8 Applsci 14 06260 i079Applsci 14 06260 i080Applsci 14 06260 i081Applsci 14 06260 i082
R = 10 Applsci 14 06260 i083Applsci 14 06260 i084Applsci 14 06260 i085Applsci 14 06260 i086
R = 15 Applsci 14 06260 i087Applsci 14 06260 i088NON-SHOWABLE
RESULTS
NON-SHOWABLE
RESULTS
R = 20 Applsci 14 06260 i089Applsci 14 06260 i090NON-SHOWABLE
RESULTS
NON-SHOWABLE
RESULTS
Applsci 14 06260 i091
x i = 0.5 x i = 1

Appendix C

Appendix C.1. Verifications: Superior Perspective View

Figure A1. Superior perspective view of the different validation cases. (a) Standard case. (b) Heaviside step filter. (c) Ellipsoid-shaped filter. (d) Machining filter. (e) Ellipsoid-shaped filter + Heaviside step filter. (f) Machining filter + ellipsoid-shaped filter. (g) Machining filter + ellipsoid-shaped filter + changes in adaptive design variable method [40].
Figure A1. Superior perspective view of the different validation cases. (a) Standard case. (b) Heaviside step filter. (c) Ellipsoid-shaped filter. (d) Machining filter. (e) Ellipsoid-shaped filter + Heaviside step filter. (f) Machining filter + ellipsoid-shaped filter. (g) Machining filter + ellipsoid-shaped filter + changes in adaptive design variable method [40].
Applsci 14 06260 g0a1aApplsci 14 06260 g0a1b

Appendix C.2. Verifications: Inferior Perspective View

Figure A2. Inferior perspective view of the different validation cases. (a) Standard case. (b) Heaviside step filter. (c) Ellipsoid-shaped filter. (d) Machining filter. (e) Ellipsoid-shaped filter + Heaviside step filter. (f) Machining filter + ellipsoid-shaped filter. (g) Machining filter + ellipsoid-shaped filter + changes in adaptive design variable method [40].
Figure A2. Inferior perspective view of the different validation cases. (a) Standard case. (b) Heaviside step filter. (c) Ellipsoid-shaped filter. (d) Machining filter. (e) Ellipsoid-shaped filter + Heaviside step filter. (f) Machining filter + ellipsoid-shaped filter. (g) Machining filter + ellipsoid-shaped filter + changes in adaptive design variable method [40].
Applsci 14 06260 g0a2aApplsci 14 06260 g0a2b

Appendix C.3. Verifications: Lateral View

Figure A3. Lateral view of the different validation cases. (a) Standard case. (b) Heaviside step filter. (c) Ellipsoid-shaped filter. (d) Machining filter. (e) Ellipsoid-shaped filter + Heaviside step filter. (f) Machining filter + ellipsoid-shaped filter. (g) Machining filter + ellipsoid-shaped filter + changes in adaptive design variable method [40].
Figure A3. Lateral view of the different validation cases. (a) Standard case. (b) Heaviside step filter. (c) Ellipsoid-shaped filter. (d) Machining filter. (e) Ellipsoid-shaped filter + Heaviside step filter. (f) Machining filter + ellipsoid-shaped filter. (g) Machining filter + ellipsoid-shaped filter + changes in adaptive design variable method [40].
Applsci 14 06260 g0a3aApplsci 14 06260 g0a3b

Appendix C.4. Verifications: Front View

Figure A4. Front view of the different validation cases. (a) Standard case. (b) Heaviside step filter. (c) Ellipsoid-shaped filter. (d) Machining filter. (e) Ellipsoid-shaped filter + Heaviside step filter. (f) Machining filter + ellipsoid-shaped filter. (g) Machining filter + ellipsoid-shaped filter + changes in adaptive design variable method [40].
Figure A4. Front view of the different validation cases. (a) Standard case. (b) Heaviside step filter. (c) Ellipsoid-shaped filter. (d) Machining filter. (e) Ellipsoid-shaped filter + Heaviside step filter. (f) Machining filter + ellipsoid-shaped filter. (g) Machining filter + ellipsoid-shaped filter + changes in adaptive design variable method [40].
Applsci 14 06260 g0a4aApplsci 14 06260 g0a4b

References

  1. Shiye, B.; Jiejiang, Z. Topology Optimization Design of 3D Continuum Structure with Reserved Hole Based on Variable Density Method. J. Eng. Sci. Technol. Rev. 2016, 9, 121–128. [Google Scholar] [CrossRef]
  2. Michell, A.G.M. LVIII. The Limits of Economy of Material in Frame-Structures. Lond. Edinb. Dublin Philos. Mag. J. Sci. 1904, 8, 589–597. [Google Scholar] [CrossRef]
  3. Dorn, W.S.; Gomory, R.E.; Greenberg, H.J. Automatic Design of Optimal Structures. J. Mécanique 1964, 3, 25–52. [Google Scholar]
  4. Bendsøe, M.P.; Kikuchi, N. Generating Optimal Topologies in Structural Design Using a Homogenization Method. Comput. Methods Appl. Mech. Eng. 1988, 71, 197–224. [Google Scholar] [CrossRef]
  5. Sigmund, O.; Maute, K. Topology Optimization Approaches. Struct. Multidiscip. Optim. 2013, 48, 1031–1055. [Google Scholar] [CrossRef]
  6. Liu, K.; Tovar, A. An Efficient 3D Topology Optimization Code Written in Matlab. Struct. Multidiscip. Optim. 2014, 50, 1175–1196. [Google Scholar] [CrossRef]
  7. Ferrari, F.; Sigmund, O. A New Generation 99 Line Matlab Code for Compliance Topology Optimization and Its Extension to 3D. Struct. Multidiscip. Optim. 2020, 62, 2211–2228. [Google Scholar] [CrossRef]
  8. Bendsøe, M.P. Optimal Shape Design as a Material Distribution Problem. Struct. Optim. 1989, 1, 193–202. [Google Scholar] [CrossRef]
  9. Mlejnek, H.P. Some Aspects of the Genesis of Structures. Struct. Optim. 1992, 5, 64–69. [Google Scholar] [CrossRef]
  10. Kohn, R.V.; Strang, G. Optimal Design and Relaxation of Variational Problems, II. Commun. Pure Appl. Math. 1986, 39, 139–182. [Google Scholar] [CrossRef]
  11. Haber, R.B.; Jog, C.S.; Bendsøe, M.P. A New Approach to Variable-Topology Shape Design Using a Constraint on Perimeter. Struct. Optim. 1996, 11, 1–12. [Google Scholar] [CrossRef]
  12. Jog, C.S. A Robust Dual Algorithm for Topology Design of Structures in Discrete Variables. Int. J. Numer. Methods Eng. 2001, 50, 1607–1618. [Google Scholar] [CrossRef]
  13. Duysinx, P. Layout Optimization: A Mathematical Programming Approach; Danish Centre for Applied Mathematics and Mechanics: Lyngby, Denmark, 1997. [Google Scholar]
  14. Zhou, M.; Rozvany, G.I.N. The COC Algorithm, Part II: Topological, Geometrical and Generalized Shape Optimization. Comput. Methods Appl. Mech. Eng. 1991, 89, 309–336. [Google Scholar] [CrossRef]
  15. Andreassen, E.; Clausen, A.; Schevenels, M.; Lazarov, B.S.; Sigmund, O. Efficient Topology Optimization in MATLAB Using 88 Lines of Code. Struct. Multidiscip. Optim. 2011, 43, 1–16. [Google Scholar] [CrossRef]
  16. Jiang, L.; Wu, C.W. Topology Optimization of Energy Storage Flywheel. Struct. Multidiscip. Optim. 2017, 55, 1917–1925. [Google Scholar] [CrossRef]
  17. Guest, J.K. Topology Optimization with Multiple Phase Projection. Comput. Methods Appl. Mech. Eng. 2009, 199, 123–135. [Google Scholar] [CrossRef]
  18. Li, L.; Khandelwal, K. Volume Preserving Projection Filters and Continuation Methods in Topology Optimization. Eng. Struct. 2015, 85, 144–161. [Google Scholar] [CrossRef]
  19. Tyflopoulos, E.; Flem, D.T.; Steinert, M.; Olsen, A. State of the Art of Generative Design and Topology Optimization and Potential Research Needs. In Proceedings of the DS 91: Proceedings of NordDesign 2018, Linköping, Sweden, 14–17 August 2018. [Google Scholar]
  20. Bendsøe, M.P.; Sigmund, O. Topology Optimization: Theory, Methods, and Applications, 2nd ed.; Springer Science & Business Media: Berlin/Heidelberg, Germany, 2003. [Google Scholar]
  21. Bruns, T.E.; Tortorelli, D.A. Topology Optimization of Non-Linear Elastic Structures and Compliant Mechanisms. Comput. Methods Appl. Mech. Eng. 2001, 190, 3443–3459. [Google Scholar] [CrossRef]
  22. Altair Engineering Inc. Altair OptiStruct Help Guide; Altair Engineering Inc.: Troy, MI, USA, 2023. [Google Scholar]
  23. Butze, M.; Sert, E.; Öchsner, A. Development of a Topology-optimized Indoor Crane Trolley for Additive Manufacturing. Materwiss Werksttech 2022, 53, 526–535. [Google Scholar] [CrossRef]
  24. Dassault Systèmes SolidWorks Help Page. Available online: https://help.solidworks.com/ (accessed on 20 April 2024).
  25. PTC; Tonny Abbey PTC Creo Blogs. Available online: https://www.ptc.com/en/blogs/cad/what-is-topology-optimization (accessed on 20 April 2024).
  26. Bendsøe, M.P.; Sigmund, O. Material Interpolation Schemes in Topology Optimization. Arch. Appl. Mech. 1999, 69, 635–654. [Google Scholar] [CrossRef]
  27. Lee, H.Y.; Zhu, M.; Guest, J.K. Topology Optimization Considering Multi-Axis Machining Constraints Using Projection Methods. Comput. Methods Appl. Mech. Eng. 2022, 390, 114464. [Google Scholar] [CrossRef]
  28. Langelaar, M. Topology Optimization for Multi-Axis Machining. Comput. Methods Appl. Mech. Eng. 2019, 351, 226–252. [Google Scholar] [CrossRef]
  29. Mirzendehdel, A.M.; Behandish, M.; Nelaturi, S. Topology Optimization with Accessibility Constraint for Multi-Axis Machining. Comput. -Aided Des. 2020, 122, 102825. [Google Scholar] [CrossRef]
  30. Sigmund, O. Morphology-Based Black and White Filters for Topology Optimization. Struct. Multidiscip. Optim. 2007, 33, 401–424. [Google Scholar] [CrossRef]
  31. Schevenels, M.; Sigmund, O. On the Implementation and Effectiveness of Morphological Close-Open and Open-Close Filters for Topology Optimization. Struct. Multidiscip. Optim. 2016, 54, 15–21. [Google Scholar] [CrossRef]
  32. Pellens, J.; Lombaert, G.; Lazarov, B.; Schevenels, M. Combined Length Scale and Overhang Angle Control in Minimum Compliance Topology Optimization for Additive Manufacturing. Struct. Multidiscip. Optim. 2019, 59, 2005–2022. [Google Scholar] [CrossRef]
  33. Wang, F.; Jensen, J.; Sigmund, O. Robust Topology Optimization of Photonic Crystal Waveguides with Tailored Dispersion Properties. JOSA B 2011, 28, 387–397. [Google Scholar] [CrossRef]
  34. Prager, W. Optimality Criteria in Structural Design. Proc. Natl. Acad. Sci. USA 1968, 61, 794–796. [Google Scholar] [CrossRef]
  35. Karush, W. Minima of Functions of Several Variables with Inequalities as Side Conditions; Springer: Basel, Switzerland, 2014. [Google Scholar]
  36. Bendsøe, M.P. Optimization of Structural Topology, Shape, and Material, 1st ed.; Springer: Berlin/Heidelberg, Germany, 1995; ISBN 978-3-662-03117-9. [Google Scholar]
  37. Sigmund, O. A 99 Line Topology Optimization Code Written in Matlab. Struct. Multidiscip. Optim. 2001, 21, 120–127. [Google Scholar] [CrossRef]
  38. Svanberg, K.; Svärd, H. Density Filters for Topology Optimization Based on the Pythagorean Means. Struct. Multidiscip. Optim. 2013, 48, 859–875. [Google Scholar] [CrossRef]
  39. Wang, F.; Lazarov, B.S.; Sigmund, O. On Projection Methods, Convergence and Robust Formulations in Topology Optimization. Struct. Multidiscip. Optim. 2011, 43, 767–784. [Google Scholar] [CrossRef]
  40. Vadillo Morillas, A.; Meneses Alonso, J.; Bustos Caballero, A.; Sisamón, C.C.; Ceruti, A. Adaptive Variable Design Algorithm for Improving Topology Optimization in Additive Manufacturing Guided Design. Inventions 2024, 9, 70. [Google Scholar] [CrossRef]
Figure 1. Simplified flowchart of the density-based topology optimization process.
Figure 1. Simplified flowchart of the density-based topology optimization process.
Applsci 14 06260 g001
Figure 2. Graphical representation of the SIMP interpolation power rule for penalization values between 1 and 100.
Figure 2. Graphical representation of the SIMP interpolation power rule for penalization values between 1 and 100.
Applsci 14 06260 g002
Figure 3. Study load case and design domain.
Figure 3. Study load case and design domain.
Applsci 14 06260 g003
Figure 4. Element directly accessible for a tool detection process. In blue, solid phase; in green, the element under analysis in coordinates (x,y). Red arrows indicate hypothetical tool trajectory.
Figure 4. Element directly accessible for a tool detection process. In blue, solid phase; in green, the element under analysis in coordinates (x,y). Red arrows indicate hypothetical tool trajectory.
Applsci 14 06260 g004
Figure 5. Element accessible for a tool through a neighbor detection process. In blue, solid phase; in green, the element under analysis in coordinates (x,y). Red arrows indicate hypothetical tool trajectory.
Figure 5. Element accessible for a tool through a neighbor detection process. In blue, solid phase; in green, the element under analysis in coordinates (x,y). Red arrows indicate hypothetical tool trajectory.
Applsci 14 06260 g005
Figure 6. Comparison of the iterations and time per iteration in every TO. (a) Sim. ID vs. Iterations graph: dots are the discrete data, and the blue line represents the corrected data. (b) Sim. ID vs. Mean Iteration Time: dots are the discrete data, and the blue line represents the corrected data.
Figure 6. Comparison of the iterations and time per iteration in every TO. (a) Sim. ID vs. Iterations graph: dots are the discrete data, and the blue line represents the corrected data. (b) Sim. ID vs. Mean Iteration Time: dots are the discrete data, and the blue line represents the corrected data.
Applsci 14 06260 g006
Figure 7. Comparison of the measure of non-discreteness and machinability in every TO. (a) Non-Discreteness vs. Sim. ID: dots are the discrete data, and the blue line represents the corrected data. (b) Machinability vs. Sim. ID: dots are the discrete data, and the blue line represents the corrected data.
Figure 7. Comparison of the measure of non-discreteness and machinability in every TO. (a) Non-Discreteness vs. Sim. ID: dots are the discrete data, and the blue line represents the corrected data. (b) Machinability vs. Sim. ID: dots are the discrete data, and the blue line represents the corrected data.
Applsci 14 06260 g007
Figure 8. Comparison of machinability and measure of non-discreteness. Dots are the discrete data, and the blue line represents the corrected data.
Figure 8. Comparison of machinability and measure of non-discreteness. Dots are the discrete data, and the blue line represents the corrected data.
Applsci 14 06260 g008
Figure 9. Comparison of Sim. ID and objective function results. Dots are the discrete data, and the blue line represents the corrected data.
Figure 9. Comparison of Sim. ID and objective function results. Dots are the discrete data, and the blue line represents the corrected data.
Applsci 14 06260 g009
Figure 10. Flowchart of the TO method, with the machining filter highlighted in pink for clarity of later explanations. Coloured in blue, the Optimality Criteria loop is showcased. In pink, the machining filter step is represented.
Figure 10. Flowchart of the TO method, with the machining filter highlighted in pink for clarity of later explanations. Coloured in blue, the Optimality Criteria loop is showcased. In pink, the machining filter step is represented.
Applsci 14 06260 g010
Figure 11. Machining filter, step by step, in x direction. Yellow arrows represent the distance of filtered element to the next non-machinable element in x direction. Green arrows represent the element from whom the filtered element adopts its new density. (a) Initial blueprint design. (b) Highlighted in pink, the elements covered by the filter radii. (c) First column filtering. (d) Design after first column filtering. (e) Element detection for subsequent columns (second column represented). (f) Filtering of subsequent columns (second column represented). (g) Design after second column filtering. (h) Final design after filtering.
Figure 11. Machining filter, step by step, in x direction. Yellow arrows represent the distance of filtered element to the next non-machinable element in x direction. Green arrows represent the element from whom the filtered element adopts its new density. (a) Initial blueprint design. (b) Highlighted in pink, the elements covered by the filter radii. (c) First column filtering. (d) Design after first column filtering. (e) Element detection for subsequent columns (second column represented). (f) Filtering of subsequent columns (second column represented). (g) Design after second column filtering. (h) Final design after filtering.
Applsci 14 06260 g011aApplsci 14 06260 g011b
Figure 12. Geometrical parameters of the ellipsoid for obtaining its radius from the Cartesian coordinates of the elements being analyzed.
Figure 12. Geometrical parameters of the ellipsoid for obtaining its radius from the Cartesian coordinates of the elements being analyzed.
Applsci 14 06260 g012
Figure 13. OC routine with the machining filter highlighted in pink and the filtering steps colored in green.
Figure 13. OC routine with the machining filter highlighted in pink and the filtering steps colored in green.
Applsci 14 06260 g013
Table 1. Chosen study filter radii, the reason of the choice of these radii, and the percentage of the elements in the maximum direction that represents the radii. OS = Other Studies. ED = Euclidean Distance. LV = Large Values.
Table 1. Chosen study filter radii, the reason of the choice of these radii, and the percentage of the elements in the maximum direction that represents the radii. OS = Other Studies. ED = Euclidean Distance. LV = Large Values.
R1.51.822.452.52.933.43.473.53.84
ReasonOSEDEDEDEDEDOSEDEDEDEDED
R4.24.44.54.755.268101520
ReasonEDEDEDEDEDEDOS LVLVLVLV
Table 2. Comparative relevant data of the verification cases.
Table 2. Comparative relevant data of the verification cases.
Case (a)Case (b)Case (c)Case (d)Case (e)Case (f)Case (g)
Iterations10181738346208610872639790
M n d 21.50650.847728.35123.9011.18245.24436.1459
Machinability89.57794.38195.75110095.479100100
Compliance38.011119.502059.1714136.400421.151646.4197 34.3937
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Vadillo Morillas, A.; Meneses Alonso, J.; Bustos Caballero, A.; Castejón Sisamón, C. Sensitivity Analysis and Filtering of Machinable Parts Using Density-Based Topology Optimization. Appl. Sci. 2024, 14, 6260. https://doi.org/10.3390/app14146260

AMA Style

Vadillo Morillas A, Meneses Alonso J, Bustos Caballero A, Castejón Sisamón C. Sensitivity Analysis and Filtering of Machinable Parts Using Density-Based Topology Optimization. Applied Sciences. 2024; 14(14):6260. https://doi.org/10.3390/app14146260

Chicago/Turabian Style

Vadillo Morillas, Abraham, Jesús Meneses Alonso, Alejandro Bustos Caballero, and Cristina Castejón Sisamón. 2024. "Sensitivity Analysis and Filtering of Machinable Parts Using Density-Based Topology Optimization" Applied Sciences 14, no. 14: 6260. https://doi.org/10.3390/app14146260

APA Style

Vadillo Morillas, A., Meneses Alonso, J., Bustos Caballero, A., & Castejón Sisamón, C. (2024). Sensitivity Analysis and Filtering of Machinable Parts Using Density-Based Topology Optimization. Applied Sciences, 14(14), 6260. https://doi.org/10.3390/app14146260

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop