Manage Penetrations/Intersections

Check contacts, components, or groups for element penetrations and intersections using the Penetration tool.

Penetration and intersection can be used individually or collectively. Penetration is defined as the overlap of the material thickness of shell elements, while intersection is defined as elements passing completely through one another.

  1. From the Validate ribbon, click the Penetration tool.
    Figure 1.

    The guide bar and Penetrations browser opens.
  2. Set up the Penetration Check and check for intersections/penetrations using the embedded algorithm.
    1. From the guide bar, click and select Embedded Algorithm for Check method.
      Restriction: This is only for the LS-DYNA profile.
    2. For Check type, select the type of collision to check.
    3. From the guide bar, select the type of entity to be checked for intersections and/or penetrations.
      You can select Groups (contacts), Components, Elements, or Parts.

      Selecting one of more contacts will perform the penetration check according to the rules enforced by the solver. In any case, the penetrating elements will be found, and the results will display in the Penetration Browser. Results will be listed by pairs of components regardless of the entity type that was used to select penetration candidates.

    4. From the guide bar, click and adjust the Minimum Penetration depth to filter out penetrations with lower penetration depth values.
    5. Select a Thickness option.
      • Choose Component/Elements thickness to apply no adjustments as it uses the thickness value specified in a component’s property card for each element within that component.
      • Choose Thickness multiplier to multiply the selected entities' thickness by the value entered in the Thickness multiplier field for purposes of the penetration check. Fractional values are acceptable, but negative values are not.
      • Choose Uniform thickness to ignore the existing component's thickness, and instead uses the value entered in the Uniform Thickness field for all of the components in the model.
        Note: Use Uniform thickness as a workaround to the lack of thickness information in the default HyperMesh user profile, or when working with models that do not have a thickness specified.
    6. Select a Thickness>Size option.
    7. Select the Consider edge penetrations checkbox to consider edge penetrations.
    8. For Boundary shell edge treatment, select a treatment algorithm for the boundary shell edge.
      • Choose Flat edges to consider external borders of the components flat.
        Figure 2. Flat Edges

      • Choose Rounded edges to extend external borders of the component by a cylinder having the diameter of the component thickness.
        Figure 3. Rounded Edges

    9. From the guide bar, click Check.
      Once the check is complete, the browser populates with detected intersections and/or penetrations.
      Figure 4.

  3. Review the penetrations/intersections using the view controls legend.
    Figure 5.

    • Highlight failed: Highlights all elements that caused penetrations or intersection when you select a component pair the browser.
    • Contour depth: Displays a color gradient of the penetrating elements in the selected component pair, which indicates the severity (degree) of penetration for the interacting elements. This mode is not available for intersections because their depth cannot be determined.
    • Penetration Vectors: Displays individual vectors for each penetrating element in the component that you select in the browser. These vectors indicate the direction and depth of the penetration for both the selected component and its interacting components.
      Note: If you want to view the vectors in a fixed size of his choice, you must adjust the Penetration vector size from the guide bar under .

      This mode is not available for intersections because their depth cannot be determined.

    • Only elements: Masks everything in the model, including the interacting components, except for the specific elements that penetrate or intersect.
  4. Fix the penetrations/intersections.
    To fixDo this
    1. Select groups/components/parts to fix in the Penetration Browser.
    2. Right-click on the pair, and select Manual Fix from the context menu.
      Note: You can also select the pair in the Penetration Browser and click on the guide bar.
      Nodes list from the penetrations are automatically selected. The Manual Fix move tool opens and will be used to manipulate nodes, elements to remove the penetrations, or intersections.
    3. From the guide bar, select Recheck to recheck that the intersection/penetration no longer remains.
    1. Select groups/components/parts to fix in the Penetration Browser.
    2. On the guide bar, click Fix all.
      Note: You can also right-click the pair in the Penetration Browser and select Auto fix from the context menu.
    • If a component is intersecting with another, right-click on the component and select Find Matching Penetrating Component Pair from the context menu to find the same pair of components in the penetrations list. If the pair does not penetrate, a message will display.
    • To keep a specific component from changing when performing de-penetration fixes, right-click on that component and select Lock Component from the context menu. A red padlock displays on the component name in the browser to indicate that it has been locked. The nodes in a locked component cannot be moved by the Collision tool. To unlock, right-click a locked component and select Unlock Component from the context menu.
      Figure 6.

    • Sort the columns in the browser by clicking the column headings. For example, clicking the Violations heading sorts the parent components according to their number of violations. A small triangular arrow in the column heading indicates whether the components are sorted in ascending or descending order; repeated clicks toggle between these two options.
  5. Set up the Penetration Check and check solver output files for penetrations using the Solver output file reader method.
    Restriction: This capability is only for the LS-DYNA profile. It reads the LS-DYNA message or d3hsp file containing the contact penetrations information and populates those penetrations in the Penetration Browser.
    1. From the guide bar, click .
    2. In the Check Method field, select the Solver output file reader method.
    3. In the Selection field, select contacts (groups) that need to be checked for penetrations.
      If no contact is selected, all penetrations for all contacts written in the solver output file will be displayed in the browser.
    4. In the Solver output directory, browse and select the path in which the solver output files are located.
    5. Use Minimum penetration depth to filter out penetrations with lower penetration depth values.
    6. Select the Create sets of failed entities check box to automatically generate solver set containing the penetrating nodes and penetrated segments.
    7. Click Check to read the solver output file and populate the penetrations in the browser.
    8. Fix the penetrations using automatic or manual methods.


