Difference between revisions of "Surface Normals"

From OSUPDOCS
Jump to navigation Jump to search
 
(25 intermediate revisions by the same user not shown)
Line 5: Line 5:
[[File:NormalDef.jpg|right]]
[[File:NormalDef.jpg|right]]


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. Finding this normal accurately is a key component of implementing both multimaterial mode contact and crack contact. First, normals are needed to find the component of the velocity in the approaching direction and the separation in the opening direction, both of which are used to [[Detecting Contact|detect contact]]. Second, the normals are needed to implement contact mechanics such as to model [[Friction|frictional contact]] or [[Imperfect Interfaces|imperfect interfaces]].
The figure shows a surface between two materials (a and b) or between two sides of a crack (above and below) or a contacting interface. The arrow shows a vector normal to the surface oriented from side a to side b. Finding this normal accurately is a key component of implementing both multimaterial mode contact and crack contact. First, normals are needed to find the component of the velocity in the approaching direction and the separation in the opening direction, both of which are used to [[Detecting Contact|detect contact]]. Second, the normals are needed to implement contact mechanics such as to model [[Contact Laws|contact laws]] or [[Imperfect Interfaces|imperfect interfaces]].


Practical experience using [[Multimaterial MPM|multimaterial mode MPM]] simulations has revealed that accuracy of results is very sensitive to the method used to find the normals. In fact, when a multimaterial mode simulation has numerical issues, the causes of those issues are almost always connected to problems in finding surface normals. See [[#Multimaterial Normal Vector Options|below]] for the various options in [[Multimaterial MPM|multimaterial mode MPM]] for finding normals. Numerous options are needed because no one option works for all problems.
Practical experience using [[Multimaterial MPM|multimaterial mode MPM]] simulations has revealed that accuracy of results is very sensitive to the method used to find the normals. In fact, when a multimaterial mode simulation has numerical issues, the causes of those issues are almost always connected to problems in finding surface normals. See [[#Multimaterial Normal Vector Options|below]] for the various options in [[Multimaterial MPM|multimaterial mode MPM]] for finding normals.


Simulations that use [[Crack Settings|explicit cracks]], have far fewer issues with normals. The normals are still crucial, but because the crack geometry is tracked, the crack normals are more easily calculated. See [[#Explicit Crack Normal Vector|below]] for some details on crack surface normals.
Simulations that use [[Crack Settings|explicit cracks]], have far fewer issues with normals. The normals are still crucial, but because the crack geometry is tracked, the crack normals are more easily calculated. See [[#Explicit Crack Normal Vector|below]] for some details on crack surface normals.
Line 13: Line 13:
== Multimaterial Normal Vector Options ==
== Multimaterial Normal Vector Options ==


[[NairnMPM]] has implemented several methods for finding normals in multimaterial mode contact. No one method works for all problems, which is why multiple options are needed. This section describes the available options.
[[NairnMPM]] has implemented several methods for finding normals in multimaterial mode contact. The regression methods<ref name="logreg"/> are the state-or-the-art in MPM contact and the default method in [[NairnMPM]]. Other methods are available for special applications or for comparisons.


=== Regression Methods ===
=== Regression Methods ===


The preferred method to find normals is to use logistic regression methods (a linear regression method is also implemented, but not as accurate as the logistic regression option). This methods uses artificial intelligence methods know as a [https://en.wikipedia.org/wiki/Support-vector_machine support vector machine] to calculate normal between two surface and to find their separation. In appears to solve many issues in MPM contact and to also provided a much better calculation of [[Detecting Contact|contact separation]]. The method is currently only available in [[OSParticulas]] until development and publication is finished.
The preferred method to find normals is to use logistic regression methods<ref name="logreg"/> (a linear regression method is also implemented, but not as accurate as the logistic regression option). These methods uses artificial intelligence methods know as a [https://en.wikipedia.org/wiki/Support-vector_machine support vector machine] to calculate normal between two surfaces and to find their separation. It appears to solve many issues in MPM contact and to also provides a much better calculation of [[Detecting Contact|contact separation]].


Regression methods are selected by [[Multimaterial MPM#Multimaterial Mode Input Commands|setting <tt>(normals)</tt>]] to <tt>linreg</tt> (or numerically to 5) or <tt>logreg</tt> (or numerically to 5). The <tt>logreg</tt> option is preferred.
Regression methods are selected by [[Multimaterial MPM#Multimaterial Mode Input Commands|setting <tt>(normals)</tt>]] to <tt>logreg</tt> (or numerically to 6) or <tt>linreg</tt> (or numerically to 5). The <tt>logreg</tt> option is preferred. The only drawback of <tt>logreg</tt> is that it requires solution to a numerical problem to find the normal at each contact node. In many problems, the number of contact nodes will be much less then number of nodes in the grid and thus the extra calculations are not a burden. A possible option for faster simulations with lots of contact is to switch to <tt>linreg</tt>. Although the theory is different than <tt>logreg</tt>, mathematically it is equivalent to using <tt>logreg</tt> but stopping the numerical solution after one interation. It retains advantages of regressions methods,<ref name="logreg"/> but has reduced accuracy in normal calculations.


=== Each Material's Gradient ===
=== Each Material's Gradient ===


When multimaterial mode MPM was initially developed, contact was handled separately for each material's velocity field and the normal vector was found from that material's mass gradient.<ref name="bard">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," <i>Computer Modeling in Engineering &amp; Sciences</i>, <b>2</b>, 509-522 (2001).</ref> The alorithm is straightforward and is extended to more than two materials in contact simply for iterating for each material. Experience shows it suffers in accuracy compared to methods desribed below. For one thing, the normals for the two materials will generally not be in equal and opposite directions. When that occurs, the contact algorithm does not conserve momentum.
When multimaterial mode MPM was initially developed, contact was handled separately for each material's velocity field and the normal vector was found from that material's mass gradient.<ref name="bard"/> The alorithm is straightforward and is extended to more than two materials in contact simply for iterating for each material. Experience shows it suffers in accuracy. For one thing, the normals for the two materials will generally not be in equal and opposite directions. When that occurs, the contact algorithm does not conserve momentum.


This method is selected by [[Multimaterial MPM#Multimaterial Mode Input Commands|setting <tt>(normals)</tt>]] to <tt>owngrad</tt> (or numerically to 3). This option is available in [[NairnMPM]] for comparison to improved methods and not recommended for general use.
This method is selected by [[Multimaterial MPM#Multimaterial Mode Input Commands|setting <tt>(normals)</tt>]] to <tt>owngrad</tt> (or numerically to 3). This option is available in [[NairnMPM]] for comparison to improved methods and not recommended for general use.
Line 31: Line 31:
[[File:avggrad.png|right]]
[[File:avggrad.png|right]]


This method (and other improvements below) are described in more detail 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>. The first obvious improvement to conserve momentum is to find the average volume gradient between the two materials and use that vector to define the normal for both sides of the surface. If the multimaterial mode has [[Multimaterial MPM#More than Two Materials|more than two materials]], the average is found between one material and the remaining materials lumped into a virtual material. Note that whenever averaging or comparing gradients, it is important to use volume gradients instead of mass gradients. This minor change is needed to correctly model contact between two materials with different densities.
Prior to regression methods, this method (and other improvements below) was the best option; it is
described in more detail in Nairn (2013).<ref name="Nairn"/>. The first obvious improvement to conserve momentum is to find the average volume gradient between the two materials and use that vector to define the normal for both sides of the surface. If the multimaterial mode has [[Multimaterial MPM#More than Two Materials|more than two materials]], the average is found between one material and the remaining materials lumped into a virtual material. Note that whenever averaging or comparing gradients, it is important to use volume gradients instead of mass gradients. This minor change is needed to correctly model contact between two materials with different densities.


An average gradient calculation can also resolve some complications at edge nodes. The figure on the right shows two materials in contact at the edge of an object. The volume gradients for the red and black materials on the multimaterial node marked in blue are shown by the vectors. Both of these normals are inaccurate for the contacting surfaces, but averaging the normals (with correct signs), gives a normal vector in the horizontal direction that exactly matches the contact surface normal. An average gradient resolves this one edge node issue, but will not correct them all; see the [[#Volume Screening|volume screen method]] for an alternate way to deal with common problems at edge nodes.
An average gradient calculation can also resolve some complications at edge nodes. The figure on the right shows two materials in contact at the edge of an object. The volume gradients for the red and black materials on the multimaterial node marked in blue are shown by the vectors. Both of these normals are inaccurate for the contacting surfaces, but averaging the normals (with correct signs), gives a normal vector in the horizontal direction that exactly matches the contact surface normal. An average gradient resolves this one edge node issue, but not all (see the [[#Volume Screening|volume screen method]] and example). The preferred [[#Regression Methods|regression methods]] appear to handle all edge issues well, which is a motivation for using them.


This method is selected by [[Multimaterial MPM#Multimaterial Mode Input Commands|setting <tt>(normals)</tt>]] to <tt>avggrad</tt> (or numerically to 2).
This method is selected by [[Multimaterial MPM#Multimaterial Mode Input Commands|setting <tt>(normals)</tt>]] to <tt>avggrad</tt> (or numerically to 2).
Line 43: Line 44:
This method looks at the volume gradient's for the two materials and choses the vector that has the largest magnitude (and then normalizes to get a unit vector). The logic is that volume gradient is zero within an object and only non-zero around the edge. Thus the material that is closer the edge might have more accurate information about the normal and it will have the larger volume gradient. Perhaps this material's normal should be used in preference to the other material's normal. If the multimaterial mode has [[Multimaterial MPM#More than Two Materials|more than two materials]], the maximum gradient is found by comparing the one material to the remaining materials lumped into a virtual material.
This method looks at the volume gradient's for the two materials and choses the vector that has the largest magnitude (and then normalizes to get a unit vector). The logic is that volume gradient is zero within an object and only non-zero around the edge. Thus the material that is closer the edge might have more accurate information about the normal and it will have the larger volume gradient. Perhaps this material's normal should be used in preference to the other material's normal. If the multimaterial mode has [[Multimaterial MPM#More than Two Materials|more than two materials]], the maximum gradient is found by comparing the one material to the remaining materials lumped into a virtual material.


A maximum gradient calculation can also resolve some edge node issues. The figure on the left shows two materials in contact near an edge notch in an object. The volume gradients for the red and black materials on the multimaterial node marked in blue are shown by the vectors. Now the gradient from the red material is correct for the surface normal while the gradient for the black material is not. An average would be better, but still inaccurate. For this situation, the material with the maximum gradient will be the red material (because it has more particles). Therefore this method will get the correct normal. A maximum gradient resolves this one edge node issue, but will not correct them all; see the [[#Volume Screening|volume screen method]] for an alternate way to deal with common problems at edge nodes.
A maximum gradient calculation resolves some edge node issues. The figure on the left shows two materials in contact near an edge notch in an object. The volume gradients for the red and black materials on the multimaterial node marked in blue are shown by the vectors. Now the gradient from the red material is correct for the surface normal while the gradient for the black material is not. An average would be better, but still inaccurate. For this situation, the material with the maximum gradient will be the red material (because it has more particles). Therefore this method will get the correct normal. A maximum gradient resolves this one edge node issue, but not all. The preferred [[#Regression Methods|regression methods]] appear to handle all edge issues well, which is a motivation for using them.


This method is selected by [[Multimaterial MPM#Multimaterial Mode Input Commands|setting <tt>(normals)</tt>]] to <tt>maxgrad</tt> (or numerically to 0).
This method is selected by [[Multimaterial MPM#Multimaterial Mode Input Commands|setting <tt>(normals)</tt>]] to <tt>maxgrad</tt> (or numerically to 0).
Line 51: Line 52:
This option looks at the total volume for the two materials and choses the vector using the volume gradient of the material with the larger volume (and then normalizes to get a unit vector). The logic is that multimaterial nodes may have very different volumes between the two materials and one may have very small volume. Because a small volume material may have very inaccurate volume gradient, it is preferable to use the one with more volume. If the multimaterial mode has [[Multimaterial MPM#More than Two Materials|more than two materials]], the maximum volume is found by comparing the one material to the volume of all other materials lumped into a virtual material.
This option looks at the total volume for the two materials and choses the vector using the volume gradient of the material with the larger volume (and then normalizes to get a unit vector). The logic is that multimaterial nodes may have very different volumes between the two materials and one may have very small volume. Because a small volume material may have very inaccurate volume gradient, it is preferable to use the one with more volume. If the multimaterial mode has [[Multimaterial MPM#More than Two Materials|more than two materials]], the maximum volume is found by comparing the one material to the volume of all other materials lumped into a virtual material.


Experience shows this method is less helpful than the average or maximum gradient methods and therefore not recommended. It does, however, also resolve the notch issue for the situation listed under maximum gradient method. By this method the red material has the maximum volume and also has the correct normal vector. See the [[#Volume Screening|volume screen method]] for an alternate way to deal with common problems at edge nodes.
This method is selected by [[Multimaterial MPM#Multimaterial Mode Input Commands|setting <tt>(normals)</tt>]] to <tt>maxvol</tt> (or numerically to 1). Experience shows this method is less helpful than the average or maximum gradient methods and therefore not recommended.  


This method is selected by [[Multimaterial MPM#Multimaterial Mode Input Commands|setting <tt>(normals)</tt>]] to <tt>maxvol</tt> (or numerically to 1).
=== Specified Normal ===


=== Specified Normal ===
The ultimate accuracy of normals is to specifying the normal in the input file using known values.<ref name="Nairn"/> This approach, however, only works if the normals can be determined prior to the analysis and if those normals remain the same throughout the analysis.  In other words, this option works for problems with a single contact plane such as a straight rigid plane contacting an object.


The ultimate accuracy of normals is to specifying the normal in the input file using known values.<ref name="Nairn"/> This approach, however, only works if the normals can be determined prior to the analysis and if those normals remain the same throughout the analysis. The only current option is for problems with a single normal for all contact situation. For such problems, you can use the [[Multimaterial MPM#Multimaterial Mode Input Commands|<tt>(normals)</tt> setting]] of <tt>specify</tt> (or numerically to 4) and then provide the azimuth and polar angles for the normal vector. This option is typically for problems with a single contact plane such as a straight rigid plane contacting an object.
You can use a specified normal vector by [[Multimaterial MPM#Multimaterial Mode Input Commands|<tt>(normals)</tt> setting]] of <tt>specify</tt> (or numerically to 4) and then providing the azimuth and polar angles for the normal vector.


=== Rigid Material Bias Option ===
=== Rigid Material Bias Option ===
Line 63: Line 64:
When an MPM simulation is using [[Rigid Material#Rigid Contact Material|rigid contact materials]], the normals from the rigid material may be more reliable (especially if those particles are stationary) than normals from the non-rigid materials. The [[Multimaterial MPM#Multimaterial Mode Input Commands|<tt>(rigidBias)</tt> parameter]] can be used to exploit this observation. Its setting says that the normal is given by the volume gradient of the rigid material unless the volume gradient calculated by current [[Multimaterial MPM#Multimaterial Mode Input Commands|<tt>(normals)</tt> setting]] is this factor larger. Values around 100 will almost always use the rigid material. If the value is too large, however, an extremely small and inaccurate normal from the rigid material might lead to errors.
When an MPM simulation is using [[Rigid Material#Rigid Contact Material|rigid contact materials]], the normals from the rigid material may be more reliable (especially if those particles are stationary) than normals from the non-rigid materials. The [[Multimaterial MPM#Multimaterial Mode Input Commands|<tt>(rigidBias)</tt> parameter]] can be used to exploit this observation. Its setting says that the normal is given by the volume gradient of the rigid material unless the volume gradient calculated by current [[Multimaterial MPM#Multimaterial Mode Input Commands|<tt>(normals)</tt> setting]] is this factor larger. Values around 100 will almost always use the rigid material. If the value is too large, however, an extremely small and inaccurate normal from the rigid material might lead to errors.


The rigid bias option is only active when the [[Multimaterial MPM#Multimaterial Mode Input Commands|<tt>(normals)</tt> setting]] is <tt>maxgrad</tt> or <tt>avggrad</tt>. Is default value is 1.0 or no bias for the rigid material's volume gradient.
The rigid bias option is only available when the [[Multimaterial MPM#Multimaterial Mode Input Commands|<tt>(normals)</tt> setting]] is <tt>logreg</tt>, <tt>linreg</tt>, <tt>avggrad</tt>, or <tt>maxgrad</tt>. Its default value is 1.0 or no bias for the rigid material's volume gradient.


== Explicit Crack Normal Vector ==
== Explicit Crack Normal Vector ==
Line 69: Line 70:
[[File:CrackNormals.jpg|right]]
[[File:CrackNormals.jpg|right]]


Because [[Defining Cracks|explicit cracks]] are defined by connections of massless particles, those connections can be used to find contact normals. For example, the figure on the right shows a 2D crack and each crack segment has a normal vector pointing from below to above the crack. When MPM with explicit cracks (''i.e''., CRAMP<ref name='CRAMP'>J. A. Nairn, "Material Point Method Calculations with Explicit Cracks," <i>Computer Modeling in Engineering &amp; Sciences</i>, <b>4</b>, 649-664 (2003). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/MPMCracks.pdf See PDF])</ref>) extrapolates particle information to the grid, it determines which crack velocity field to use by checking if a line from the particle to the node crosses a crack. If the line crosses a crack, the normal for the crossed segment is also extrapolated to the grid. When needed, all nodes near cracks will have multiple velocity fields and will have normal vectors for use in contact calculations.
Because [[Defining Cracks|explicit cracks]] are defined by connections of massless particles, those connections can be used to find contact normals. For example, the figure on the right shows a 2D crack and each crack segment has a normal vector pointing from below to above the crack. When MPM with explicit cracks (''i.e''., CRAMP<ref name='CRAMP'/>) extrapolates particle information to the grid, it determines which crack velocity field to used by checking if a line from the particle to the node crosses a crack. If the line crosses a crack, the normal for the crossed segment is also extrapolated to the grid. When needed, all nodes near cracks will have multiple velocity fields and will have normal vectors for use in contact calculations.


Because finding normals for explicit crack is easier than for multimaterial methods, none of the methods described [[#Multimaterial Normal Vector Options|above]] for multimaterial mode contact are needed. Instead, cracks always use the normals extrapolated from the crack's geometrical definition.
Because finding normals for explicit crack is easier than for multimaterial methods, none of the methods described [[#Multimaterial Normal Vector Options|above]] for multimaterial mode contact are needed. Instead, cracks always use the normals extrapolated from the crack's geometrical definition.


== References ==
== References ==
<references/>
 
<references>
<ref name="logreg">J. A. Nairn, C. C. Hammerquist, and G. Smith, "New material point method contact algorithms for improved accuracy, large-deformation problems, and proper null-space filtering," ''Computer Methods in Applied Mechanics and Engineering'', '''362''', 112859 (2020). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/MPMContactRevisited.pdf See PDF])</ref>
 
<ref name="bard">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," <i>Computer Modeling in Engineering &amp; Sciences</i>, <b>2</b>, 509-522 (2001).</ref>
 
<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>
 
<ref name='CRAMP'>J. A. Nairn, "Material Point Method Calculations with Explicit Cracks," <i>Computer Modeling in Engineering &amp; Sciences</i>, <b>4</b>, 649-664 (2003). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/MPMCracks.pdf See PDF])</ref>
 
</references>

Latest revision as of 11:32, 22 January 2021

Both multimaterial mode MPM and explicit cracks need to calculate surface normals. These normals are a crucial step in accurate contact physics calculations.

Introduction

NormalDef.jpg

The figure shows a surface between two materials (a and b) or between two sides of a crack (above and below) or a contacting interface. The arrow shows a vector normal to the surface oriented from side a to side b. Finding this normal accurately is a key component of implementing both multimaterial mode contact and crack contact. First, normals are needed to find the component of the velocity in the approaching direction and the separation in the opening direction, both of which are used to detect contact. Second, the normals are needed to implement contact mechanics such as to model contact laws or imperfect interfaces.

Practical experience using multimaterial mode MPM simulations has revealed that accuracy of results is very sensitive to the method used to find the normals. In fact, when a multimaterial mode simulation has numerical issues, the causes of those issues are almost always connected to problems in finding surface normals. See below for the various options in multimaterial mode MPM for finding normals.

Simulations that use explicit cracks, have far fewer issues with normals. The normals are still crucial, but because the crack geometry is tracked, the crack normals are more easily calculated. See below for some details on crack surface normals.

Multimaterial Normal Vector Options

NairnMPM has implemented several methods for finding normals in multimaterial mode contact. The regression methods[1] are the state-or-the-art in MPM contact and the default method in NairnMPM. Other methods are available for special applications or for comparisons.

Regression Methods

The preferred method to find normals is to use logistic regression methods[1] (a linear regression method is also implemented, but not as accurate as the logistic regression option). These methods uses artificial intelligence methods know as a support vector machine to calculate normal between two surfaces and to find their separation. It appears to solve many issues in MPM contact and to also provides a much better calculation of contact separation.

Regression methods are selected by setting (normals) to logreg (or numerically to 6) or linreg (or numerically to 5). The logreg option is preferred. The only drawback of logreg is that it requires solution to a numerical problem to find the normal at each contact node. In many problems, the number of contact nodes will be much less then number of nodes in the grid and thus the extra calculations are not a burden. A possible option for faster simulations with lots of contact is to switch to linreg. Although the theory is different than logreg, mathematically it is equivalent to using logreg but stopping the numerical solution after one interation. It retains advantages of regressions methods,[1] but has reduced accuracy in normal calculations.

Each Material's Gradient

When multimaterial mode MPM was initially developed, contact was handled separately for each material's velocity field and the normal vector was found from that material's mass gradient.[2] The alorithm is straightforward and is extended to more than two materials in contact simply for iterating for each material. Experience shows it suffers in accuracy. For one thing, the normals for the two materials will generally not be in equal and opposite directions. When that occurs, the contact algorithm does not conserve momentum.

This method is selected by setting (normals) to owngrad (or numerically to 3). This option is available in NairnMPM for comparison to improved methods and not recommended for general use.

Average Gradient

Avggrad.png

Prior to regression methods, this method (and other improvements below) was the best option; it is described in more detail in Nairn (2013).[3]. The first obvious improvement to conserve momentum is to find the average volume gradient between the two materials and use that vector to define the normal for both sides of the surface. If the multimaterial mode has more than two materials, the average is found between one material and the remaining materials lumped into a virtual material. Note that whenever averaging or comparing gradients, it is important to use volume gradients instead of mass gradients. This minor change is needed to correctly model contact between two materials with different densities.

An average gradient calculation can also resolve some complications at edge nodes. The figure on the right shows two materials in contact at the edge of an object. The volume gradients for the red and black materials on the multimaterial node marked in blue are shown by the vectors. Both of these normals are inaccurate for the contacting surfaces, but averaging the normals (with correct signs), gives a normal vector in the horizontal direction that exactly matches the contact surface normal. An average gradient resolves this one edge node issue, but not all (see the volume screen method and example). The preferred regression methods appear to handle all edge issues well, which is a motivation for using them.

This method is selected by setting (normals) to avggrad (or numerically to 2).

Maximum Gradient

Maxgrad.png

This method looks at the volume gradient's for the two materials and choses the vector that has the largest magnitude (and then normalizes to get a unit vector). The logic is that volume gradient is zero within an object and only non-zero around the edge. Thus the material that is closer the edge might have more accurate information about the normal and it will have the larger volume gradient. Perhaps this material's normal should be used in preference to the other material's normal. If the multimaterial mode has more than two materials, the maximum gradient is found by comparing the one material to the remaining materials lumped into a virtual material.

A maximum gradient calculation resolves some edge node issues. The figure on the left shows two materials in contact near an edge notch in an object. The volume gradients for the red and black materials on the multimaterial node marked in blue are shown by the vectors. Now the gradient from the red material is correct for the surface normal while the gradient for the black material is not. An average would be better, but still inaccurate. For this situation, the material with the maximum gradient will be the red material (because it has more particles). Therefore this method will get the correct normal. A maximum gradient resolves this one edge node issue, but not all. The preferred regression methods appear to handle all edge issues well, which is a motivation for using them.

This method is selected by setting (normals) to maxgrad (or numerically to 0).

Maximum Volume

This option looks at the total volume for the two materials and choses the vector using the volume gradient of the material with the larger volume (and then normalizes to get a unit vector). The logic is that multimaterial nodes may have very different volumes between the two materials and one may have very small volume. Because a small volume material may have very inaccurate volume gradient, it is preferable to use the one with more volume. If the multimaterial mode has more than two materials, the maximum volume is found by comparing the one material to the volume of all other materials lumped into a virtual material.

This method is selected by setting (normals) to maxvol (or numerically to 1). Experience shows this method is less helpful than the average or maximum gradient methods and therefore not recommended.

Specified Normal

The ultimate accuracy of normals is to specifying the normal in the input file using known values.[3] This approach, however, only works if the normals can be determined prior to the analysis and if those normals remain the same throughout the analysis. In other words, this option works for problems with a single contact plane such as a straight rigid plane contacting an object.

You can use a specified normal vector by (normals) setting of specify (or numerically to 4) and then providing the azimuth and polar angles for the normal vector.

Rigid Material Bias Option

When an MPM simulation is using rigid contact materials, the normals from the rigid material may be more reliable (especially if those particles are stationary) than normals from the non-rigid materials. The (rigidBias) parameter can be used to exploit this observation. Its setting says that the normal is given by the volume gradient of the rigid material unless the volume gradient calculated by current (normals) setting is this factor larger. Values around 100 will almost always use the rigid material. If the value is too large, however, an extremely small and inaccurate normal from the rigid material might lead to errors.

The rigid bias option is only available when the (normals) setting is logreg, linreg, avggrad, or maxgrad. Its default value is 1.0 or no bias for the rigid material's volume gradient.

Explicit Crack Normal Vector

CrackNormals.jpg

Because explicit cracks are defined by connections of massless particles, those connections can be used to find contact normals. For example, the figure on the right shows a 2D crack and each crack segment has a normal vector pointing from below to above the crack. When MPM with explicit cracks (i.e., CRAMP[4]) extrapolates particle information to the grid, it determines which crack velocity field to used by checking if a line from the particle to the node crosses a crack. If the line crosses a crack, the normal for the crossed segment is also extrapolated to the grid. When needed, all nodes near cracks will have multiple velocity fields and will have normal vectors for use in contact calculations.

Because finding normals for explicit crack is easier than for multimaterial methods, none of the methods described above for multimaterial mode contact are needed. Instead, cracks always use the normals extrapolated from the crack's geometrical definition.

References

  1. 1.0 1.1 1.2 J. A. Nairn, C. C. Hammerquist, and G. Smith, "New material point method contact algorithms for improved accuracy, large-deformation problems, and proper null-space filtering," Computer Methods in Applied Mechanics and Engineering, 362, 112859 (2020). (See PDF)
  2. 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).
  3. 3.0 3.1 J.A. Nairn, "Modeling Imperfect Interfaces in the Material Point Method using Multimaterial Methods," Computer Modeling in Eng. & Sci., 92, 271-299 (2013).
  4. J. A. Nairn, "Material Point Method Calculations with Explicit Cracks," Computer Modeling in Engineering & Sciences, 4, 649-664 (2003). (See PDF)