Difference between revisions of "Detecting Contact"

From OSUPDOCS
Jump to navigation Jump to search
Line 88: Line 88:
# This <tt>ContactPosition</tt> command is should always be present when all or even some of surfaces are initially separated. Note that it is essentially for handling the initially-separated surface, but it is still correct for those surfaces that start out in contact.
# This <tt>ContactPosition</tt> command is should always be present when all or even some of surfaces are initially separated. Note that it is essentially for handling the initially-separated surface, but it is still correct for those surfaces that start out in contact.
# Although the <tt>ContactPosition</tt> method can handle all contact situations, it is usually more accurate to omit this command when all surfaces are initially in contact. Some possible exceptions are when the problem has large relative displacements such as sliding of a block or rolling of a disk along a surface.
# Although the <tt>ContactPosition</tt> method can handle all contact situations, it is usually more accurate to omit this command when all surfaces are initially in contact. Some possible exceptions are when the problem has large relative displacements such as sliding of a block or rolling of a disk along a surface.
# For irregular meshes, the absolute cutoff position will depend on the orientation of the crack. The code automatically corrects for this effect by a single input cutoff value using a method described in Nairn (2013).
# For irregular meshes, the absolute cutoff position will depend on the orientation of the crack. The code automatically corrects for this effect by a single input cutoff value using a method described in Nairn (2013).<ref name="Nairn">J.A. Nairn, "Modeling Imperfect Interfaces in the Material Point Method using Multimaterial Methods," ''Computer Modeling in Eng. &amp; Sci.'', '''92''', 271-299 (2013).</ref>


== References ==
== References ==
<references/>
<references/>

Revision as of 11:54, 25 September 2013

Both multimaterial mode MPM and explicit cracks need to detect when two surfaces are in contact. This page describes the contact detection options.

Basic Contact Detection

NormalDef.jpg

The figure shows a surface between two materials (a and b) or between two sides of a crack (above and below). The arrow shows a vector normal to the surface oriented from side a to side b. For both multimaterial contact and crack contact, the first step is to decide if the two velocity fields at the node are actually in contact. NairnMPM uses two (or more) criteria to detect contact.

Approach velocity
The first step is to decide the two surface are approaching each other in the normal direction. This criterion reduces to       [math]\displaystyle{ \Delta\vec v \cdot \hat n \lt 0 \qquad {\rm where} \qquad \Delta\vec v = \vec v_a - \vec v_b }[/math] When this criterion is not satisfied, the surfaces are separating and assumed to not be in contact. In early multimaterial MPM,[1] when this criterion is satisfied, the surfaces were assume to be in contact. It is easy to visualize, however, that this approach detects contact when surfaces are just are approaching each other but still separated. For improved contact, a second criterion based on displacements is added.
Displacement check
If the approach velocity criterion is satisfied, NairnMPM next looks at displacements or positions of the two velocity fields. Basically, this criterion calculates the location of the two surfaces. If the overlap in the normal direction the surfaces are in contact. If they are separated, the surfaces are not in contact. Two ways to find contact surfaces by their surface location are to extrapolate particle displacements or particle positions. These methods are described in the section on the ContactPosition command.

Both multimaterial mode contact and crack contact use the above two criterion, but they have some other options. For example, the displacement check is optional in multimaterial mode but is always done for crack contact. In addition, multimaterial mode has an optional screening criterion based on nodal volume that can help screen out nodes that are likely to cause numerical inaccuracies. See the sections below for details.

Notes

  1. An accurate normal vector is crucial to contact detection and contact physics. The methods for calculating these normals is described here.
  2. Since the displacement check seems to track contact best, why not skip the approach velocity criterion? The answer is that the algorithms used to adjust nodal momementum for some contact physics (e.g., friction) do not make physical sense unless that criterion is satisfied.

Multimaterial Mode Contact Detection

Multimaterial mode uses the above contact methods and has two additional options:

  1. The displacement check is optional. It can be turned off using the (dispCheck) parameter in the multimaterial mode input commands. The default is to be enabled and the recommendation is to keep it enabled.
  2. The (Vmin) parameter sets a critical relative volume that will ignore contact for all nodes with total volume below the specified value. It is described in the next section.

Volume Screening for Contact Detection

In volume screening, you set the (Vmin) parameter to a critical volume relative to the total volume of the cells in the background grid. If the volume is below this value, the materials are assumed to not be in contact. If the volume is above this value, the contact detection proceeds with checks on velocity and displacement. One use of this screening is to set it close to 1.0 and then detect contact as a consequence of compression[2]. When the object is compression at a surface, the total volume should increase as material is compressed into the node. When the surfaces are opened, the volume decreases below 1.0. The net result is a simple tool for contact detection. Experience in NairnMPM, however, suggest this approach may not be ideal because the simulation results are often too sensitive to the (Vmin) value.

EdgeNode.png

