Reno Genest
Ansys Employee


For tying solids with no gaps between them it does not really matter if you use TIED_SURFACE_TO_SURFACE or TIED_SURFACE_TO_SURFACE_OFFSET, unless you plan to have other constraints (SPCs, etc.) on the same elements. You can test the different contacts and see for yourself.

I found more information about tied contacts in our knowledge database:


In the context of tied contact, its important to know that thin shell and beam element nodes have translational and rotational degrees of freedom. Nodes of thick shell and solid elements have only translational degrees of freedom. (The exception for solids is ELFORM 3/4, which also have rotational degrees of freedom. These two element types are retained for legacy purposes, and are not generally recommended.)

Check the theory manual (available from, chapter 4-16 for theoretical descriptions of the various element types, including nodal degrees of freedom.

Note that an OFFSET contact will retain the initial gaps present in the model/mesh.   Without OFFSET, any node on the slave side which is close enough to tie (there is a closeness criterion based on element dimensions) will be projected to the master surface so as to close the gap.

You'll get a warning message for any slave node which is not close enough to the master surface to tie.   When defining tied contacts, it's good practice to ONLY include nodes (or segments) on  the slave side that you want to be tied to the master surface.   That way, the aforementioned warnings (if you get any) are more meaningful, and furthermore, you don't run the risk of tying nodes you don't want tied.

Below is a description of each of the tied contact types,which may also help explain the differences:

*CONTACT_TIED_..._TO_SURFACE:   constraint-based, and slave nodes will be projected to master surface during initialization.

*CONTACT_TIED_..._TO_SURFACE_OFFSET:   penalty-based, and slave nodes will NOT be projected to master surface during initialization.   In general, we don't like to use this type of contact as it doesn't consider the moments induced by the gap between slave and master.

*CONTACT_TIED_..._TO_SURFACE_CONSTRAINED_OFFSET:   constraint-based, and slave nodes will NOT be projected to master surface during initialization.

 If the "..." above is NODES_TO_SURFACE or SURFACE_TO_SURFACE, the rotational DOF of nodes are not considered in the contact algorithm.   That's fine if you're tying solids to solids.

If the "..." above is SHELL_EDGE_TO_SURFACE, the rotation DOF of nodes ARE considered in the contact algorithm.   That what you want if shells or beams are included in the contact.

*CONTACT_TIED_SHELL_EDGE_TO_SURFACE has a BEAM_OFFSET variation that is penalty-based, and and slave nodes will NOT be projected to master surface during initialization.

Constraint-based tied contacts should not be used in explicit analysis IF there are other constraints (SPCs, prescribed motion, rigid bodies, etc) associated with the slave or master surface.   Otherwise, they should be fine.

Penalty-based tied contacts don't interfere with other constraints."

A way to visualize the untied nodes is to use Linux's "grep" to search the mes* files for the "untied" or "not tied" or "not constrained" warnings in order to create a list of untied nodes.   That list can be added to the keyword deck as a node set (*SET_NODE).   Then, that node set can be visualized after reading the keyword deck into LS-PrePost.

LS-PrePost has a contact checker which may be helpful for viewing untied nodes.   To try it, read the keyword file into LS-PrePost, and pull down Application>Model Checking>General Checking.
Click the "Contact Check" tab.
Select "Tied".
Check the "Not Tied" box.
Click "Check"."