'Smarter Snap Fit Design using FEA' simulation project by vsriv90


I created a new simulation project called 'Smarter Snap Fit Design using FEA':

This paper simulates a snap-fitting joint, and compares the results to experimental results of the Bayer Paper (given in comments).

More of my public projects can be found here.



Cantilever Snap Fit
Snap fit joints are one of the simplest ways to join two bodies together. They can be designed to undergo many assembly-disassembly cycles without any adverse effects to the body. They are easy to manufacture, and come in a wide variety of shapes and sizes. The one common design aspect that all snap fit assemblies have is the presence of a protruding part which deflects briefly upon the introduction of the incoming mating part, and which then snaps back into place.
Remember your indestructible Nokia 1200? It made use of a very well-designed snap mechanism to ensure the device’s safety through repeated falls. Or the Lego that you loved playing with as a child? — a snap-fit mechanism. The belt buckles? Food cans? Be it camera covers, production of cars, a simple battery case for a remote, or even a huge rocket, everywhere we look we are surrounded by them.

Project Goals

The purpose of this study is to validate the SimScale FEA solver for snap-fit simulations by comparing the results to the experimental data presented in this Plastic Snap Joints for Plastics by Bayer Material Science [1]. This includes confirmation that the mating force and the force at the maximum deflection of the snap seen in the simulation matches the experimental values.


The CAD model was created in Onshape and is shown below. To reduce the size of the model for meshing and simulation, only half of the snap-fit was modeled.

Figure 1: Snap-Fit Geometry


The snap-fit geometry was meshed in SimScale using the tet-dominant meshing algorithm with quadrangular surface elements. Mesh refinements were added to the fillets and tapered surface of the snap fit. The refinements are done to areas of interest based on the results.

Figure 2: Snap-Fit Mesh


The simulation was performed as a Static Analysis with nonlinearity set to True. Nonlinearity is introduced into the problem via physical contact between the block and the snap.
For the simulation setup, a fixed boundary condition was applied to the small box against which the body deforms.

Figure 3: Fixed Boundary Condition

The snap was given a displacement boundary condition prescribed in the x-direction as 0.016*t. Under this condition, the snap body will move a total of 16mm towards the fixed body. To ramp the displacement over a series of steps, the displacement (0.016) is multiplied with time (t). This distributes the displacement over the complete simulation “time” (as it is a static simulation, the time is a pseudo time by itself) without having to input values in a table.

Figure 4: Displacement Boundary Condition

A symmetry boundary was added to one face of the model. As a best practice, symmetry can be used to reduce the size of the finite element model, which, in turn, reduces the time and cost of the analysis.

Figure 5: Symmetry Boundary Condition

The physical contact condition between the block and the snap was done using the Frictionless Penalty Contact algorithm. In a penalty approach it is possible that the faces in contact penetrate each other slightly depending on the defined contact stiffness that couples the interpenetration with the consequential reaction forces. Increasing the Penalty Coefficient helps to reduce excessive interpenetration.

Figure 5: Physical Contact: Master (blue) and Slave (pink)

Results and Conclusions

As shown in Figure 6, the snap deforms and snaps into place. This snap-fit is already well designed with the snap end being tapered, hence the strain on the final body is not excessive. But without this taper, the strain on the snap would be much higher, causing an earlier breakdown and hence limiting the life of the snap.

Figure 6: Snap-Fit animation

For comparison, the initial (points) and the final (solid) position of the snap body can be seen below:

Figure 7: 16 mm displacement

The maximum mating force is defined as the reaction force in the x-direction. Because only half of the model was simulated, the result is multiplied by a factor of 2.

Figure 8: Mating Force

The force at the maximum deflection of the snap is defined as the reaction force in the z-direction. Again due to symmetry, the result is multiplied by a factor of 2.

Figure 9: Deflection Force

The simulation results closely match the experimental results. The little difference can be attributed to the meshing grade which could be fine-tuned to improve the results.

Figure 10: Comparison of results with experimental data


[1] Plastic Snap Fit Design, http://fab.cba.mit.edu/classes/S62.12/people/vernelle.noel/Plastic_Snap_fit_design.pdf
[2] Smarter Snap-Fit Design using FEA, Webinar recording, https://www.simscale.com/snap-fit-design-using-fea/



can you explain me about the formula(in boundary conditions i.e,0.16*t) in brief?


Hello @Omer.

As you can see, I wanted to move the snap body a total of 16mm towards the fixed body. But I did not want this displacement to happen on the first step- I wanted the body to move slowly, so that I can see the deflection steps in the middle (and not just the first and the last step).