An alternate use of volume screening is to screen out nodes that can potentially cause artifacts in the calculations. These problem nodes are invariably contact nodes that appear near the edge of the modeled object. The figure on the left shows two materials in contact near an edge. The blue node will be a multimaterial node. To detect contact and implement contact physics, the contact algorithm needs to calculate the normal to the contactin surface. But for edge nodes these calculations are difficult because the free surface will affect the normal calculation. As a result, the calculation may be inaccurate and the entire simulation can suffer.

This issue can often be fixed by ignoring problem edge nodes. In other words, it can be better to ignore contact on edge nodes then to include them with inaccurate surface normals. Because edge nodes are near empty cells, their total volume from particles will always be less than 1.0. The node in the figure will have total relative volume close to 0.5. Thus to screen out edge nodes, you can set (Vmin) parameter to a value below 1.0, often around 0.5. The goal is to screen out edge nodes but to not screen out any nodes within the object. The actual value is problem dependent. When edge nodes appear to be causing problems in contact calculations, start increasing (Vmin) parameter between 0.0 and 1.0 until the simulations improve and hopefully before getting too close to 1.0.

Explicit Crack Contact Detection

ContactPosition Command

InitialContact.png

When using the displacement check to detect contact, the code extrapolates particle positions within each velocity. The opening displacement normal the the surfaces is found from

      [math]\displaystyle{ \delta_n = (\vec x_b-\vec x_a)\cdot\hat n }[/math]

where xa and xb are the extrapolated positions for material above and below the surface and n is the surface normal. But, inherent imprecision of surfaces in MPM (or any particle method) causes a problem. Consider the two surfaces in the figure on the right. When calculations start, their nodal positions extrapolated to common nodes (the blue nodes) will show a positive separation. Calculations with MPM shape functions show that the calculated separation based on positions of two surfaces precisely in contact is

      [math]\displaystyle{ \delta_n \approx 0.8\Delta x }[/math]

where Δx is the cell dimension along the contacting axis.[3] In other words, a contact criterion of δn<0 for contact would not detect contact correctly.

Two approaches can resolved this issue:

  1. Extrapolate particle displacements instead of particle position to the velocity fields. Now the separation for two surfaces in contact when calculations start is zero and a subsequent finding of δn<0 will indicate contact.
  2. Define a contact-position offset, such as δcon= 0.8δx and detect contact when δncon.

Both options are available in NairnMPM multimaterial calculations. The first (or displacements) method requires all contact situations to exist in the initial state and requires relative displacements between materials to be modest. This situation is common in crack or interface modeling. The second (or offset) method must be used when these requirements are not met, which is true for any problem were surfaces start out apart and then move into contact during the simulation.

Selecting ContactPosition Options

By default, NairnMPM extrapolates particle displacements to velocity fields and uses relative displacements of the two surfaces to detect contact. To switch to extrapolating particle position instead, scripted files add the command

ContactPosition (cutoff)

and XML files use the command

<ContactPosition>(cutoff)</ContactPosition>

which must be in either the multimaterial block and explicit cracks block of the <MPMHeader>. In both commans, (cutoff) is the critical separation distance in uses of back ground cell size. It is usually 0.8.

Notes

  1. A single ContactPosition command changes the method used to find surface contact for both multimaterial MPM and for explicit cracks (no matter which block specifies it in XML files). It is not possible to combine different position methods in a single simulation. If two ContactPosition commands are in the same input commands, the last one will deterimine the cutoff position
  2. When possible, the particle displacement method (which is obtained by omitted the ContactPosition is more accurate. but only when it is correct (i.e., when all surfaces initially have zero separation).
  3. This ContactPosition command is should always be present when all or even some of surfaces are initially separated. Note that it is essentially for handling the initially-separated surface, but it is still correct for those surfaces that start out in contact.
  4. Although the ContactPosition method can handle all contact situations, it is usually more accurate to omit this command when all surfaces are initially in contact. Some possible exceptions are when the problem has large relative displacements such as sliding of a block or rolling of a disk along a surface.
  5. For irregular meshes, the absolute cutoff position will depend on the orientation of the crack. The code automatically corrects for this effect by a single input cutoff value using a method described in Nairn (2013).[4]

References

  1. S. G. Bardenhagen, J. E. Guilkey, K. M. Roessig, J. U. Brackbill, W. M. Witzel, and J. C. Foster, "An Improved Contact Algorithm for the Material Point Method and Application to Stress Propagation in Granular Material," Computer Modeling in Engineering & Sciences, 2, 509-522 (2001).
  2. Jim Guilkey, personal communication, 2012
  3. V. Lemiale, A. Hurmane, and J. A. Nairn, "Material Point Method Simulation of Equal Channel Angular Pressing Involving Large Plastic Strain and Contact Through Sharp Corners," Computer Modeling in Eng. & Sci., 70(1), 41-66, (2010).
  4. J.A. Nairn, "Modeling Imperfect Interfaces in the Material Point Method using Multimaterial Methods," Computer Modeling in Eng. & Sci., 92, 271-299 (2013).