<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://osupdocs.forestry.oregonstate.edu/index.php?action=history&amp;feed=atom&amp;title=Detecting_Contact</id>
	<title>Detecting Contact - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://osupdocs.forestry.oregonstate.edu/index.php?action=history&amp;feed=atom&amp;title=Detecting_Contact"/>
	<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;action=history"/>
	<updated>2026-05-30T03:52:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.2</generator>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26199&amp;oldid=prev</id>
		<title>Nairnj: /* Notes */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26199&amp;oldid=prev"/>
		<updated>2026-03-29T18:41:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Notes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:41, 29 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l106&quot;&gt;Line 106:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 106:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Note that the contact-position offset values of 0.8 and -0.58 apply only to calculations with [[MPM_Methods_and_Simulation_Timing#Input_Commands|two particle per cell]] in each direction and linear shape functions (e.g., [[MPM Methods and Simulation Timing|uGIMP and CPDI shape functions]]). The positive cutoff has to be changed for other particle sizes and spline shape functions. For one particle per cell and linear shape functions, a good value is 1.07. For three or more particles per cell, the value can be varied until you get good visual results in simple contact. The value should decrease as the number of particles per cell increases. A negative cutoff corresponds to a specific function that applies only when two particle per cell in each direction and linear shape functions. Use of any other number of particles or shape function should restrict the value to the best possible positive value and not use a negative value.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Note that the contact-position offset values of 0.8 and -0.58 apply only to calculations with [[MPM_Methods_and_Simulation_Timing#Input_Commands|two particle per cell]] in each direction and linear shape functions (e.g., [[MPM Methods and Simulation Timing|uGIMP and CPDI shape functions]]). The positive cutoff has to be changed for other particle sizes and spline shape functions. For one particle per cell and linear shape functions, a good value is 1.07. For three or more particles per cell, the value can be varied until you get good visual results in simple contact. The value should decrease as the number of particles per cell increases. A negative cutoff corresponds to a specific function that applies only when two particle per cell in each direction and linear shape functions. Use of any other number of particles or shape function should restrict the value to the best possible positive value and not use a negative value.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# The &amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt; command is needed whenever all or some contacting material surfaces are initially separated ``and`` you are not getting normals by a [[Surface Normals#Regression Methods|regression &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;methods&lt;/del&gt;]. Note that the command is essential for handling initially-separated surfaces and causes no problems for surfaces that start out in contact. They are still modeled correctly.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# The &amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt; command is needed whenever all or some contacting material surfaces are initially separated ``and`` you are not getting normals by a [[Surface Normals#Regression Methods|regression &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;method]&lt;/ins&gt;]. Note that the command is essential for handling initially-separated surfaces and causes no problems for surfaces that start out in contact. They are still modeled correctly.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Similarly, the &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; command is needed whenever all or some cracks surfaces are initially separated from materials.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Similarly, the &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; command is needed whenever all or some cracks surfaces are initially separated from materials.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Although &amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; methods can handle both initially-separated or initially-contacted interfaces, it is usually more accurate to omit this command when all surfaces are initially in contact. Some exceptions are when the problem has large relative displacements such as sliding of a block or rolling of a disk along a surface; these actually correspond to parts of the surfaces that were separated coming into contact as the simulation evolves.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Although &amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; methods can handle both initially-separated or initially-contacted interfaces, it is usually more accurate to omit this command when all surfaces are initially in contact. Some exceptions are when the problem has large relative displacements such as sliding of a block or rolling of a disk along a surface; these actually correspond to parts of the surfaces that were separated coming into contact as the simulation evolves.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26198&amp;oldid=prev</id>
		<title>Nairnj: /* Notes */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26198&amp;oldid=prev"/>
		<updated>2026-03-29T18:40:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Notes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:40, 29 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l106&quot;&gt;Line 106:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 106:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Note that the contact-position offset values of 0.8 and -0.58 apply only to calculations with [[MPM_Methods_and_Simulation_Timing#Input_Commands|two particle per cell]] in each direction and linear shape functions (e.g., [[MPM Methods and Simulation Timing|uGIMP and CPDI shape functions]]). The positive cutoff has to be changed for other particle sizes and spline shape functions. For one particle per cell and linear shape functions, a good value is 1.07. For three or more particles per cell, the value can be varied until you get good visual results in simple contact. The value should decrease as the number of particles per cell increases. A negative cutoff corresponds to a specific function that applies only when two particle per cell in each direction and linear shape functions. Use of any other number of particles or shape function should restrict the value to the best possible positive value and not use a negative value.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Note that the contact-position offset values of 0.8 and -0.58 apply only to calculations with [[MPM_Methods_and_Simulation_Timing#Input_Commands|two particle per cell]] in each direction and linear shape functions (e.g., [[MPM Methods and Simulation Timing|uGIMP and CPDI shape functions]]). The positive cutoff has to be changed for other particle sizes and spline shape functions. For one particle per cell and linear shape functions, a good value is 1.07. For three or more particles per cell, the value can be varied until you get good visual results in simple contact. The value should decrease as the number of particles per cell increases. A negative cutoff corresponds to a specific function that applies only when two particle per cell in each direction and linear shape functions. Use of any other number of particles or shape function should restrict the value to the best possible positive value and not use a negative value.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# The &amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt; command is needed whenever all or some contacting material surfaces are initially separated ``and`` you are not &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;using &lt;/del&gt;normals &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;method other than &lt;/del&gt;[[Surface Normals#Regression Methods|regression&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;]. Note that the command is essential for handling initially-separated surfaces and causes no problems for surfaces that start out in contact. They are still modeled correctly.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# The &amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt; command is needed whenever all or some contacting material surfaces are initially separated ``and`` you are not &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;getting &lt;/ins&gt;normals &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;by a &lt;/ins&gt;[[Surface Normals#Regression Methods|regression &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;methods&lt;/ins&gt;]. Note that the command is essential for handling initially-separated surfaces and causes no problems for surfaces that start out in contact. They are still modeled correctly.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Similarly, the &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; command is needed whenever all or some cracks surfaces are initially separated from materials.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Similarly, the &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; command is needed whenever all or some cracks surfaces are initially separated from materials.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Although &amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; methods can handle both initially-separated or initially-contacted interfaces, it is usually more accurate to omit this command when all surfaces are initially in contact. Some exceptions are when the problem has large relative displacements such as sliding of a block or rolling of a disk along a surface; these actually correspond to parts of the surfaces that were separated coming into contact as the simulation evolves.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Although &amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; methods can handle both initially-separated or initially-contacted interfaces, it is usually more accurate to omit this command when all surfaces are initially in contact. Some exceptions are when the problem has large relative displacements such as sliding of a block or rolling of a disk along a surface; these actually correspond to parts of the surfaces that were separated coming into contact as the simulation evolves.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26197&amp;oldid=prev</id>
		<title>Nairnj: /* Imperfect Interface Extrapolations */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26197&amp;oldid=prev"/>
		<updated>2026-03-29T18:39:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Imperfect Interface Extrapolations&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:39, 29 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l99&quot;&gt;Line 99:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 99:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A challenge to modeling [[Imperfect Interfaces|imperfect interfaces]] in MPM is accurately calculating the tangential displacement discontinuity. The contact detection methods above focus on finding normal vector and normal separation ([[Surface Normals|LogReg regression method]] works best). These [[Surface Normals|surface normal methods]] look at material points on the two sides of the interface and cannot tell whether or not they got there by prior tangential displacement. Finding the tangential discontinuity is therefore challenging. The solution used in [[NairnMPM]] is to extrapolate displacements to the grid and use them to determine tangential discontinuity (method 2 above).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A challenge to modeling [[Imperfect Interfaces|imperfect interfaces]] in MPM is accurately calculating the tangential displacement discontinuity. The contact detection methods above focus on finding normal vector and normal separation ([[Surface Normals|LogReg regression method]] works best). These [[Surface Normals|surface normal methods]] look at material points on the two sides of the interface and cannot tell whether or not they got there by prior tangential displacement. Finding the tangential discontinuity is therefore challenging. The solution used in [[NairnMPM]] is to extrapolate displacements to the grid and use them to determine tangential discontinuity (method 2 above).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NairnMPM]] automatically uses displacements to find tangential separation for any contact modeled as an imperfect interface. The simulation can use [[Crack Settings|crack settings]] (or the &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; command) for cracks or use [[Multimaterial MPM#Multimaterial Mode Input Commands|&amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt;]] in [[Multimaterial MPM|multimaterial mode]] to use position extrapolations. These settings only affect calculation of normal vector and normal separation; imperfect interfaces will &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;alwaysuse &lt;/del&gt;displacements to find tangential separation.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NairnMPM]] automatically uses displacements to find tangential separation for any contact modeled as an imperfect interface. The simulation can use [[Crack Settings|crack settings]] (or the &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; command) for cracks or use [[Multimaterial MPM#Multimaterial Mode Input Commands|&amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt;]] in [[Multimaterial MPM|multimaterial mode]] to use position extrapolations. These settings only affect calculation of normal vector and normal separation; imperfect interfaces will &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;always use &lt;/ins&gt;displacements to find tangential separation.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note that using displacements to find tangential discontinuity implicitly assumes zero tangential discontinuity at the start of the simulation. This situation is normal when modeling imperfect interfaces.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note that using displacements to find tangential discontinuity implicitly assumes zero tangential discontinuity at the start of the simulation. This situation is normal when modeling imperfect interfaces.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26196&amp;oldid=prev</id>
		<title>Nairnj: /* Imperfect Interface Extrapolations */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26196&amp;oldid=prev"/>
		<updated>2026-03-29T18:38:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Imperfect Interface Extrapolations&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:38, 29 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l99&quot;&gt;Line 99:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 99:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A challenge to modeling [[Imperfect Interfaces|imperfect interfaces]] in MPM is accurately calculating the tangential displacement discontinuity. The contact detection methods above focus on finding normal vector and normal separation ([[Surface Normals|LogReg regression method]] works best). These [[Surface Normals|surface normal methods]] look at material points on the two sides of the interface and cannot tell whether or not they got there by prior tangential displacement. Finding the tangential discontinuity is therefore challenging. The solution used in [[NairnMPM]] is to extrapolate displacements to the grid and use them to determine tangential discontinuity (method 2 above).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A challenge to modeling [[Imperfect Interfaces|imperfect interfaces]] in MPM is accurately calculating the tangential displacement discontinuity. The contact detection methods above focus on finding normal vector and normal separation ([[Surface Normals|LogReg regression method]] works best). These [[Surface Normals|surface normal methods]] look at material points on the two sides of the interface and cannot tell whether or not they got there by prior tangential displacement. Finding the tangential discontinuity is therefore challenging. The solution used in [[NairnMPM]] is to extrapolate displacements to the grid and use them to determine tangential discontinuity (method 2 above).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;NairnMPM automatically uses displacements to find tangential separation for any contact modeled as an imperfect interface. The simulation can use [[Crack Settings|crack settings]] (or the &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; command) for cracks or use [[Multimaterial MPM#Multimaterial Mode Input Commands|&amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt;]] in [[Multimaterial MPM|multimaterial mode]] to use position extrapolations. These settings only affect calculation of normal vector and normal separation; imperfect interfaces will alwaysuse displacements to find tangential separation.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;NairnMPM&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;automatically uses displacements to find tangential separation for any contact modeled as an imperfect interface. The simulation can use [[Crack Settings|crack settings]] (or the &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; command) for cracks or use [[Multimaterial MPM#Multimaterial Mode Input Commands|&amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt;]] in [[Multimaterial MPM|multimaterial mode]] to use position extrapolations. These settings only affect calculation of normal vector and normal separation; imperfect interfaces will alwaysuse displacements to find tangential separation.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note that using displacements to find tangential discontinuity implicitly assumes zero tangential discontinuity at the start of the simulation. This situation is normal when modeling imperfect interfaces.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note that using displacements to find tangential discontinuity implicitly assumes zero tangential discontinuity at the start of the simulation. This situation is normal when modeling imperfect interfaces.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26195&amp;oldid=prev</id>
		<title>Nairnj: /* Imperfect Interface Extrapolations */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26195&amp;oldid=prev"/>
		<updated>2026-03-29T18:38:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Imperfect Interface Extrapolations&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:38, 29 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l97&quot;&gt;Line 97:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 97:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Imperfect Interface Extrapolations ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Imperfect Interface Extrapolations ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A challenge to modeling [[Imperfect Interfaces|imperfect interfaces]] in MPM is accurately calculating the tangential displacement discontinuity. The contact detection methods above focus on finding normal vector and normal separation ([[Surface Normals|LogReg regression method]] works best). These [[Surface Normals|surface normal methods]] look at material points on the two sides of the interface and cannot tell whether or not they got there by prior tangential displacement. Finding the tangential discontinuity is therefore challenging. The solution used in NairnMPM is to extrapolate displacements to the grid and use them to determine tangential discontinuity (method 2 above).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A challenge to modeling [[Imperfect Interfaces|imperfect interfaces]] in MPM is accurately calculating the tangential displacement discontinuity. The contact detection methods above focus on finding normal vector and normal separation ([[Surface Normals|LogReg regression method]] works best). These [[Surface Normals|surface normal methods]] look at material points on the two sides of the interface and cannot tell whether or not they got there by prior tangential displacement. Finding the tangential discontinuity is therefore challenging. The solution used in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;NairnMPM&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;is to extrapolate displacements to the grid and use them to determine tangential discontinuity (method 2 above).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;NairnMPM automatically uses displacements to find tangential separation for any contact modeled as an imperfect interface. The simulation can use [[Crack Settings|crack settings]] (or the &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; command) for cracks or use [[Multimaterial MPM#Multimaterial Mode Input Commands|&amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt;]] in [[Multimaterial MPM|multimaterial mode]] to use position extrapolations. These settings only affect calculation of normal vector and normal separation; imperfect interfaces will alwaysuse displacements to find tangential separation.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;NairnMPM automatically uses displacements to find tangential separation for any contact modeled as an imperfect interface. The simulation can use [[Crack Settings|crack settings]] (or the &amp;lt;tt&amp;gt;ContactPositionCracks&amp;lt;/tt&amp;gt; command) for cracks or use [[Multimaterial MPM#Multimaterial Mode Input Commands|&amp;lt;tt&amp;gt;ContactPosition&amp;lt;/tt&amp;gt;]] in [[Multimaterial MPM|multimaterial mode]] to use position extrapolations. These settings only affect calculation of normal vector and normal separation; imperfect interfaces will alwaysuse displacements to find tangential separation.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26194&amp;oldid=prev</id>
		<title>Nairnj: /* ContactPosition Command */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26194&amp;oldid=prev"/>
		<updated>2026-03-29T18:36:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;ContactPosition Command&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:36, 29 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l50&quot;&gt;Line 50:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 50:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;li&amp;gt;Define a contact-position offset, such as &amp;amp;delta;&amp;lt;sub&amp;gt;con&amp;lt;/sub&amp;gt;= 0.8&amp;amp;delta;x, and detect contact when &amp;amp;delta;&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&amp;amp;lt;&amp;amp;delta;&amp;lt;sub&amp;gt;con&amp;lt;/sub&amp;gt;. The contact-position offset may need to change depending on other simulations settings.[[#Notes|&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;]]&amp;lt;/li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;li&amp;gt;Define a contact-position offset, such as &amp;amp;delta;&amp;lt;sub&amp;gt;con&amp;lt;/sub&amp;gt;= 0.8&amp;amp;delta;x, and detect contact when &amp;amp;delta;&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&amp;amp;lt;&amp;amp;delta;&amp;lt;sub&amp;gt;con&amp;lt;/sub&amp;gt;. The contact-position offset may need to change depending on other simulations settings.[[#Notes|&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;]]&amp;lt;/li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;li&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Undertake of &lt;/del&gt;more precise analysis of relation between extrapolated position of a material and actual distance to a node. First, we write the separation as:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;li&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Use a &lt;/ins&gt;more precise analysis of relation between extrapolated position of a material and actual distance to a node. First, we write the separation as:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26193&amp;oldid=prev</id>
		<title>Nairnj: /* Basic Contact Detection */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26193&amp;oldid=prev"/>
		<updated>2026-03-29T18:34:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Basic Contact Detection&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:34, 29 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l11&quot;&gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;Approach velocity&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;Approach velocity&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dd&amp;gt;The first step is to decide if the two surface are approaching each other in the normal direction. This criterion reduces to&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dd&amp;gt;The first step is to decide if the two surface are approaching each other in the normal direction. This criterion reduces to&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;\Delta\vec v \cdot \hat n &amp;lt; 0&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\Delta\vec v = \vec v_a - \vec v_b&amp;lt;/math&amp;gt;. When this criterion is not satisfied, the surfaces are separating and assumed to not be in contact. In early multimaterial MPM,&amp;lt;ref name=&amp;quot;bard&amp;quot;/&amp;gt; this criterion alone was assumed sufficient to be in contact. It is easy to visualize, however, that this assumption detects contact when surfaces are approaching each other but are still separated. For improved contact, a second criterion based on displacements is &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;added&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;\Delta\vec v \cdot \hat n &amp;lt; 0&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\Delta\vec v = \vec v_a - \vec v_b&amp;lt;/math&amp;gt;. When this criterion is not satisfied, the surfaces are separating and assumed to not be in contact. In early multimaterial MPM,&amp;lt;ref name=&amp;quot;bard&amp;quot;/&amp;gt; this criterion alone was assumed sufficient to be in contact. It is easy to visualize, however, that this assumption detects contact when surfaces are approaching each other but are still separated. For improved contact, a second criterion based on displacements is &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;needed&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;Displacement check&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;Displacement check&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26192&amp;oldid=prev</id>
		<title>Nairnj: /* Basic Contact Detection */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26192&amp;oldid=prev"/>
		<updated>2026-03-29T18:33:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Basic Contact Detection&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:33, 29 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l11&quot;&gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;Approach velocity&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;Approach velocity&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dd&amp;gt;The first step is to decide if the two surface are approaching each other in the normal direction. This criterion reduces to&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dd&amp;gt;The first step is to decide if the two surface are approaching each other in the normal direction. This criterion reduces to&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;\Delta\vec v \cdot \hat n &amp;lt; 0&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/math&amp;gt; &lt;/ins&gt;where &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;\Delta\vec v = \vec v_a - \vec v_b&amp;lt;/math&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. &lt;/ins&gt;When this criterion is not satisfied, the surfaces are separating and assumed to not be in contact. In early multimaterial MPM,&amp;lt;ref name=&amp;quot;bard&amp;quot;/&amp;gt; this criterion alone was assumed sufficient to be in contact. It is easy to visualize, however, that this assumption detects contact when surfaces are approaching each other but are still separated. For improved contact, a second criterion based on displacements is added.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;\Delta\vec v \cdot \hat n &amp;lt; 0 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\qquad {\rm &lt;/del&gt;where&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;} \qquad &lt;/del&gt;\Delta\vec v = \vec v_a - \vec v_b&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When this criterion is not satisfied, the surfaces are separating and assumed to not be in contact. In early multimaterial MPM,&amp;lt;ref name=&amp;quot;bard&amp;quot;/&amp;gt; this criterion alone was assumed sufficient to be in contact. It is easy to visualize, however, that this assumption detects contact when surfaces are approaching each other but are still separated. For improved contact, a second criterion based on displacements is added.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;Displacement check&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;Displacement check&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26191&amp;oldid=prev</id>
		<title>Nairnj: /* Basic Contact Detection */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26191&amp;oldid=prev"/>
		<updated>2026-03-29T18:32:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Basic Contact Detection&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:32, 29 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:NormalDef.jpg|right]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:NormalDef.jpg|right]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;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]] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;uses &lt;/del&gt;two criteria to detect contact.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;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]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;combines &lt;/ins&gt;two criteria to detect contact.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26190&amp;oldid=prev</id>
		<title>Nairnj: /* Separation Using Regression Methods */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Detecting_Contact&amp;diff=26190&amp;oldid=prev"/>
		<updated>2026-03-29T18:31:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Separation Using Regression Methods&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:31, 29 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot;&gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Separation Using Regression Methods ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Separation Using Regression Methods ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When using [[Surface Normals#Regression Methods|regression methods]] to find surface normals,&amp;lt;ref name=&amp;quot;logreg&amp;quot;/&amp;gt; the code builds lists of point clouds around each multimaterial node. Once the normal is found, it examines distance between the two material along that normal by checking each particle around the node. If the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;particle &lt;/del&gt;are deformed, the calculation accounts for that deformation. The two closest &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;particle &lt;/del&gt;determine the interfacial separation.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When using [[Surface Normals#Regression Methods|regression methods]] to find surface normals,&amp;lt;ref name=&amp;quot;logreg&amp;quot;/&amp;gt; the code builds lists of point clouds around each multimaterial node. Once the normal is found, it examines distance between the two material along that normal by checking each particle around the node. If the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;particles &lt;/ins&gt;are deformed, the calculation accounts for that deformation. The two closest &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;particles &lt;/ins&gt;determine the interfacial separation.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;These regression methods are preferred over all [[#ContactPosition Command|grid extrapolation methods]] because they provide a direct calculation of separation and can account for particle deformation. When not using [[Surface Normals#Regression Methods|regression methods]], however, the separation calculation has to be based on extrapolated particle positions and displacement on the grid. See [[#ContactPosition Command|below]] for those methods. Note the [[MPM Input Files#Using Explicit Cracks|crack modeling]] finds normals from crack surfaces and therefore never uses [[Surface Normals#Regression Methods|regression methods]]. When modeling cracks, therefore, you must select a [[#ContactPosition Command|grid extrapolation method]] for calculating separation.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;These regression methods are preferred over all [[#ContactPosition Command|grid extrapolation methods]] because they provide a direct calculation of separation and can account for particle deformation. When not using [[Surface Normals#Regression Methods|regression methods]], however, the separation calculation has to be based on extrapolated particle positions and displacement on the grid. See [[#ContactPosition Command|below]] for those methods. Note the [[MPM Input Files#Using Explicit Cracks|crack modeling]] finds normals from crack surfaces and therefore never uses [[Surface Normals#Regression Methods|regression methods]]. When modeling cracks, therefore, you must select a [[#ContactPosition Command|grid extrapolation method]] for calculating separation.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
</feed>