Follow Along: Combined Optimization Approach

Transcript

This lesson explores a combined optimization approach using both topology and field optimization. Let’s begin by walking through the geometry variables and initial static analysis sections of this notebook. We’re using the same CAD bracket that we used back in the parametric FE components lesson. We have our CAD bracket, the implicit version of that bracket, and an initial surface mesh. We’ve added a list of restrained faces and included our fine edge length for remeshing our surface and a stainless steel 316 variable.

A good practice for optimization is to walk through an initial static analysis of our part. Here, we’ve created an FE volume mesh using that initial mesh and remeshing it using our final edge length. We generated a volume mesh with that same edge length for our internal mesh elements, then converted to an FE volume mesh. Next, since we’re going to use CAD faces to drive some of our boundaries in our static analysis, our field optimization, and our topology optimization, let’s go ahead and add an Associate FE Mesh block, associating that initial FE volume mesh back to our CAD bracket. The geometry of our FE mesh won’t change, but now for our boundary conditions, we can use CAD features to place our boundaries. We add a gravity load of 9.8 m/s squared in the Z direction. We apply a displacement restraint at all of our restrained faces, and we apply a bearing force at the inner cylindrical face of this hole. We can pull all of these boundary conditions into a Static Analysis block along with an FE model that includes our Associated mesh, as well as our stainless steel 316 material.

Viewing our static analysis results, we can verify our mesh readiness to move on to our first optimization step. We’ll start with the topology optimization as our initial lightweight step to remove any excess material from our part. Remember that topology optimization yields pretty simple surfaces, so we’ll start by removing about 25% of our material. You’ll see that your starter file includes a passive regions variable already, which includes all of our loaded CAD faces that have been thickened to 3 millimeters. We’ll include these passive regions in a passive region constraint during our topology optimization.

Now, let’s add a Topology Optimization block into our notebook. Since we already created our FE model above in our static analysis, we can use that same FE model for this first optimization step. Now, let’s set our objectives and constraints for our optimization objective. We’ll add an Objective block and assign our goal as to minimize the structural compliance under the same boundary conditions as above. We’ll pull in our gravity displacement and our bearing force. Since we want to start by removing 25% of our material, let’s go ahead and add in a volume fraction constraint. We’ll set our volume fraction as 0.75, indicating that the result of this topology optimization should be just under 75% of our initial volume. Let’s add a second constraint for our passive regions, pulling in our FE Region by Body block. Our mesh will be that Associated mesh. Our entities will be the cells that we want to retain, and our body will be those passive regions bodies that we see in the viewport. Let’s isolate that passive region to make sure that we’ve retained the proper spots. And now, our topology optimization can run.

A while later, the topology optimization should be complete. Let’s right-click, make this a variable, and call it topology optimization. Now, we can add a parent block, Implicit Body from Topology Optimization. Since we’re now back in the implicit realm, we can add a Smooth in Body block, dropping that grid size to 0.5 millimeters and our smooth iterations to one for smoother results. We can change our interpolation type to cubic and view our results. Remember that this Smoothen Body block can smoothen at critical geometries, so let’s do a little bit of post-processing to add those back in. Remembering that variable passive regions that we created above, let’s use a Boolean intersect to isolate the regions where our passive regions and our initial bracket overlap. I’ll add a Boolean Intersect block and pull in our passive regions and our implicit bracket. Isolating this block, I see that critical geometry. Now, I can just use a Boolean Union block and union this with our Smooth and Body result. Isolating our result, we now have our topology optimized bracket.

I’ll make this a variable and call it topology optimization part. Now, let’s move forward to lightweighting with a more complex geometry. I’ll collapse some of these blocks that I don’t need to see anymore.

Now, we can move forward to creating our parametric FE model for field optimization. Let’s start by creating a volume mesh from our topology optimized part. As a shortcut, we can copy and paste our initial FE volume mesh that we used above. I’ll expand my block and remove that initial bracket surface mesh from our Remesh Surface block. I’ll replace it with a Mesh from Implicit Body block and pull in our topology optimized part as my implicit body. I’ll add a tolerance of 25 mm and my meshing blocks to run. For housekeeping’s sake, I’ll rename my variable to FO volume mesh.

Like we did before, I’ll add an Associate FE Mesh block so I can use those same CAD faces to recall our boundaries. Our CAD body will again be our CAD bracket, and let’s add a tolerance of 0.25 mm. I’ll right-click and make this a variable called FO associate mesh.

Now, we can move forward to creating our parametric FE component for our parametric FE model. In this case, let’s use a parametric shell infill component. As our mesh, we’ll use that FO associated mesh that we’ve created. We’ll add our stainless steel 316 and for this example, let’s use a body-centered cubic unit cell. We’ll set a cell size of 2 mm and set our min infill and max infill thicknesses to 0.3 and 1 mm, respectively. Our min and max shell thicknesses can be 0.5 and 1 mm. Let’s set our initial infill thickness and our initial shell thickness to 0.5 and 0.3 mm, respectively. Allowing that to run and section cutting our component, we see that we’ve now created the shelled and infilled bracket. We can make this a variable called parametric shell infill component.

Let’s add it to a parametric FE model, making that a variable called parametric FE model. Now we can move forward to our field optimization. Let’s add our Field Optimization block, pull in our model, and move on to generate our objective and constraints. Like we did for our topology optimization, let’s set our objective to minimize structural compliance. We’ll add the same load case, but now those loads should be applied to our topology optimized part rather than our initial bracket. Let’s copy those three loads that we’ve created above—the displacement, the force, and the gravity loads—and paste them into this new section. I’ll rename these variables with FO to indicate that these are being applied for our field optimization. Opening these blocks, I’ll replace any of our associated meshes from the topology optimization with our field optimization associated meshes instead.

Now I can view how these boundary conditions will be applied to my part, and I’ll add them to my structural compliance response. Despite the field optimization already being constrained by the max and min parameters values, I’ll add another constraint for volume fraction. In this case, I want to further lightweight my topology optimized part to retain only half of its input volume. I’ll hit enter and allow my field optimization to run.

A few minutes later, let’s view the results by opening up our log panel, and we see that our FO took 52 iterations to converge. We can section cut our field optimization and view the thicknesses of our shell and our inside struts. Currently, we’re in implicit view, but we can come over here to view our property fields as well as our state fields. Here, we’re viewing shell thickness and we can see the infill thickness. Let’s make our field optimization into a variable called FO results and we can convert to an implicit body, naming this final body optimized part. For further validation, you can rerun a static analysis block using another associated mesh.

In this lesson, we will discuss a combined optimization approach using topology optimization for lightweighting a bracket’s general shape and Field Optimization for geometrically complex, shell-infill lightweighting.

Please download the nTop file below to follow along with the tutorial. For a faster or slower speed for the video, click on the settings in the bottom right of the video.

Example File:

This file was last updated in nTop 4.16.3

This file was last updated in nTop 4.16.3