The Penetration Check tool in HyperMesh is designed to mimic the respective Finite Element solver on hand to the maximum extent possible. This way, identified initial penetrations are almost identical to those detected by the solvers themselves.

Most Finite Element solvers encounter two types of collisions: penetrations and intersections.


Penetrations themselves are broadly divided into two categories: Node to Segment and Edge to Edge penetrations. Most commercial Finite Element solvers offer interfaces that are Node to Segment only, or Edge to Edge only, or more often than not, a combination of Node to Segment and Edge to Edge.

Node to Segment Penetrations
A node to segment penetration is encountered when a secondary node is spatially located within the thickness of a main segment:
Figure 7.

Such penetrations are usually reported by solvers as “node to surface” penetrations. During penetration checks, a secondary node is a sphere with its diameter numerically equal to the maximum thickness of all secondary segments it is attached to.

The "Gap" used for detection of penetration = (Secondary node thickness / 2) + (Main segment thickness / 2)
Figure 8.

In order to accurately identify nodal penetrations at segment boundaries, like most commercial Finite Element solvers, the Penetration Check tool adds virtual cylinders to the edges of segment boundaries as shown below:
Figure 9.

Penetrations are also encountered when secondary nodes impact virtual cylindrical edges of main segments:
Some solvers report such penetrations separately as “node to edge,” while others bundle them together with “nodes to surface” penetrations.
Flat boundary shell edges treatment: During nodes to surface penetration checks, some modern contact interfaces provide parameters to disable the addition of virtual cylinders on free/boundary edges of shell elements (along free edges of shell components).
With this, it is possible to identify ‘true’ penetrations at free edges of shell components since the checks are now performed on geometries that accurately represent the physical model.
For such modern interfaces in the Penetration Check tool:
  • No virtual cylinders are added to the free/boundary edges of main shell elements.
  • For secondary nodes of shell elements, the portion of the secondary node spheres that lie outside the material of the shell elements are ignored.
    Figure 10.

Note: A secondary node sphere should not be attached to more than two free/boundary shell edges. If attached to more than two, the secondary node sphere will be retained fully.
Edge to Edge Penetrations
Edge to edge penetrations are those that occur when two distinct virtual edge cylinders of segments (that do not share a common node) interfere with each other.
Figure 11.

Most solvers identify and report such penetrations distinctly as "Edge to Edge" penetrations.
Special Use Case
Self-penetrations due to extremely thick segments. Some interfaces contain segments with large thicknesses (when compared to segment edge lengths). Depending on the type of penetration check performed, you might encounter penetrations within the same component.
In a node to surface check, the secondary node sphere of one element penetrates the virtual cylinder of the neighboring main segment.
Figure 12.

