The billet problem
This tutorial introduces the user to several important concepts, including contact (with a rigid wall) and symmetry planes, a convenient method for reducing the size of the model.
We will create an FEBio model of a compression test, where a rigid wall compresses a deformable part. The contacting surfaces are allowed to slide across each other without friction. Due to the symmetry of the problem, only the lower right quadrant will be modeled (see figure below). This also requires that we set up symmetry boundary conditions. In addition, we assume plane strain conditions.
If you are new to FEBio Studio, it might be useful to do the Intro to FEBio Studio tutorials first to familiarize yourself with basic concepts and how to navigate the UI.
To start the tutorial, first open FEBio Studio and start a new model. Select the Structural Mechanics option from the New Model dialog box. Then, follow the steps below.
The completed model can be downloaded here.
Step 1: Creating the geometry
The geometry consists of a rectangular box. Due to symmetry in the model and boundary conditions, only one quadrant of the box needs to be modeled. We’ll do this by first creating the entire model, and then deleting parts of the mesh we won’t need.
First, create the box by switching to the Create panel, clicking the Box button and entering the following creation parameters:
- width = 2
- height = 2
- depth = 0.1
Click on the Create button to create the box. Next, activate the Mesh panel and enter the following meshing parameters:
- Mesh type = Butterfly 2D
- Nx = 20
- Ny = 20
- Nz = 1
- Segments = 10
Leave the other parameters to their default values and click the Apply button. Remember, to view the mesh click the “m” shortcut button or select the View/Toggle Mesh lines menu from the menu bar.
In order to delete part of the mesh we first need to convert the object to an Editable Mesh. With the object selected, click the convert button on the Object pane at the top of the create panel and select the Editable Mesh option from the dropdown menu. By modifying the object to an editable mesh, users now have direct access to the FE mesh. You can now edit the mesh directly at the element and node level. On the toolbar at the bottom of the Graphics View you will now see additional buttons that allow you to select mesh items (i.e. elements, faces, edge, and nodes).
On the Graphics View control bar, click on the element button (i.e. the button with the red cube). Select all elements but the ones in the lower right quadrant (note that an easy way to do this is to select the lower right quadrant and then select the menu Edit/Invert Selection). Your model should look something like this.
Now delete the selected elements by selecting the menu Edit/Delete Selection or by clicking the delete button on your keyboard. We are left with the lower right quadrant. Leave the sub-object selection mode by selecting the element selection button again or by pressing the Esc button.
Step 2: Setting up the boundary conditions
First, we’ll set up the plane strain boundary condition. This boundary condition implies that no nodes can move out of the plane. We can enforce this by selecting the front and back face of the box and constraining it in the z-direction. To select the front and back faces, first click the Select Faces button on the main toolbar. Next, select both the top (+ z) and bottom (-z) faces of the mesh. Then, apply a fixed constraint by selecting the Physics/Add Nodal BC and selecting zero displacement from the list. In the properties list, check the z-displacement degree of freedom.
Next, we need to set up the symmetry boundary conditions. Basically, we need to constrain the back face (+ y) and the left face (-x) so that the nodes on these faces can only move in the respective planes and not normal to the planes. Starting with the left face, select it and apply a fixed constraint to the x-degree of freedom of this face. Deselect the selected face by pressing the ESC button or by clicking somewhere outside your mesh. Now, select the back face (+y) and constrain it in the y-direction. Finally, we will also constrain the front face (-y) so that it can only move in the y-direction. Select the face and apply a fixed constraint on the x-degree of freedom (the z-degree of freedom was already fixed as a result of the first boundary condition).
Next, we will create the rigid wall interface. Use the menu Physics/Add Surface Constraint menu and select rigid wall in the dialog box. Click the OK button to add the rigid wall to the model. The rigid wall interface creates a contact interface between your mesh and a rigid wall. The rigid wall is an implicitly defined surface, so it does not need to be modeled and we do not need to specify any geometry for it. Instead, it is described using the plane equation.
a x + b y + c z + d = 0
The coefficients (a,b,c) define the normal to the plane and d is the perpendicular distance to the origin.
The four plane coefficients are set in the properties list of the rigid wall item. Set the parameters as follows:
- Enforcement method = AUGLAG
- tolerance = 0.01
- penalty = 1000
- offset = 1
- plane = 0, 1, 0, -1
This places the rigid wall at the bottom of the mesh, moving upwards. The rigid wall will now be visible in the Graphics View.
Next, we need to define which surface of the mesh will be in contact with the rigid wall. To do this, click on “front” face (-y) and the “right” face (+x). Then, click on the rigid wall interface in the Model Editor and find the “Selection” box in the properties window below the Model Editor. Add the currently selected faces to the selection by clicking on the “+” button. This completes the definition of the rigid wall interface.
Next, we will prescribe the motion of the rigid wall. The motion of the plane is controlled via the offset parameter. The offset value is added to the d parameter of the plane equation. This allows us to modify the plane’s position as a function of time. Open the Curve Editor from the Tools/Curve Editor menu or select the corresponding toolbar button. The Curve Editor displays all the time-dependent parameters in the model and allows you to view and edit the corresponding curves easily.
The left-hand side shows all the parameters that are time dependent. Find and select the offset parameter of the rigid wall interface. In the right part of the Curve Editor click the “New…” button, next to the Select load controller option. From the dialog box that appears, select the loadcurve option. The new loadcurve will be automatically assigned to the offset parameter.
The right panel will display the load curve, but it is initially empty. To add a point, click on the curve with the shift-button on your keyboard held down. Does this twice to add two points. You can now click on each point and drag it around to position it. You can also specify the x, y coordinates in the edit fields below the graph. Position the points such that the coordinates of the two points are (0,0) and (1, 0.4)). Exit the curve editor. This completes all boundary conditions.
Step 3: Setting up the materials
In this tutorial, we only need a single material for the box. Add a new material using the menu Physics/Add Material and select a neo-Hookean material from the list. Set the following material parameters.
- Young’s modulus (E) = 1.0
- Poisson’s ratio (v) = 0.49
Assign this material to the box: select the box in the Graphics View and then click the [+] button in the Selection box of the material.
Step 4: Setting up the analysis
As in the previous tutorials, add an analysis step to the model, accepting the default settings. In this case, we’ll perform a static analysis. The analysis runs from (simulation) time 0 to 1 in 10 timesteps.
You can now run the analysis in FEBio. If you are unfamiliar with running models in FEBio, please take a look at the tutorial Running your first simulation in FEBio Studio.
This completes this tutorial. The final deformed state is displayed in the figure below.