Difference between revisions of "Surface Normals"
Line 17: | Line 17: | ||
=== Regression Methods === | === Regression Methods === | ||
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 | 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>logref</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,<tt>logreg</tt> but has reduces accuracy in normal calculations. | Regression methods are selected by [[Multimaterial MPM#Multimaterial Mode Input Commands|setting <tt>(normals)</tt>]] to <tt>logref</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,<tt>logreg</tt> but has reduces accuracy in normal calculations. |
Revision as of 14:02, 2 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
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 logref (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,logreg but has reduces 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 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.
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
This method (and other improvements below) are 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 will not correct them all; see the volume screen method for an alternate way to deal with common problems at edge nodes.
This method is selected by setting (normals) to avggrad (or numerically to 2).
Maximum Gradient
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 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 screen method for an alternate way to deal with common problems at edge nodes.
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.
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 screen method for an alternate way to deal with common problems at edge nodes.
This method is selected by setting (normals) to maxvol (or numerically to 1).
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 maxgrad, avggrad, linreg, or logref. Is default value is 1.0 or no bias for the rigid material's volume gradient.
Explicit Crack Normal Vector
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 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 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.0 1.1 J. A. Nairn, C. C. Hammerquist, and G. Smith, "New MPM contact methods for improved accuracy, large-deformation problems, and proper null-space filtering," Computer Methods in Applied Mechanics and Engineering, in press (2019).
- ↑ 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.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).
- ↑ J. A. Nairn, "Material Point Method Calculations with Explicit Cracks," Computer Modeling in Engineering & Sciences, 4, 649-664 (2003). (See PDF)