Difference between revisions of "Multimaterial MPM"

From OSUPDOCS
Jump to navigation Jump to search
 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
Multimaterial mode is an advanced MPM model that allows new options for modeling contact and material interfaces.
Multimaterial mode is an advanced MPM option that allows for modeling contact and material interfaces.
__TOC__
__TOC__
== Multimaterial Mode Concepts ==
== Multimaterial Mode Concepts ==
Line 8: Line 8:
:The first step is to [[Detecting Contact|decide if the materials at the node are in contact]]. This decision has to be made from extrapolated velocity, displacement (or position), and mass (or volume) information.
:The first step is to [[Detecting Contact|decide if the materials at the node are in contact]]. This decision has to be made from extrapolated velocity, displacement (or position), and mass (or volume) information.
;Adjust Nodal Momenta or Forces
;Adjust Nodal Momenta or Forces
: If a node is not in contact, no changes are needed. But, for nodes in contact, the nodal momenta and/or forces for each velocity field have to be adjusted to reflect the contact mechanics. Currently, [[NairnMPM]] can use multimaterial mode to model [[Friction|frictional contact]] or [[Imperfect Interfaces|imperfect interfaces]].
: If a node is not in contact, no changes are needed. But, for nodes in contact, the nodal momenta and/or forces for each velocity field have to be adjusted to reflect the contact mechanics. Currently, [[NairnMPM]] can use multimaterial mode to model [[Friction|contact properties]] or [[Imperfect Interfaces|imperfect interfaces]].
; Evaluation of Surface Normals
; Evaluation of Surface Normals
:Both the above tasks need to know the normal vector to the contacting surface. The [[Surface Normals|evaluation of these normals]] is crucial component of multimaterial mode MPM.
:Both the above tasks need to know the normal vector to the contacting surface. The [[Surface Normals|evaluation of these normals]] is crucial component of multimaterial mode MPM.


The general principles of multimaterial MPM are described in Bardenhagen ''et al.'' (2001).<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> Some improved options for detecting contact by displacements and for finding normals are unique to [[NairnMPM]] and are described in Lemiale ''et al.'' (2010)<ref name="Lemiale">V. Lemiale, A. Hurmane, and J. A. Nairn, "Material Point Method Simulation of Equal Channel Angular Pressing Involving Large Plastic Strain and Contact Through Sharp Corners," <i>Computer Modeling in Eng. &amp; Sci.</i>, <b>70(1)</b>, 41-66, (2010).</ref> and 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 latter reference also describes use of multimaterial mode MPM to model [[Imperfect Interfaces|imperfect interfaces]] between materials.<ref name="Nairn"/>
The general principles of multimaterial MPM are described in Bardenhagen ''et al.'' (2001).<ref name="bard"/> Some improved options for detecting contact by displacements and for finding normals are unique to [[NairnMPM]] and are described in Lemiale ''et al.'' (2010)<ref name="Lemiale"/> and Nairn (2013).<ref name="Nairn"/> The latter reference also describes use of multimaterial mode MPM to model [[Imperfect Interfaces|imperfect interfaces]] between materials.<ref name="Nairn"/> Extension of simple Coulomb friction to general contact laws is described in Nairn ''et al.'' (2018).<ref name="gencontact"/>. Finally the state-of-the-art contact methods, and the default option for [[NairnMPM]] and [[OSParticulas]] is logistic regression and it is described in Nairn ''et al.'' (2019).<ref name="logreg"/>


==== More than Two Materials ====
==== More than Two Materials ====


Multimaterial mode is typically derived by assuming only two materials interact at each munltimaterial node. It therefore works best (''i.e.'', has most rigorous physics) when the simulation has only two materials or when no nodes ever see velocity fields from more than two materials. [[NairnMPM]] has implemented a rational algorithm for continuing when three or more materials intersect at a single node. Such simulations, however, may not be accurate or may display problems. There is simply not enough information in the nodal velocity fields to find the [[Surface Normals|surface normals]] needed for accurate interactions between three or more materials.
Multimaterial mode is typically derived by assuming only two materials interact at each munltimaterial node. It therefore works best (''i.e.'', has most rigorous physics) when the simulation has only two materials or when no nodes ever see velocity fields from more than two materials. [[NairnMPM]] has implemented a rational algorithm for continuing when three or more materials intersect at a single node. Such simulations, however, may not be accurate or may display problems. There is simply not enough information in the nodal velocity fields to find the [[Surface Normals|surface normals]] needed for accurate interactions between three or more materials. See Nairn ''et al.'' (2019).<ref name="logreg"/> for more details and the rational methods to handle more than three materials in contact.