To do this, I multiplied the displacement (0.016) with time (t). This distributes the displacement over the complete simulation “time” (as it is a static simulation, the time is a pseudo time by itself) without me having to input values in a table.

The same result shall also be obtained if you input a tabular displacement vs. time data, but given that I just needed a uniform rate of motion, (0.016*t) is simpler.

Vikrant Srivastava


thanks, Mr.srivastav.i am really surprised the way the community is helping us learn on topics like this.i hope the community delivers the same in future.


sir, can you explain more about pseudo time in static simulation? another question
by following bayers(snap fit pdf that you have recommended) we have calculated the deflection(along y) and that happens to be below elastic strain.since our model is not going over yield point, why are we using nonlinearity?


Hello again @Omer. Thanks for the kind words. We will make sure to keep the community active and informative!

About pseudo time: Static simulation is, by its very nature, static. That means that the simulation shows you what would happen if the body moves quasi statically (i.e. extremely slow). This is done to avoid the issues that would generate because of the time-dependancy of the simulation.

If you want a time-dependent simulation, you perform a dynamic simulation.

About non-linearity: Non-linearity can be of many types (Eg. Material nonlinearity, geometric nonlinearity, etc). When we create a physical contact between two bodies, a contact non-linearity is generated. To incorporate this into the simulation, a non-linear analysis was used.


Vikrant Srivastava.
FEA Applications Engineer


thanks, @vsriv90.now I understood :smiley: . I was confused with nonlinearity of material.so the point is when we have a physical contact it means it would be a geometric nonlinearity and we have to make sure that nonlinearity is turned on.am I corrrect?



Being very technical, the nonlinearity is a contact nonlinearity. When two bodies come in contact, and if the nodes of one body (slave surface) penetrates into the other body (master surface), an additional constraint (or penalty) is added to ensure that the slave lies directly on the master surface. This additional constraint is contact stiffness, and hence the total stiffness of the bodies change accordingly (with each iteration).

Hence, you can see that the stiffness matrix is changing with the displacement of the node. This results in a non-linear phenomenon in most cases.

But once again, that is being very specific. Most authors simply term contact nonlinearity as a special case of geometric nonlinearity, and hence you are correct :slight_smile:

Vikrant Srivastava


ok sir. the last question i want to ask is this

how did you evaluate the mating force?through this ?

if yes,can you explain briefly?



I am slightly confused as to where you got that image from. Maybe you copied some other project?

The reaction force and the mating force given in the table was taken from this graph:

As you can see, the mating force (28) is obtained right after the two bodies touch each other at ~ 0.25 seconds. The maximum deflection happens around 0.45 seconds. As you saw in the presentation, I took only a half model (for increasing computational efficiency), and hence these forces need to be doubled.

You can find my original project here:


Hope this helps,

Vikrant Srivastava


thanks, @vsriv90. the webinar was really helpful.came to know a lot :slight_smile:


hello @vsriv90,
I was going through a blog on meshing, in that it was given a master element should be less than 2-3 slave elements(size). how should know the avg size of master and slave elements?


Hi @Omer !

To decide which element should be the slave and which the master there are a couple of guidelines one can follow. First of all, the master should be the stiffer and less curved of the two and second the slave should be smaller or at least similar in size as the master element. Of course, all this depends on the simulation, but regardless, you should try to achieve most, if not all, of these conditions.
(Master and slave assignments)

Now to answer your question, there are two ways to do this. First is the trail-and-error method (which is the easiest way) which consists of doing a finer automatic mesh refinement on the slave than on the master, and seeing the end result. The problem with this one is that it might take a couple of attempts to get to the right mesh.

On the other hand, the second way is to do a simple calculation in which you need to know the size of your CAD geometry and the number of elements that you need over the layer. You take the size divide it by the number of elements and do a manual mesh refinement.

Hope this helped!

Best regards,
Anthony Potdevin


Thanks @apotdevin,
I am confused with the first suggestion. Do I need to do finer mesh on slave ?
Second thing : would it be better to display no.of elements and avg size of each volume


Hi @Omer,

As @apotdevin (thanks for the accurate response) said, yes - ideally, the slave should have a mesh finer than the master.

The slave surface is “adjusted” during the simulation based on the master surface, and having a higher mesh density makes the contact between master and slave easier. Also, a coarser mesh also ends up being a stiffer mesh due to lack of flexibility. If the master is coarser and the slave finer, and as the master “guides” the slave, the probability of lost contact (for eg, when using bonded contacts) is lesser.

But you may also keep the master/slave of a similar size.

Once again, all these are general guidelines, and depend on the simulation itself.

Vikrant Srivastava