Understanding Contact in SolidWorks Simulation

If you're going to perform a stress analysis on a SolidWorks assembly, you must be very careful to ensure that you accurately represent how the parts interact with each other. In SolidWorks Simulation, this is referred to as contact, and it is critical for accurate results. Contact is also one of the most frequently misunderstood areas of analysis. Fortunately, once you understand what the software is doing in the background, and the assumptions it is making, you can follow a simple procedure to make sure that your assembly closely approximates what happens in real life.

To perform an assembly-level analysis, you'll need a SolidWorks Premium license, or a SolidWorks Simulation license, as the SimulationXpress tool in every license of SolidWorks will only analyze single parts.

If you start you a new study in Simulation, and drill into the Connections folder, you'll notice an item called Global Contact, and it will probably indicate that it is "Bonded." This is the overall contact scheme that is being applied in the assembly; however, it is important to realize that this contact condition only applies to surfaces in the model that are touching at the start of the analysis. If the scheme is set to Bonded, all faces that are touching are assumed to be rigidly locked together, almost as if perfectly strong glue has been applied right across the faces. If it is set to "No Penetration," the two surfaces are free to slide on top of each other, and free to separate, but can't go through each other.

Users sometimes hit a snag here, because if you have a small gap between those faces — no matter how small — the global contact doesn't apply any contact condition to those faces. Therefore, if you have a small tolerance gap between two objects, no contact will be recognized, and if you apply a load to one of them it will pass right through the other. However, it's good engineering practice to design with appropriate tolerance gaps so that things fit together in real life, so obviously we need a way to tie assemblies together.

The first step is discerning where the global contact is being applied. To do this, I like to use the interference detection tool in SolidWorks, and I activate the "Treat Coincidence as Interference" option. This method will show you all the interfaces in the model where faces are touching. If there's an interface between two parts that doesn't show up in this interference check, it won't be recognized by the global contact.

For any situation where there is a gap between two parts, or if you want to specify a contact condition different from the global type in a particular area, you need to use the Contact Sets tool. Right-click the Connections folder, and choose Contact Set.

There are two ways to provide contact information between parts in your assembly. The first, and simplest, is manual application of the contact. To do so, press the Contact Tool, select the contact type (normally bonded or no penetration), and pick the two surfaces that come together. If there are multiple surfaces, you can specify a series of surfaces on one part in the first box, and a series of surfaces on the other part in the second box.

The second method is to switch the option at the top of the Contact Set Property Manager to "Automatically find contact sets." This allows you to search the model for touching faces — and more importantly, non-touching faces — and apply contact conditions automatically in those areas. To do this you will need to specify whether you want to look for touching or non-touching surfaces, pick the minimum and maximum gap size you wish to consider, select the components you want to check between (or select the entire assembly), and choose Find Faces.

Once the software finds the face sets, you can review them one by one, then pick an appropriate contact type, and click the green arrow to Add Contact Set. You can use Shift + select or Ctrl + select to choose and create multiple sets at once.

In the screenshot below, I've used this method to find and control the interaction between the top of the connecting rod and the piston, even though there is a very small gap between the sets of surfaces.

It pays to systematically work through the assembly, considering the interactions between each part, and make sure they have been accurately captured. I'll close with some more general reminders regarding contact in SolidWorks Simulation:

If you've got interference between parts in your model, you'll need to apply contact sets just like you would if there was a gap — but really, you shouldn't have interference unless you're applying a shrink-fit or press-fit condition, as interference is not realistic.

If you're working with shells, beams, and solids in one model, you'll need to apply manual contact sets at any interference between different types of mesh. The one exception to this is that shell mesh automatically created from SolidWorks sheet metal will automatically bond to solids, provided the sheet metal part is touching the solid.

Use the exploded view in SolidWorks to separate your parts when selecting the contact sets. This will allow you to easily pick on the faces of the model, which are normally obscured and under one another.