== Multimaterial Mode Input Commands ==
== Multimaterial Mode Input Commands ==
Line 37: Line 37:
* <tt>(res1)</tt> and <tt>(res2)</tt> - these options reserved for future use, but they must be specified for parameter alignment in the <tt>MultiMaterialMode</tt> script command. To make sure old versions are using the currently recommended methods, the unused parameters should be set to <tt>(res1)=0</tt> and <tt>(res2)=1</tt>.
* <tt>(res1)</tt> and <tt>(res2)</tt> - these options reserved for future use, but they must be specified for parameter alignment in the <tt>MultiMaterialMode</tt> script command. To make sure old versions are using the currently recommended methods, the unused parameters should be set to <tt>(res1)=0</tt> and <tt>(res2)=1</tt>.
* <tt>(normals)</tt> - the method for calculation of [[Surface Normals#Multimaterial Normal Vector Options|normal vectors]]. The options are as follows (<tt>XML</tt> files must use numeric value):
* <tt>(normals)</tt> - the method for calculation of [[Surface Normals#Multimaterial Normal Vector Options|normal vectors]]. The options are as follows (<tt>XML</tt> files must use numeric value):
** <tt>logreg</tt> (or 6) - use logistic regression. This is state-of-the-art, default option.<ref name="logreg"/> Other methods should only be for unusual conditions (''e.g.'' when you can <tt>specify</tt> the normal) or for calculation comparisons.
** <tt>linreg</tt> (or 5) - use linear regression.
** <tt>avggrad</tt> (or 2) - the normal is found from the volume-weighted mean volume gradient. When contact is all non-rigid materials, it averages the gradient of one material with the net gradient of all other materials. When a rigid material is involved, it averages each material with the one rigid material (<tt>avggrad</tt> is the default normals option).
** <tt>specify</tt> (or 4) - use a single, specified normal defined by the provided azimuth and polar angles. The specified normal is used for all contact calculations and it should point from the lower-numbered material into the higher-numbered material. The material number is the order the materials appear in the output file. For contact with rigid materials, the normal vector should point from the non-rigid material into the rigid material.
** <tt>maxgrad</tt> (or 0) - the normal is found from the one material at the node that has the largest magnitude of its volume gradient.
** <tt>maxgrad</tt> (or 0) - the normal is found from the one material at the node that has the largest magnitude of its volume gradient.
** <tt>maxvol</tt> (or 1) - the normal is found from the one material at the node that has the largest magnitude of its volume.
** <tt>maxvol</tt> (or 1) - the normal is found from the one material at the node that has the largest magnitude of its volume.
** <tt>avggrad</tt> (or 2) - the normal is found from the volume-weighted mean volume gradient. When contact is all non-rigid materials, it averages the gradient of one material with the net gradient of all other materials. When a rigid material is involved, it averages each material with the one rigid material (<tt>avggrad</tt> is the default normals option).
** <tt>owngrad</tt> (or 3) - each material uses its own normal. In contact or interface calculations, the calculations are done separately for the two sides for the surface. This approach is the original one used in multimaterial contact,<ref name="bard"/> but no longer recommended. It is available for research comparisons.
** <tt>owngrad</tt> (or 3) - each material uses its own normal. In contact or interface calculations, the calculations are done separately for the two sides for the surface. This approach is the original one used in multimaterial contact,<ref name="bard"/> but no longer recommended. It is available for research comparisons.
** <tt>specify</tt> (or 4) - use a single, specified normal defined by the provided azimuth and polar angles. The specified normal is used for all contact calculations and it should point from the lower-numbered material into the higher-numbered material. The material number is the order the materials appear in the output file. For contact with rigid materials, the normal vector should point from the non-rigid material into the rigid material.
** <tt>linreg</tt> (or 5) - use linear regression ([[OSParticulas]] only).
** <tt>logreg</tt> (or 6) - use logistic regression ([[OSParticulas]] only and is the future for multimaterial MPM).
* <tt>(rigidBiasOrAzimuth)</tt> or <tt>(rigidBias)</tt> - when <tt>(normals)</tt> is <tt>maxgrad</tt> or <tt>avggrad</tt>, this parameter means to trust [[Surface Normals|normals]] calculated from rigid materials more than those from non-rigid materials. The entered number means to use the rigid material's volume gradient unless the normal by the <tt>maxgrad</tt> or <tt>avggrad</tt> method is the entered factor larger in magnitude. For <tt>linreg</tt> and <tt>logreg</tt>, a value &ge;10 means to use rigid normal with contacting with rigid materials; otherwise use regression methods to get the normal. See help on [[Surface Normals#Rigid Material Bias Option|calculating normals]] for more details (default is 1).
* <tt>(rigidBiasOrAzimuth)</tt> or <tt>(rigidBias)</tt> - when <tt>(normals)</tt> is <tt>maxgrad</tt> or <tt>avggrad</tt>, this parameter means to trust [[Surface Normals|normals]] calculated from rigid materials more than those from non-rigid materials. The entered number means to use the rigid material's volume gradient unless the normal by the <tt>maxgrad</tt> or <tt>avggrad</tt> method is the entered factor larger in magnitude. For <tt>linreg</tt> and <tt>logreg</tt>, a value &ge;10 means to use rigid normal with contacting with rigid materials; otherwise use regression methods to get the normal. See help on [[Surface Normals#Rigid Material Bias Option|calculating normals]] for more details (default is 1).
* <tt>(azimuth)</tt> (or <tt>(rigidBiasOrAzimuth)</tt>) and <tt>(polar)</tt> - when <tt>(normals)</tt> is <tt>specify</tt>, these two parameters set the azimuth angle (or &phi;) and polar angle (&theta;) in degrees for the specified normal vector. The resulting normal is (cos &phi; sin &theta;, sin &phi; sin &theta;, cos &theta;). For 2D calculations, the <tt>(polar)</tt> setting is ignored and the 2D normal vector is (cos &phi;, sin &phi;). The default values are &phi;=0 and &theta;=0 for 3D, which is normal along the z axis, and &phi;=0 for 2D, which is normal along the x axis.
* <tt>(azimuth)</tt> (or <tt>(rigidBiasOrAzimuth)</tt>) and <tt>(polar)</tt> - when <tt>(normals)</tt> is <tt>specify</tt>, these two parameters set the azimuth angle (or &phi;) and polar angle (&theta;) in degrees for the specified normal vector. The resulting normal is (cos &phi; sin &theta;, sin &phi; sin &theta;, cos &theta;). For 2D calculations, the <tt>(polar)</tt> setting is ignored and the 2D normal vector is (cos &phi;, sin &phi;). The default values are &phi;=0 and &theta;=0 for 3D, which is normal along the z axis, and &phi;=0 for 2D, which is normal along the x axis.
* <tt>(cutoff)</tt> - this optional parameter sets the displacement cutoff (relative to cell size) used to [[Detecting Contact|detect multimaterial contact]]. The [[Detecting Contact#ContactPosition Command|<tt>ContactPosition</tt> command]] should be omitted when modeling internal material interfaces that start out initially in contact. It must be included for problems where contact surfaces start out separated but move into contact during the simulation. It is not used for <tt>linreg</tt> or <tt>logreg</tt> (unless they have rigid contact and have set <tt>(rigidBiasOrAzimuth)</tt>&ge;10).
* <tt>(cutoff)</tt> - this optional parameter sets the displacement cutoff (relative to cell size) used to [[Detecting Contact|detect multimaterial contact]]. The [[Detecting Contact#Selecting ContactPosition Options|<tt>ContactPosition</tt> command]] should be omitted when modeling internal material interfaces that start out initially in contact. It must be included for problems where contact surfaces start out separated but move into contact during the simulation. It is not used for <tt>linreg</tt> or <tt>logreg</tt> (unless they have rigid contact and have set <tt>(rigidBiasOrAzimuth)</tt>&ge;10).
* <tt> (commands to set default contact properties)</tt> - set default [[Friction|friction]] or [[Imperfect Interfaces|imperfect interface]] properties for multimaterial contact. Note that when more than two materials are present, you can use [[Material Models|material]] properties for [[Common Material Properties#Contact Properties|friction and interface]] to override the default settings and thereby set custom contact between any specific pair of materials.
* <tt> (commands to set default contact properties)</tt> - set default [[Friction|contact]] or [[Imperfect Interfaces|imperfect interface]] properties for multimaterial contact. Note that when more than two materials are present, you can use [[Material Models|material]] properties for [[Common Material Properties#Contact Properties|friction and interface]] to override the default settings and thereby set custom contact between any specific pair of materials.


== References ==
== References ==
<references/>
 
<references>
<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="Lemiale">V. Lemiale, A. Hurmane, and J. A. Nairn, "Material Point Method Simulation of Equal Channel Angular Pressing Involving Large Plastic Strain and Contact Through Sharp Corners," <i>Computer Modeling in Eng. &amp; Sci.</i>, <b>70(1)</b>, 41-66, (2010).</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="gencontact">J. A. Nairn, S. G. Bardenhagen, and G. S. Smith, "Generalized contact and improved frictional heating in the material point method.=," ''Computational Particle Mechanics'', '''5''', 285–296 (2018)</ref>
 
<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>
 
 
</references>

Latest revision as of 10:31, 22 January 2021

Multimaterial mode is an advanced MPM option that allows for modeling contact and material interfaces.

Multimaterial Mode Concepts

In multimaterial MPM, particles of each material type extrapolate to separate velocity fields on the grid (although material can share velocity fields when appropriate). Nodes with a single material and therefore only one velocity field proceed by normal MPM methods. Nodes with velocity fields from more than one material might be in contact. If they are in contact, the nodal momenta are changed as determined by contact physics. The various contact options implemented in multimaterial algorithms determine the physcial phenomna that can be modeled. The key numerical tasks in multimaterial mode MPM are:

Detection of Contact
The first step is to decide if the materials at the node are in contact. This decision has to be made from extrapolated velocity, displacement (or position), and mass (or volume) information.
Adjust Nodal Momenta or Forces
If a node is not in contact, no changes are needed. But, for nodes in contact, the nodal momenta and/or forces for each velocity field have to be adjusted to reflect the contact mechanics. Currently, NairnMPM can use multimaterial mode to model contact properties or imperfect interfaces.
Evaluation of Surface Normals
Both the above tasks need to know the normal vector to the contacting surface. The evaluation of these normals is crucial component of multimaterial mode MPM.

The general principles of multimaterial MPM are described in Bardenhagen et al. (2001).[1] Some improved options for detecting contact by displacements and for finding normals are unique to NairnMPM and are described in Lemiale et al. (2010)[2] and Nairn (2013).[3] The latter reference also describes use of multimaterial mode MPM to model imperfect interfaces between materials.[3] Extension of simple Coulomb friction to general contact laws is described in Nairn et al. (2018).[4]. Finally the state-of-the-art contact methods, and the default option for NairnMPM and OSParticulas is logistic regression and it is described in Nairn et al. (2019).[5]

More than Two Materials

Multimaterial mode is typically derived by assuming only two materials interact at each munltimaterial node. It therefore works best (i.e., has most rigorous physics) when the simulation has only two materials or when no nodes ever see velocity fields from more than two materials. NairnMPM has implemented a rational algorithm for continuing when three or more materials intersect at a single node. Such simulations, however, may not be accurate or may display problems. There is simply not enough information in the nodal velocity fields to find the surface normals needed for accurate interactions between three or more materials. See Nairn et al. (2019).[5] for more details and the rational methods to handle more than three materials in contact.

Multimaterial Mode Input Commands

In scripted input files, multimaterial mode MPM is activated and customized with the following commands:

MultimaterialMode (res1),(res2),(normals),<(rigidBiasOrAzimuth)>,<(polar)>
ContactPosition (cutoff)
(commands to set default contact properties)

In XML files, multimaterial mode MPM is activated with the following block with the <MPMHeader> element:

<MultiMaterialMode Normals='(normals)' RigidBias='(rigidBias)' Azimuth='(azimuth)' Polar='(polar)'>
  <ContactPosition>(cutoff)</ContactPosition>
  (commands to set default contact properties)
</MultiMaterialMode>

The settings are:

  • (res1) and (res2) - these options reserved for future use, but they must be specified for parameter alignment in the MultiMaterialMode script command. To make sure old versions are using the currently recommended methods, the unused parameters should be set to (res1)=0 and (res2)=1.
  • (normals) - the method for calculation of normal vectors. The options are as follows (XML files must use numeric value):
    • logreg (or 6) - use logistic regression. This is state-of-the-art, default option.[5] Other methods should only be for unusual conditions (e.g. when you can specify the normal) or for calculation comparisons.
    • linreg (or 5) - use linear regression.
    • avggrad (or 2) - the normal is found from the volume-weighted mean volume gradient. When contact is all non-rigid materials, it averages the gradient of one material with the net gradient of all other materials. When a rigid material is involved, it averages each material with the one rigid material (avggrad is the default normals option).
    • specify (or 4) - use a single, specified normal defined by the provided azimuth and polar angles. The specified normal is used for all contact calculations and it should point from the lower-numbered material into the higher-numbered material. The material number is the order the materials appear in the output file. For contact with rigid materials, the normal vector should point from the non-rigid material into the rigid material.
    • maxgrad (or 0) - the normal is found from the one material at the node that has the largest magnitude of its volume gradient.
    • maxvol (or 1) - the normal is found from the one material at the node that has the largest magnitude of its volume.
    • owngrad (or 3) - each material uses its own normal. In contact or interface calculations, the calculations are done separately for the two sides for the surface. This approach is the original one used in multimaterial contact,[1] but no longer recommended. It is available for research comparisons.
  • (rigidBiasOrAzimuth) or (rigidBias) - when (normals) is maxgrad or avggrad, this parameter means to trust normals calculated from rigid materials more than those from non-rigid materials. The entered number means to use the rigid material's volume gradient unless the normal by the maxgrad or avggrad method is the entered factor larger in magnitude. For linreg and logreg, a value ≥10 means to use rigid normal with contacting with rigid materials; otherwise use regression methods to get the normal. See help on calculating normals for more details (default is 1).
  • (azimuth) (or (rigidBiasOrAzimuth)) and (polar) - when (normals) is specify, these two parameters set the azimuth angle (or φ) and polar angle (θ) in degrees for the specified normal vector. The resulting normal is (cos φ sin θ, sin φ sin θ, cos θ). For 2D calculations, the (polar) setting is ignored and the 2D normal vector is (cos φ, sin φ). The default values are φ=0 and θ=0 for 3D, which is normal along the z axis, and φ=0 for 2D, which is normal along the x axis.
  • (cutoff) - this optional parameter sets the displacement cutoff (relative to cell size) used to detect multimaterial contact. The ContactPosition command should be omitted when modeling internal material interfaces that start out initially in contact. It must be included for problems where contact surfaces start out separated but move into contact during the simulation. It is not used for linreg or logreg (unless they have rigid contact and have set (rigidBiasOrAzimuth)≥10).
  • (commands to set default contact properties) - set default contact or imperfect interface properties for multimaterial contact. Note that when more than two materials are present, you can use material properties for friction and interface to override the default settings and thereby set custom contact between any specific pair of materials.

References

  1. 1.0 1.1 S. G. Bardenhagen, J. E. Guilkey, K. M. Roessig, J. U. Brackbill, W. M. Witzel, and J. C. Foster, "An Improved Contact Algorithm for the Material Point Method and Application to Stress Propagation in Granular Material," Computer Modeling in Engineering & Sciences, 2, 509-522 (2001).
  2. V. Lemiale, A. Hurmane, and J. A. Nairn, "Material Point Method Simulation of Equal Channel Angular Pressing Involving Large Plastic Strain and Contact Through Sharp Corners," Computer Modeling in Eng. & Sci., 70(1), 41-66, (2010).
  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, S. G. Bardenhagen, and G. S. Smith, "Generalized contact and improved frictional heating in the material point method.=," Computational Particle Mechanics, 5, 285–296 (2018)
  5. 5.0 5.1 5.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)