Skip to content

3.14 Contact Section

The Contact section defines all the contact interfaces. Contact boundary conditions are defined with the contact sub-element. The type attribute specifies the type of contact interface that is defined. The _surface_pair attribute defines the surface pair to use for this contact definition. The surface pair is defined the the Mesh _section. For example:

<contact type="sliding-elastic" surface_pair="contact1">
  <!-- parameter go here -->
</contact>

A note on auto-contact

The two surfaces that participate in the contact are specified via a surface pair. These surface pairs are defined in the SurfacePair subsection of the Mesh section of the input file. Typically the surfaces are chosen based on the user's knowledge of where the contact will occur. However, for complex geometries it might not be clear where the contact will occur, or identifying the surfaces may be cumbersome. For this reason, FEBio supports an auto-contact option, where users only need to specify the parts of the primary and secondary surfaces. From these part lists, FEBio will extract the surfaces automatically. To use the auto-contact, simply specify a part list instead of the surface names when defining the surface pair.

<PartList name="SlidingElastic1Primary">Part1</PartList>
<PartList name="SlidingElastic1Secondary">Part2</PartList> 
<SurfacePair name="SlidingElastic1">
   <primary>@part_list:SlidingElastic1Primary</primary>
   <secondary>@part_list:SlidingElastic1Secondary</secondary>
</SurfacePair> 

Note the @part_list: prefix in front of the part list name.

Although using the auto-contact can greatly simply defining contact between parts, it is important to keep in mind that there are a few drawbacks. First and foremost, the surfaces extracted from parts will likely be much larger than the contact area and this will result in a performance cost. Second, for complex geometries the extract surfaces may have a complex topology that may confuse some of the contact detection algorithms. In those situations it might be beneficial to decrease the search_radius parameter (for contact algorithms that define this parameter).