Optional Follow Along: FE Model and Boundary Conditions

Transcript

To begin setting up our FE model and boundary conditions for our topology optimization, I’ll title this notebook and create organized sections. Section one I’ll label “Geometry.” This is where we’ll import our CAD file and how any variables we want to return to later on in our workflow. Our next section we’ll call “FE Model,” and our third section will be “Boundary Conditions.”

Moving our white line back up into our “Geometry” section, we’ll import the part we want to optimize. We’ll do this by dragging the part file from our File Explorer to the notebook to import. Then, opening our block details and under properties, we can pull this body into our notebook. We’ll rename this CAD body variable “CAD design region.” We’ll add an Implicit Body from CAD Body block and use this “CAD design region” as our CAD body. We can make this a variable by right-clicking and choosing “make variable,” and we’ll call this “design region” as well, so now we have it in the implicit form.

Next, we’ll want to define the three interfaces that’ll be either loaded or restrained. The outer two holes will be restrained, and this inner hole will be loaded, so we’ll define those later. Holding my control key down on my keyboard, I can choose each of these three interfaces on our CAD body. I can right-click and create a CAD facelist variable. I’ll rename this “interfaces,” and now I have all three interfaces in this CAD list.

Now I want to specify the middle as the loaded face and the outer two as the restrained faces. So, using the same method, I will hold the control key down on my keyboard and select these outer two faces, right-click, and create a CAD face list variable labeled “restrain faces” and make this inner hole a CAD face variable and call that “loaded face.” Now that we’ve defined our design region and labeled our different interfaces, we can move on to creating our FE model.

A good first step for making an FE model is to make an FE volume mesh. We’ll start this by creating a mesh from our CAD body using a Mesh from CAD Body block. As our CAD body, we can use the “CAD design region” that we imported earlier. To the right, you can see that our resulting mesh has triangles that are relatively irregular in terms of size and shape. One way to combat this irregularity is to play with this “Max Edge length” input. It can help to decrease processing speed later on for more complex meshes, but since we’re working with such a simple shape at the moment, we can use a Remesh Surface block and drop this mesh in as our surface. Our “Edge length” can be made into a variable because we’ll need to use the same edge length a little bit down the road, and it’s best practice to use consistent edge lengths when creating these FE meshes. I’ll call this “Edge length 2 mm” for now and give this remeshed surface a triangular shape, as our FE mesh will be tetrahedral. Our resulting mesh is much more regular and will give us better results down the road.

If I use the hotkey “X” to create a section cut on my keyboard, I can see that only the outer surface of this part has been meshed. So next, I’ll need to create a volume mesh from this entire domain. I’ll do this by adding a Volume Mesh block and pulling our remeshed surface in as our domain. I’ll use this “2 mm Edge length” variable, and our resulting mesh is completely filled in.

Finally, we can take this volume mesh and use it in our FE Volume Mesh block. Drop our FE Volume Mesh block into our notebook, and for the discretization, use this volume mesh. We’ll select a linear geometric order and make a variable out of this “FE mesh,” and now we’ve successfully created our FE mesh to be used in our FE model.

To create our model, we’ll drop an FE Model block into our notebook, and in this pre-populated components list, I’ll add an FE component. Under mesh, we can use this newly created “FE mesh,” and we can assign a material by double-clicking in our attributes and applying an FE solid attribute. Double-clicking in this material input, nTop offers a pre-loaded library of commonly used materials to choose from. Here, let’s choose Aluminum 6061. And since this is one solid piece, we won’t apply any connectors. We can right-click on this block and create a variable labeled “FE model,” and now we’ve successfully created our FE model for our topology optimization.

I’ll go through our notebook and collapse all of our blocks to clean it up a bit, and now we can move on to creating our boundary conditions. For these two outer holes, which we plan to restrain, we’ll want to select all of the FE nodes along these inner surfaces. To do this, we’ll use the FE Face Boundary Toolkit block, and we can delete this CAD face list out of here because we’ve already created a CAD face list earlier on in our “Geometry” section. We can pull these “restrained faces” into our “faces” input and our “FE mesh” into our “mesh.” This FE Face Boundary block will select all of the nodes at the intersection of the restrained faces CAD and the FE mesh. We choose “nodes” as our entity, and the selected nodes are those that we expected all along the insides of these restrained holes. We can make this block into a variable, call this “restrained nodes,” and then we can use a Displacement Restraint block to fix all of these nodes in every direction.

We’ll drop this Displacement Restraint block into our notebook and use these “restrained nodes” as our boundary. We can leave all other inputs as zero so that all of the nodes are fixed throughout the entire simulation and topology optimization process. We can make this displacement restraint into a variable called “fixed restraint,” and now we’ve set our first of two boundary conditions.

Next, we’ll want to apply a load to the nodes in this center hole. Instead of using the FE Face Boundary, which would work well here, let’s try using an FE Boundary by Flood Fill. We’ll drop this block into our notebook, input our “FE mesh,” select “nodes” as our entity, and for our origin, we can just drag this gimbal into the center of the hole. The first node to be selected will be that closest to this origin, and this 45° angle will drive all other nodes that are selected. So by keeping this angle at 45°, all of these inner nodes will be selected, but any nodes on the outside of this mesh will be left alone. If I hit enter, we can see that all of these nodes highlighted in blue are those that we were targeting. So we can make a variable here and call this “loaded nodes.”

Finally, to apply that load to all of these nodes, we’ll use a Force block that can be imported into our notebook and use our “loaded nodes” as our boundary. For our vector, we can input 0, 1000, and 0. This indicates a load of 1,000 Newtons in the negative Y direction that’s distributed across all of these loaded nodes. If I hit enter and zoom in, we can see that this 1,000 Newton force has been distributed among all of those center nodes. We can right-click to make this force a variable, which we’ll just call “Force.” We’ll collapse these “loaded nodes” in this Force block, and we’ve successfully created our FE model and boundary conditions for our topology optimization.

Before applying Topology Optimization, follow along to build an FE model and set boundary conditions. This lesson is optional, as it is a review from our Intro to Simulation course. 

You can download our PDF guide below to walk through this lesson in PDF format.

Download the CAD file below to get started.

Example File:

This file was last updated in nTop 5.12.2

340_4_1 CAD Part TopOpt.x_t

340_4_1 Follow Along – FE Model and Boundary Conditions.pdf