In an edge to edge check, two virtual cylinders on opposite edges of the same segment penetrate each other.
Figure 13.

Some solvers offer one or both of the following remedies to deal with the above issues when they are encountered during Node to Surface checks:
  • Ignore penetrations within the neighborhood of a secondary node. Penetrations between a secondary node and main segments in its immediate neighborhood within the same component are ignored. In Radioss, this method can be activated for /INTER/TYPE7 type interfaces by setting 'IREM_GAP = 2'. This method, if activated in the Penetration Check tool, will impose significant computation overhead, thereby impacting the performance of the tool.
  • Reduce thickness of main segments by a specified factor. This can be seen in LS-DYNA single surface contacts, where the thickness is reduced to 40% of the minimum edge length of the segment.


Intersections are formed when an edge of an element crosses the mid surfaces/faces of other shell elements/solid elements, respectively.
Figure 14.

Intersection checks are not a function of solver parameters and are, therefore, user-profile agnostic.

Intersections are not reported by most solvers. However, their presence will lead to severe issues during analyses, and should therefore be avoided at all costs.

Supported Solver Contacts and Parameters

In this section you will find contact and parameter information for the LS-DYNA, PAM-CRASH, and Radioss solver cards.

LS-DYNA Solver Contacts

Table 1.
Group Type Node to Surface Edge to Edge N2S Treatment when thickness > edge length
SINGLE_SURFACE Yes No Optional, 40% of minimum edge length
AUTOMATIC_GENERAL Yes Yes Optional, 40% of minimum edge length

PAM-CRASH Solver Contacts

Table 2.
Group Type Node to Surface Edge to Edge N2S Treatment when thickness > edge length
CNTAC Type 33 Yes No Ignore neighborhood penetrations
CNTAC Type 34 Yes No Ignore neighborhood penetrations
CNTAC Type 36 Yes No Ignore neighborhood penetrations
CNTAC Type 37 Yes Yes Ignore neighborhood penetrations
CNTAC Type 43 Yes Yes Ignore neighborhood penetrations
CNTAC Type 46 Yes Yes Ignore neighborhood penetrations

Radioss Solver Contacts

Table 3.
Group Type Node to Surface Edge to Edge N2S Treatment when thickness > edge length
/INTER/TYPE7 Yes No Optional, ignore neighborhood penetrations

LS-DYNA Solver Parameters

Table 4.
Entity Solver Parameters

PAM-CRASH Solver Parameters

Table 5.
Entity Solver Parameters

Radioss Solver Parameters

Table 6.
Entity Solver Parameters
/INTER/TYPE7 IGap, GapMin, GapMax, FScaleGap, IRem_Gap, %Mesh_Size
/INTER/TYPE11 IGap, GapMin
/INTER/TYPE19 IGap, GapMin, GapMax, FScaleGap
/INTER/TYPE24 IPen0, Grnod_Ids, GapMax_S, GapMax_M, PenMax, Inacti
/PART Thick
/PROP Thick
/SHELL Thick
/SH3N Thick

Node List for Selected Penetrations

After performing penetration checks, detailed information regarding penetrating secondary nodes can be viewed in the node list for selected penetrations.

Figure 15.

The list contains information on all penetrating secondary nodes from the Components Pair(s)/Group(s) selected in the Penetrations Check browser. The five columns in the table contain the following information:
Node ID
IDs of the penetrating secondary nodes.
Pene. Depth
The maximum penetration depth for each secondary node listed.
The gap (or thickness) value corresponding to the maximum of all penetration depths for each secondary node listed.
Rel. Pene
The relative penetration value for each secondary node listed. Relative Penetration = Penetration Depth / Thickness.
Res. Dist
The residual distance (or physical distance) between the mid-plane of the main segment and the center of the secondary node sphere.
If a secondary node impacts multiple segments (from a "Node to Surface" check) and/or belongs to an edge that impacts multiple edges (from an "Edge to Edge" check):
  • The secondary node is listed only once (despite multiple penetrations of multiple entities)
  • The information listed against it corresponds to the maximum of all its penetration depths