Best Practices for Motion Contacts

Guidelines for creating motion contacts and editing the default settings.

The default settings for motion contacts were selected to handle typical applications. The best practices below are useful guidelines for you to consider.


  1. Use joints and supports instead of motion contacts when possible. The former are much more efficient and will save simulation time. Use motion contacts only where they are needed.
  2. Don't define more motion contacts than you really need.
  3. Don't forget to save your model after you've run a motion analysis to retain the results.
  4. Keep in mind that if the results don't look smooth, it could be due in part to the mesh-based representations of the geometry in contact. You can change the mesh resolution on a per-part basis from the Property Editor. The Motion Contact category for parts has options to manually specify the Resolution (Very Low, Low, Medium, High, Very High). Higher resolutions tend to produce smoother results, but may take longer to mesh or analyze.


  1. Avoid sharp edges in part geometry. Use the Fillets tool and keep your geometry edges smooth.
  2. When possible, divide your geometry into small(er) regions by using the Partition tool, and define the motion contacts using the partitions instead. (Should improve the meshing time.)
  3. Avoid situations where one part unintentionally rubs or scrapes another; for example, two coincident faces or concentric surfaces. Use the Push/Pull tool to introduce clearances between parts that are contacting in ways you don't intend.
  4. Consider using geometric primitives (such as a solid sphere, ellipsoid, cylinder, or frustum) where possible so that the geometric contact detection will be solved in its analytical form rather than being meshed.
  5. Limitation: For analytical Cylinder to Box contacts, a contact between the edge or vertex of a box to the flat side of the cylinder is not supported at this time. You may find that a meshed solution works better in applications like this.

Intermittent Contacts

When there are one or more intermittent contacts in your model (i.e. bouncing ball), it is a good idea to enable the Precise Contact Event option in the Property Editor for the motion contact. This will ensure that contacts are not missed or that penetration is not too high. A maximum step size of 1e-4 is a good initial setting for contact simulations.
Note: To get improved / converged results, you can try:
  • Reducing the Maximum Integrator Order from 5 (default) to 2. An integrator order of 2 tends to improve the stability of the motion analysis, but to the detriment of accuracy. A high order conversely improves the accuracy but leads to degraded stability and possibly to convergence failure.
  • Improving accuracy by reducing the Integrator Tolerance from 1e-3 (default) to 1e-4, or smaller.
  • Reducing the values of Tolerance (for Precise Contact Event) and New Step Size (for Refine Step Size) on the Motion Contact properties.

Persistent Contacts

When there are persistent contacts in your model, you may want to consider using the Force Computed At option. There are two choices, Element Center and Nodes. The Element Center option is the default and is generally a bit faster. Some of the advantages of using the Nodes option include:

  • More accurate normal directions especially for deep penetrations.
  • Better handling of sharp-edged and corner contacts.
  • More robust for coarser mesh refinements (motion contact resolution).
  • Earlier collision detection when using nodes rather than element centers.
  • More accurate calculations of penetration depth, penetration velocity, and area of contact.

Model Units

  1. Take note of the Model Units that you are using (e.g. MKS or MMKS). The model units can be found under File > Preferences > Inspire Units. There are behavioral differences in results when comparing MKS with MMKS due to unit sensitivity.
  2. The selection of Model Units can also influence the stability of motion contact solutions. Choosing another set may help to stabilize the initial static and/or transient solutions. Millimeters is a good length unit for small-scale parts such as a door latch.
  3. While using units other than millimeters for length, and Newton for force, the default stiffness (K) for the impact model is automatically scaled for you based on the exponent used. The following example shows how the stiffness in N/m is calculated:

    Contact force F = K*ze, where z is penetration and e is exponent

    Assume K=1000 N/mm and e=2.1

    Then the force F = 1000 * z2.1 N

    If the model is defined in SI units, the new stiffness that will generate the same force is calculated as:

    F = 1000 * z2.1 = K * (z ÷ 1000)2.1

    ∴ K = 1000 * (1000)2.1 = 1.9953E9 N/m


  1. Start your modeling with contact friction disabled in the Property Editor. Once the simulation is successful with just normal forces (reasonable penetration and normal force values), then enable contact friction.
  2. Do not use small values for the parameters Stiction Transition Velocity and Friction Transition Velocity. Small values will slow down the simulation speed. Approximately 1mm/sec is a good value.
  3. If the addition of frictional force causes numerical difficulties or simulation slowdowns, gradually increase the values for the transition velocities and/or reduce the coefficients of friction.
  4. Avoid using artificially large values for the static coefficient and dynamic coefficient.

Energy Conservation

Contact forces are modeled using a penalty formulation. Unless you take very fine step sizes, the impulse of the forces can be inaccurate. Therefore for impulsive contact, it is not unusual to see energy dissipation or energy gain, even though you may have no damping in your contact. To reduce dissipation, decrease the maximum integration step size so that the contact duration is adequately sampled.