Difference between revisions of "Defining Cracks"

From OSUPDOCS
Jump to navigation Jump to search
 
(88 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This section explains how to add explicit cracks to an MPM simulation.
This section explains how to add explicit cracks to both 2D and 3D MPM simulations.


== Introduction ==
== Introduction ==


The extension of MPM to model explicit cracks is called CRAMP for '''CRA'''cks in the '''M'''aterial '''P'''oint Method. The commands is this section are used to define the explicit cracks (and there can be any number of them). In addition, whenever a simulation has cracks you can use [[Crack Settings|various crack settings commands]] to customize the features of the crack physics and set various [[Common Material Properties|material fracture properties]] to control crack propagation.
The extension of MPM to model explicit cracks is called CRAMP for '''CRA'''cks in the '''M'''aterial '''P'''oint Method. The commands is this section are used to define the explicit cracks (and there can be any number of them). In addition, whenever a simulation has cracks you can use [[Crack Settings|crack settings commands]] to customize the features of the crack physics, set various [[Common Material Properties|material fracture properties]] to control crack propagation, or add [[Traction Laws|traction laws]] to model cohesive zones.


The development of CRAMP is described first in a paper by Nairn (2003)<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> (and its development was done using [[NairnMPM]]). Some other papers discuss calculation of J integral and stress intensity factor,<ref name="GuoJ">Y. Guo and J. A. Nairn, "Calculation of J-Integral and Stress Intensity Factors using the Material Point Method," <i>Computer Modeling in Engineering &amp; Sciences</i>, <b>6</b>, 295-308 (2004). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/MPMTwoDJ.pdf See PDF])</ref>, propose energy balance propagation,<ref name="EB">J. A. Nairn, "Simulation of Crack Growth in Ductile Materials,"; <i>Engr. Fract. Mech.</i>, <b>72</b>, 961-979 (2005). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/Dugdale.pdf See PDF])</ref> handle cracks in 3D<ref name="Guo3D">Y. Guo and J. A. Nairn, "Three-Dimensional Dynamic Fracture Analysis Using the Material Point Method," <i>Computer Modeling in Eng. &amp; Sci.</i>, <b>16</b>, 141-156 (2006). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/guo3D.pdf See PDF])</ref> (although not currently available in [[NairnMPM]]), use cracks to model imperfect interfaces,<ref name="IIC">J. A. Nairn, "Numerical Implementation of Imperfect Interfaces, <i>Computational Materials Science</i>, <b>40</b>, 525-536 (2007). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/Interface.pdf See PDF])</ref>, and use traction laws with cracks.<ref name="RCurve">J. A. Nairn, "Analytical and Numerical Modeling of R Curves for Cracks with Bridging Zones," <i>Int. J. Fracture</i>, <b>155</b>, 167-181 (2009). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/JBridging.pdf See PDF])</ref> Some applications of using cracks in MPM include wood fracture,<ref name="wood">J. A. Nairn, "Material Point Method Simulations of Transverse Fracture in Wood with Realistic Morphologies," <i>Holzforschung</i>,  <b>61</b>, 375-381 (2007). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/FractureSim.pdf See PDF])</ref> use of cracks to model glue bonds in oriented strand board,<ref name="OSB">J. A. Nairn and E. Le, "Numerical Modeling and Experiments on the Role of Strand-to-Strand Interface Quality on the Properties of Oriented Strand Board," <i>Proc of 9th Int. Conf. on Wood Adhesives</i>, Lake Tahoe, Neveda, USA, Sept. 28-30, 2009. ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/WoodAd2009.pdf See PDF])</ref> simulation of dynamic fracture,<ref name="BardF">S. G. Bardenhagen, J.A. Nairn, and H. Lu, "Simulation of dynamic fracture with the Material Point Method using a mixed J-integral and cohesive law approach," <i>Int. J. Fracture</i>, <b>170</b>, 49-66 (2011).</ref> and simulation of crack growth with fiber bridging.<ref name="MDF">N. Matsumoto and J.A. Nairn, "Fracture Toughness of Wood and Wood Composites During Crack Propagation," <i>Wood and Fiber Science</i>, '''44''', 121-133 (2012). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/WoodToughness.pdf See PDF])</ref>
The development of CRAMP is described first in a paper by Nairn (2003)<ref name='CRAMP'/> (and its development was done using [[NairnMPM]]). Some other papers discuss calculation of J integral and stress intensity factor,<ref name="GuoJ"/>, propose energy balance propagation,<ref name="EB"/> handle cracks in 3D<ref name="Guo3D"/>, use cracks to model imperfect interfaces,<ref name="IIC"/>, use traction laws with cracks,<ref name="RCurve"/>, and define a new approach to mixed-mode cohesive zone modeling.<ref name="mixedmode"/> Some applications of using cracks in MPM include wood fracture,<ref name="wood"/> use of cracks to model glue bonds in oriented strand board,<ref name="OSB"/> simulation of dynamic fracture,<ref name="BardF"/> simulation of crack growth with fiber bridging.<ref name="MDF"/>, and simulation of cutting.<ref name="cutting"/>


== Crack Definition Commmands ==
The remainder of this page explains how to define cracks in 2D problems only. As separate page explains how to define crack in [[3D Cracks|3D problems]].
 
== Crack Definition Commands ==


[[File:OneCrack.png|right]]
[[File:OneCrack.png|right]]


In CRAMP,<ref name="CRAMP"/> a crack is defined as series of massless particles connected by crack segments. The first particle is the "start" tip and the last particle is the "end" tip. When CRAMP is active, nodes around the crack will be divided into two velocity fields to separately model motion of particle "above" the crack and "below" the crack. You define a crack by providing the points along the crack - (x<sub>1</sub>,y<sub>1</sub>) to (x<sub>n</sub>,y<sub>n</sub>). In addition, CRAMP fully accounts for [[Detecting Contact|crack contact]], can model cracks with [[Friction|frictional contact]], can use cracks to model [[Imperfect Interfaces|imperfect interfaces]], and can insert [[Traction Laws|traction laws]] to model cohesive zones. When defining cracks, some additional commands are available to set crack contact mechanics, set crack tip materials, and insert traction laws.
In CRAMP,<ref name="CRAMP"/> a crack is defined as series of massless particles connected by crack segments. The first particle is the "start" tip and the last particle is the "end" tip. When CRAMP is active, nodes around the crack will be divided into two velocity fields to separately model motion of particle "above" the crack and "below" the crack. You define a crack by providing the points along the crack - (x<sub>1</sub>,y<sub>1</sub>) to (x<sub>n</sub>,y<sub>n</sub>). In addition, CRAMP fully accounts for [[Detecting Contact|crack contact]], can use a [[Contact Laws|contact law]] to model cracks with [[Friction|frictional contact]] or an [[Imperfect Interfaces|imperfect interface]], and can insert [[Traction Laws|traction laws]] to model cohesive zones. When defining cracks, some additional commands are available to set crack contact mechanics, set crack tip materials, and insert traction laws.


In scripted files, a single crack is started with a <tt>NewCrack</tt> command, which is followed by one or more of the other commands to complete the crack definition:
In scripted files, a single crack is started with a <tt>NewCrack</tt> command, which is followed by one or more of the other commands to complete the crack definition:


  NewCrack (x1),(y1),<(mat)>,<(frict)>,<(tract)>
  NewCrack (x1),(y1),<(mat)>,<(lawID)>,<(tract)>
  GrowCrack (x2),(y2),<(mat)>
  GrowCrack (x2),(y2),<(mat)>,<(tract)>
  GrowCrackLine (x2),(y2),(segs),<(mat)>,<(tract)>
  GrowCrackLine (x2),(y2),(segs),<(mat)>,<(tract)>
  GrowCrackArc (x1),(y1),(x2),(y2),(segs),(ang1),(ang2)<(mat)>,<(tract)>
  GrowCrackArc (x1),(y1),(x2),(y2),(segs),(ang1),(ang2),<(mat)>,<(tract)>
CrackInterface (Dt),(Dntens),(Dncomp)
  CrackThickness (thick)
  CrackThickness (thick)
CustomTractionProp (traction)


In <tt>XML</tt> files, each crack is defined in a <tt>CrackList</tt> element:
In <tt>XML</tt> files, each crack is defined in a <tt><CrackList></tt> element:


  <CrackList friction='(frict)'>
  <CrackList law='(lawnum)' lawname='(lawname)' Tprop='(proplawnum)' Tpropname='(proplawname)'>
   <pt units='mm' x='(x1)' y='(x2)' tip='(mat)'/>
   <pt x='(x1)' y='(y1)' tip='(mat)'/>
   <pt x='53' y='0'/>
   <pt x='53' y='0'/>
       . . .
       . . .
Line 38: Line 40:
The commands and their functions are:
The commands and their functions are:


* [[#Starting the Crack|<tt>NewCrack</tt> command]] - this command starts a new crack (in <tt>XML</tt> files, the <tt><CrackList></tt> element starts the crack).
* [[#Starting the Crack|<tt>NewCrack</tt> command]] - this command starts a new crack (in <tt>XML</tt> files, the <tt><CrackList></tt> element and its first geometry command starts the crack).
* [[#Growing the Crack|<tt>GrowCrack</tt>, <tt>GrowCrackLine</tt>, and <tt>GrowCrackArc</tt> commands]] - these commands extend the crack (the corresponding <tt>XML</tt> commands are <tt><pt></tt>, <tt><Line></tt>, and <tt><Circle></tt>).
* [[#Growing the Crack|<tt>GrowCrack</tt>, <tt>GrowCrackLine</tt>, and <tt>GrowCrackArc</tt> commands]] - these commands extend the crack (the corresponding <tt>XML</tt> commands are <tt><pt></tt>, <tt><Line></tt>, and <tt><Circle></tt>).
* [[#Crack Contact Mechanics|<tt>CrackInterface</tt> command]] - this commands set the crack to be an imperfect interface.
* [[#Crack Thickness|<tt>CrackThickness</tt> command]] - this commands sets the crack thickness (the corresponding <tt>XML</tt> command is <tt><Thickness></tt>).
* [[#Crack Thickness|<tt>CrackThickness</tt> command]] - this commands sets the crack thickness (the corresponding <tt>XML</tt> command is <tt><Thickness></tt>).
* <tt>CustomTractionProp command</tt> - this command selects a [[Traction Laws|traction law]] to be inserted whenever this crack propagates. This command is only needed to override [[Crack Propagation Commands#Traction Law in Wake of Propagation|default methods for inserting traction laws]]. See the [[#Starting the Crack|<tt>&lt;CrackList&gt;</tt> element]] to set custom traction propagation material in <tt>XML</tt> files.


=== Starting the Crack ===
=== Starting the Crack ===
Line 47: Line 49:
In scripted files, a crack is started with the <tt>NewCrack</tt> command:
In scripted files, a crack is started with the <tt>NewCrack</tt> command:


  NewCrack (x1),(y1),<(mat)>,<(frict)>,<(tract)>
  NewCrack (x1),(y1),<(mat)>,<(lawID)>,<(tract)>


In <tt>XML</tt> files, a crack is started with
In <tt>XML</tt> files, a crack is started with


  <CrackList friction='(frict)'>
  <CrackList law='(lawnum)' lawname='(lawname)' Tprop='(proplawnum)' Tpropname='(proplawname)'>
   <pt units='mm' x='(x1)' y='(x2)' tip='(mat)'/>
   <pt x='(x1)' y='(x2)' tip='(mat)'/>


where
where
Line 58: Line 60:
<ul>
<ul>
<li><tt>(x1),(y1)</tt> - defines the coordinates for the start tip of the crack (the coordinates are (R,Z) if axisymmetric).
<li><tt>(x1),(y1)</tt> - defines the coordinates for the start tip of the crack (the coordinates are (R,Z) if axisymmetric).
</li>


<li><tt>(mat)</tt> - this optional parameter can be one of three things:
<li><tt>(mat)</tt> - this optional parameter can be one of three things:
<ol>
<ol>
<li>[[Material Command Block|A Material ID]] - It can define the [[Material Models|material]] at the start of the crack. Crack propagation is only possible when one or both of its crack tips have a material ID. If the material ID is omitted, the MPM calculations will correctly model that crack, but no propagation or fracture parameter calculations will occur. In <tt>XML</tt> files, this <tt>(mat)</tt> option must set the [[Material Command Block|material by number]].
<li>[[Material Command Block|A Material ID]] - It can define the [[Material Models|material]] at the start of the crack. Crack propagation is only possible when one or both of its crack tips have a material ID. If the material ID is omitted, the MPM calculations will correctly model that crack, but no propagation or fracture parameter calculations will occur. In <tt>XML</tt> files, this <tt>(mat)</tt> option must set the [[Material Command Block|material by number]].
<li><tt>"exterior"</tt> - this text indicates a [[#exteriornote|crack tip at the edge of the body]]. In <tt>XML</tt> files, use <tt>tip='-2'</tt> instead of of the word <tt>"exterior"</tt>.
<li><tt>"exterior"</tt> - this text indicates a [[#Exterior Cracks|crack tip at the edge of the body]]. In <tt>XML</tt> files, use <tt>tip='-2'</tt> instead of of the word <tt>"exterior"</tt>.
<li><tt>"fixed"</tt> - this text indicates a fixed crack (scripted files only). A fixed crack will not translate with the object and will not track surfaces. It can calculate J Integral but not stress intensity factor. It is useful when using cracks to create surfaces in an object. The surface can change by propagating the crack at constant crack speed initiated by critical J or by initiation time (see [[Crack Propagation Commands#Crack Propagation Criterion|steady state propagation]]). In <tt>XML</tt> files, you set a <tt>"fixed"</tt> crack, by adding an attribute <tt>type='fixed'</tt> to the <tt><CrackList></tt> element rather then using the <tt>(mat)</tt> parameter.
<li><tt>"fixed"</tt> - this text indicates a fixed crack (scripted files only). A fixed crack will not translate with the object and will not track surfaces. It can calculate J Integral but not stress intensity factor. It is useful when using cracks to create surfaces in an object. The surface can change by propagating the crack at constant crack speed initiated by critical J or by initiation time (see [[Crack Propagation Commands#Crack Propagation Criterion|steady state propagation]]). In <tt>XML</tt> files, you set a <tt>"fixed"</tt> crack, by adding an attribute <tt>type='fixed'</tt> to the <tt><CrackList></tt> element rather then using the <tt>(mat)</tt> parameter.
</ol>
</ol>
<li><tt>(frict)</tt> - the [[Friction#Friction on Explicit Cracks|global <tt>Friction</tt> command]] sets cracks by default to contact by frictional sliding and selects default frictional properties. By using the <tt>(frict)</tt> parameter, you can customize any specific crack to use different frictional properties on can convert one crack to use frictional sliding when the default crack setting is to model [[Imperfect Interfaces|imperfect interfaces]]. The custom frictional properties are set using the same options available in the [[Friction#fparams|<tt>Friction</tt> and <tt>FrictionMM</tt> commands]]. If you want to set a contact law on a non-fixed crack in scripted files, but do not want to define a tip material in <tt>(mat)</tt>, you can enter <tt>(mat)</tt>=<tt>"free"</tt>, and then enter the desired <tt>(frict)</tt>.
</li>
<li><tt>(frict)</tt> and <tt>(tract)</tt> - alternatively, these optional parameters can assign a traction law to the initial crack tip. To use this option in scripted files, set <tt>(frict)</tt>=<tt>"traction"</tt> and then set <tt>(tract)</tt> to a material ID for a [[Traction Laws|traction law material]]. The traction law will be applied only to the first crack particle. In <tt>XML</tt> files, you assign a [[Traction Laws|traction law]] using a [[Material Command Block#Referencing Materials in XML Files|<tt>mat='n'</tt> or <tt>matnam='name'</tt> attribute]] on the <tt><pt></tt> command.
 
<li><tt>(lawID)</tt> (and <tt>(lawnum)</tt>) - this parameter customizes this crack to use a different [[Contact Laws|contact law]] for modeling crack contact (''i.e.'', a different [[Contact Laws|contact law]] or [[Imperfect Interfaces#Imperfect Interfaces on Explicit Cracks|imperfect interface]] for this crack than the one selected by the [[Friction#Friction on Explicit Cracks|global <tt>ContactCracks</tt> command]]). If you want to set a contact law on a non-fixed crack in scripted files, but do not want to define a tip material in <tt>(mat)</tt>, you can enter <tt>(mat)</tt>=<tt>"free"</tt>, and then enter the desired <tt>(lawID)</tt>. In XML files, the custom [[Contact Laws|contact law]] can be specified by number or name (in <tt>(lawnum)</tt> or <tt>(lawname)</tt>). If both are used, the name takes precedence. (Note: this parameter can set custom crack contact using the [[Friction#Deprecated Friction Commands|deprecated <tt>(frict)</tt> parameter method]]; this option in a <tt>NewCrack</tt> command is deprecated).
</li>
 
<li><tt>(lawID)</tt> and <tt>(tract)</tt> - alternatively, this pair of optional parameters can assign a traction law to the initial crack tip. To use this option in scripted files, set <tt>(lawID)</tt>=<tt>"traction"</tt> and then set <tt>(tract)</tt> to a material ID for a [[Traction Laws|traction law material]]. The traction law will be applied only to the first crack particle. In <tt>XML</tt> files, you assign a [[Traction Laws|traction law]] using a [[Material Command Block#Referencing Materials in XML Files|<tt>mat='n'</tt> or <tt>matname='name'</tt> attribute]] on the <tt><pt></tt> command. (See notes [[#Notes|2 and 3]]).</li>
 
<li><tt>(proplawnum)</tt> and <tt>(proplawname)</tt> - in <tt>XML</tt> files, you can define a custom [[Traction Laws|traction law]] to be insert whenever this crack propagates. The law is specified by number or name. If both are used, the name takes precedence. This command is only needed to override [[Crack Propagation Commands#Traction Law in Wake of Propagation|default methods for inserting traction laws]]. In scripted files, specify this custom law using the [[#Crack Definition Commmands|CustomTractionProp command]] instead.
</li>
</ul>
 
==== Deprecated Options ====
 
Prior to availability of [[Contact Laws|contact laws]], these commands could assign custom Coulomb friction by changing <tt>(lawID)</tt> to <tt>(frict)</tt> in scripted files or by using a <tt>friction='(frict)'</tt> attribute on the <tt>&lt;CrackList&gt;</tt> command in XML files. Although these settings still work, new files should use [[Contact Laws|contact laws]] instead. The deprecated settings were:
<ul>
<li><tt>(frict)</tt> - the [[Friction#Friction on Explicit Cracks (Deprecated)|deprecated global <tt>Friction</tt> command]] sets cracks by default to contact by frictional sliding and selects default frictional properties. By using the <tt>(frict)</tt> parameter, you can customize any specific crack to use different frictional properties on can convert one crack to use frictional sliding when the default crack setting is to model [[Imperfect Interfaces#Imperfect Interfaces on Explicit Cracks (Deprecated)|imperfect interfaces]]. The custom frictional properties are set using the same options available in the [[Friction#fparams|<tt>Friction</tt> and <tt>FrictionMM</tt> commands]]. If you want to set a contact law on a non-fixed crack in scripted files, but do not want to define a tip material in <tt>(mat)</tt>, you can enter <tt>(mat)</tt>=<tt>"free"</tt>, and then enter the desired <tt>(frict)</tt>.
</ul>
</ul>
Prior to availability of [[Contact Laws|contact laws]], the [[Imperfect Interfaces#Imperfect Interfaces on Explicit Cracks (Deprecated)|global <tt>ImperfectInterface</tt> command]] set cracks by default to be an imperfect interface and selected default interface parameters. The now-deprecated <tt>CrackInterface</tt> command or attributes on the <tt>&lt;CrackList&gt;</tt> comand, could customize any specific crack to use different interface parameters. Although these settings still work, new files should use [[Contact Laws|contact laws]] instead. The deprecated settings were:
CrackInterface (Dt),(Dntens),<(Dncomp)>
In <tt>XML</tt> files, you could select an imperfect interface using attributes on the <tt><CrackList></tt> element
<CrackList Dt='(Dt)' Dn='(Dntens)' Dnc='(Dncomp)'>
where <tt>(Dt),(Dntens),(Dncomp)</tt> are the [[Imperfect Interfaces#iiparams|interface parameters]].


=== Growing the Crack ===
=== Growing the Crack ===
Line 73: Line 100:
Once a [[#Starting the Crack|crack is started]], it is extended by using one or more growing commands. In scripted files, the commands are:
Once a [[#Starting the Crack|crack is started]], it is extended by using one or more growing commands. In scripted files, the commands are:


  GrowCrack (x2),(y2),<(mat)>
  GrowCrack (x2),(y2),<(mat)>,<(tract)>
  GrowCrackLine (x2),(y2),(segs),<(mat)>,<(tract)>
  GrowCrackLine (x2),(y2),(segs),<(mat)>,<(tract)>
  GrowCrackArc (x1),(y1),(x2),(y2),(segs),(ang1),(ang2),<(mat)>,<(tract)>
  GrowCrackArc (x1),(y1),(x2),(y2),(segs),(ang1),(ang2),<(mat)>,<(tract)>
Line 79: Line 106:
In <tt>XML</tt> files, the growing commands are:
In <tt>XML</tt> files, the growing commands are:


   <pt x='(x2)' y='(y2)'/>
   <pt x='(x2)' y='(y2)' tip='(mat)' mat='(tract)'/>
   <Line xmin="(x1)" ymin="(y1)" xmax="(x2)" ymax="(y2)" resolution="(segs)"
   <Line xmin="(x1)" ymin="(y1)" xmax="(x2)" ymax="(y2)" resolution="(segs)"
             start_tip="(mat)" end_tip="(mat)"/>
             start_tip="(mat)" end_tip="(mat)" mat='(tract)'/>
   <Circle xmin="(x1)" ymin="(y1)" xmax="(x2)" ymax="(y2)" resolution="(segs)"
   <Circle xmin="(x1)" ymin="(y1)" xmax="(x2)" ymax="(y2)" resolution="(segs)"
             start_tip="(mat)" end_tip="(mat)" start_angle="(ang1)" end_angle="(ang2)"/>
             start_tip="(mat)" end_tip="(mat)" start_angle="(ang1)"
            end_angle="(ang2)" mat='(tract)'/>


<ul>
<ul>
<li><tt>(x1,y1)</tt> and <tt>(x2,y2)</tt> define two points that are used in the [[#grow|growing action]] that results from the command (the coordinates are (R,Z) if axisymmetric). Some commands give only <tt>(x2,y2)</tt>; for these commands <tt>(x1,y1)</tt> is the given by the last point of the previous crack definition command.
<li><tt>(x1,y1)</tt> and <tt>(x2,y2)</tt> define two points that are used in the [[#grow|growing action]] that results from the command (the coordinates are (R,Z) if axisymmetric). Some commands give only <tt>(x2,y2)</tt>; for these commands <tt>(x1,y1)</tt> is the given by the last point of the previous crack definition command.


<li><tt>(segs)</tt> - the number of segments to create in the command's [[#grow|growing action]]. See [[#segsnote|note onnumber of segments]] for recommendations in selecting this number.
<li><tt>(segs)</tt> - the number of segments to create in the command's [[#grow|growing action]]. See [[#segsnote|note on number of segments]] for recommendations in selecting this number.


<li><tt>(ang1)</tt> and <tt>(ang2)</tt> - for the arc commands, these parameters define the start and end angles for the arc [[#grow|growing action]].
<li><tt>(ang1)</tt> and <tt>(ang2)</tt> - for the arc commands, these parameters define the start and end angles for the arc [[#grow|growing action]].
Line 94: Line 122:
<li><tt>(mat)</tt> - this optional parameter can be one of two things:
<li><tt>(mat)</tt> - this optional parameter can be one of two things:
<ol>
<ol>
<li>[[Material Command Block|A Material ID]] - it can define the [[Material Models|material]] at the end of the growing action. Crack propagation is only possible when one or both of its crack tips have a material ID. If the material ID is omitted, the MPM calculations will correctly model that crack, but no propagation or fracture parameter calculations will occur. A crack tip material is only needed if the growing command is the last crack definition command for the current crack.
<li>[[Material Command Block|A Material ID]] - it can define the [[Material Models|material]] at the end of the growing action. Crack propagation is only possible when one or both of its crack tips have a material ID. If the material ID is omitted, the MPM calculations will correctly model that crack, but no propagation or fracture parameter calculations will occur. A crack tip material is only needed if the growing command is the last crack definition command for the current crack. In <tt>XML</tt> files, this <tt>(mat)</tt> option must set the [[Material Command Block|material by number]] and if desired you set a material for both the first and last particle generated by the command.
<li><tt>"exterior"</tt> - this text indicates a [[#exteriornote|crack tip at the edge of the body]]. In <tt>XML</tt> files, use <tt>-2</tt> instead of of the word <tt>"exterior"</tt>. A setting of <tt>"exterior"</tt> only has an effect if the growing command is the last crack definition command for the current crack.
<li><tt>"exterior"</tt> - this text indicates a [[#Exterior Cracks|crack tip at the edge of the body]]. In <tt>XML</tt> files, use <tt>tip='-2'</tt> instead of of the word <tt>"exterior"</tt> and it can set either the first or last particle generated by the command. A setting of <tt>"exterior"</tt> only has an effect if the growing command is creating the tip particles for the crack.
</ol>
</ol>


<li><tt>(tract)</tt> - this optional parameter can assign a [[Traction Laws|traction law]] to all new crack particles created by the growing action by setting it to the [[Material Command Block|material ID]] for a traction law material. To set a traction law material but no crack tip material in <tt>(mat)</tt>, you can set<tt>(mat)</tt> to "0" (or actually to any invalid material ID).
<li><tt>(tract)</tt> - this optional parameter can assign a [[Traction Laws|traction law]] to all new crack particles created by the growing action by setting it to the [[Material Command Block|material ID]] for a traction law material. To set a traction law material but no crack tip material in <tt>(mat)</tt> in scripted files, you can set<tt>(mat)</tt> to "0" (or actually to any invalid material ID). In <tt>XML</tt> files, you assign a [[Traction Laws|traction law]] using a [[Material Command Block#Referencing Materials in XML Files|<tt>mat='n'</tt> or a <tt>matnam='name'</tt> attribute]] on the command. (See notes [[#Notes|2 and 3]]).
</ul>
</ul>


<span id="grow">The growing actions</span> for the various crack definition commands are:
<span id="grow">The growing actions</span> for the various crack definition commands are:


* <tt>GrowCrack</tt> and <tt><pt></tt> - create a single crack particle at <tt>(x2,y2)</tt> and a crack segment from <tt>(x1,y1)</tt> to <tt>(x2,y2)</tt>.
* <tt>GrowCrack</tt> and <tt><pt></tt> - create a single crack particle at <tt>(x2,y2)</tt> and one crack segment from <tt>(x1,y1)</tt> to <tt>(x2,y2)</tt>.
* <tt>GrowCrackLine</tt> and <tt><Line></tt> - create <tt>(seg)</tt> crack particles and segments evenly spaced along the line <tt>(x1,y1)</tt> to <tt>(x2,y2)</tt>.
* <tt>GrowCrackLine</tt> and <tt><Line></tt> - create <tt>(segs)</tt> crack particles and segments evenly spaced along the line from <tt>(x1,y1)</tt> to <tt>(x2,y2)</tt>.
* <tt>GrowCrackArc</tt> and <tt><Circle></tt> - the points <tt>(x1,y1)</tt> define <tt>(x2,y2)</tt> are used to define the corners of a rectangle and an arc is followed between the two <tt>(ang1)</tt> and <tt>(ang2)</tt> angles (in degrees as counter-clockwise angle from the positive x axis). The arc is divided into <tt>(segs)</tt> evenly spaced particles and segments. In addition, the last point of the previous crack definition command will be connected with one segment to the start of the arc. Because the control points for the arc are the boundaries of the oval's rectangle and not the starting and ending points of the resulting arc, linking arcs with points and lines may cause jumps in the crack geometry. One solution is to choose the previou crack definition command to add at the starting of the arc.
* <tt>GrowCrackArc</tt> and <tt><Circle></tt> - the points <tt>(x1,y1)</tt> define <tt>(x2,y2)</tt> are used to define the corners of a rectangle and an arc is followed between the two <tt>(ang1)</tt> and <tt>(ang2)</tt> angles (in degrees as counter-clockwise angles from the positive x axis). The arc is divided into <tt>(segs)</tt> evenly spaced particles and segments. In addition, the last point of the previous crack definition command will be connected with one segment to the start of the arc. Because the control points for the arc are the boundaries of the oval's rectangle and not the starting and ending points of the resulting arc, linking arcs with points and lines may cause jumps in the crack geometry. One solution is to choose the previous crack definition command to end at the resulting starting point of the arc.
 
=== Crack Thickness ===
 
The <tt>CrackThickness</tt> command sets the thickness for an explicit crack. It is only needed if the crack has any particles with a [[Traction Laws|traction law]] or when [[Thermal Calculations#Conduction|crack tips release their energy into heat]]. In the scripted file, the command is


=== Crack as Imperfect Interface ===
CrackThickness (thick)


The [[Imperfect Interfaces#Imperfect Interfaces on Explicit Cracks|global <tt>ImperfectInterface</tt> command]] sets cracks by default to be an imperfect interface and selects interface parameters. By using the <tt>CrackInterface</tt> command, you can customize any specific crack to use different interface parameters. This command can also convert one crack to be an imperfect interface when the default crack setting is for [[Friction|frictional sliding]]. In scripted files, you can customize the current crack with:
and it applies to the current crack started with the most recent <tt>NewCrack</tt> command. In <tt>XML</tt> files, the command, which must by within a <tt><CrackList></tt> element, is:


  CrackInterface (Dt),(Dntens),<(Dncomp)>
  <Thickness>(thick)</Thickness>


In <tt>XML</tt> files, you select an imperfect interface using attributes on the <tt><CrackList></tt> element
where <tt>(thick)</tt> is the crack thickness (in [[ConsistentUnits Command#Legacy and Consistent Units|length units]]).


<CrackList Dt='(Dt)' Dn='(Dntens)' Dnc='(Dncomp)'>
Once a <tt>CrackThickness</tt> command has been used, all subsequent cracks will use the same thickness unless a new <tt>CrackThickness</tt> command changes it. If the [[MPM Grid Generation|grid was created]] using a <tt>GridThickness</tt> command (or a <tt>thickness</tt> attribute), the crack thickness will inherit that thickness. You only need a <tt>CrackThickness</tt> command to have a different thickness (although having a different thickness is very uncommon and may alter the physics of the cracks.)


where <tt>(Dt),(Dntens),(Dncomp)</tt> are the  interfacial stiffness parameters and should be entered with units of MPa/mm (see [[Imperfect Interfaces|imperfect interfaces]] documentation for details on modeling with interface and for information on setting the three [[Imperfect Interfaces#iiparams|interface parameters]].
== Interacting Cracks ==


=== Crack Thickness ===
[[File:CrackVelFields.jpg|right]]


The <tt>CrackThickness</tt> command sets the thickness for an explicit crack. It is only needed if the crack has any particles with a [[Traction Laws|traction law]] or when [[Thermal Calculations#Conduction|crack tips release their energy into heat]]. In the scripted file, the command is
The key change in CRAMP<ref name="CRAMP"/> compared to conventional MPM is that each node can have more then one velocity field to separately track particle motion above and below cracks. When only a single crack is near a node, that node may have velocity fields. When MPM extrapolates particle velocities to the grid, it traces a line from each particle to the node. If the line does not cross any crack, it adds to velocity field [0] on that node. If it crosses the single crack, it adds to velocity field [1]. The left side of the figure on the right show a single blue crack. The particles labeled [0] are on the same side of the crack as the indicated node and extrapolate to velocity field [0] on that node. The particles labeled [1] are on the opposite of the crack and extrapolate to velocity field [1] on that node.


CrackThickness (thick)
The right side of the figure shows extension of CRAMP to handle two interacting cracks. When two cracks are near a node, that node may have up to four velocity fields, which are determined by tracing lines from particles to the node. Field [0] is from particles on the same side of both cracks. Field [1] is from particles on the opposite side of the first crack (here the blue crack). Field [2] is from particles on the opposite side of the second crack (the red crack). Field [3] is from particles that are on the opposite side of both cracks.


and it applies to the current crack started with the most recent <tt>NewCrack</tt> command. In <tt>XML</tt> files, the command, which must by within a <tt><CrackList></tt> element, is:
The extension to three interacting and explicit cracks is not handled. In other words, MPM models cannot explicitly resolve three cracks that are all near a single node (''i.e.'', within the same background cell). If three crack are found, the simulation will continue and a warning will appear in the output file. The results near those three interacting cracks may not be accurate. Note that although three cracks in the same cell are not handled, an MPM model can handle any number of cracks as long as no more then two are near any given node. Despite this limitation, CRAMP does handle two cracks in the same cell, which is an improvement over typical finite element methods (''e.g.'', XFEM) that are limited to just a single crack in any element.


<Thickness>(thick)</Thickness>
Before CRAMP, some particle-based methods proposed to handle cracks with a simpler "node visibility" approach. The main difference is that these earlier methods use only a single velocity field on each node. During extrapolations, they use a similar ray-tracing method, but when the line crosses a crack, the information from that particle is ignored. In CRAMP, no information is ignored and both velocity fields are tracked using all available information. The use of multiple velocity fields also allows CRAMP to track motion of crack surfaces that can be used to track crack opening displacements, implement [[Crack Propagation Commands|fracture mechanics methods]], and allow for [[Traction Laws|cohesive laws]] on cracks.


where <tt>(thick)</tt> is the crack thickness (in mm).
== Exterior Cracks ==


Once a <tt>CrackThickness</tt> command has been used, all subsequent cracks will use the same thickness unless a new <tt>CrackThickness</tt> command changes it. If the [[MPM Grid Generation|grid was created]] using a <tt>GridThickness</tt> command, (or a <tt>thickness</tt> attribute) the crack thickness will inherit that thickness. You only need a <tt>CrackThickness</tt> command to have a different thickness (although having a different thickness is very uncommon and may alter the physics of the cracks.)
For cracks that extend outside the object, the recommended approach is to stop the cracking slightly before the edge (''e.g.'', 1/4 to 1/2 a cell from the edge) and define that tip as an <tt>"exterior"</tt> crack tip. Such tips are virtually extended beyond the object during calculations to model a crack through to the object's edge. An alternative is simply run the crack beyond the edge (''e.g.'', 1/2 to 1 cell beyond the edge). Such crack tips, however, can suffer inaccuracies due to lack of information about local velocity fields. The result is such crack tips may not move correctly if the object is moving. Using an <tt>"exterior"</tt> crack tip resolves this problem.


== Interacting Cracks ==
== Materials that Do Not Crack ==


Two cracks handled with rigor. Three or more are beyond the resolution for MPM or any numerical method. Details to follow
Cracks can spread from one material to another such as when simulating crack growth in a composite material. But, sometimes you would like to simulate one material entering the crack of another material can causing that crack to propagate by contact with the crack surfaces. Some examples are simulating cutting, wedging a crack open, or hydraulic fracturing. To run such simulations, you can set the material that will enter the crack to ignore cracks by setting its [[Common Material Properties#Fracture Toughness Properties|allowCracks property]] to zero.


== Notes ==
== Notes ==


# <span id="exteriornote"></span>For cracks that extend outside the object, the recommended approach is to stop the cracking slightly before the edge (e.g., 1/4 to 1/2 a cell from the edge) and define that tip as an <tt>"exterior"</tt> crack tip by setting its tip property to -2. Such tips are virtually extended beyond the object during calculations to model a crack through the surface. An alternative is simply run the crack beyond the edge ((e.g., 1/2 to 1 beyond the edge). Such crack tips, however, can suffer inaccuracies due to lack of imformation about local velocity fields. The result is such crack tips may not move correctly if the object is moving.
# <span id="segsnote"></span>Although a straight crack can be mathematically defined with a single segment, the crack surfaces and plane of such cracks would not update well under arbitrary deformation states. Instead cracks should be defined with at least one segment per cell of the background grid. If the crack has [[Traction Laws|traction laws]], experience suggest the crack should have at least two segments per cell.
# <span id="segsnote"></span>Although a straight crack can be mathematically defined with a single segment, the crack surfaces and plane of such cracks would not update well under arbitrary deformation states. Instead cracks should be defined with at least one segment per cell of the background grid. If the crack has [[Traction Laws|traction laws, experience suggest the crack should have at least two segments per cell.
# For cracks with traction laws, the crack contact mechanics handles normal stresses for the case where the crack surfaces are in contact. To avoid invalid tangential force due to contact friction when cracks are in contact, any crack surface with traction laws will automatically convert to a frictionless crack regardless of settings you use for the [[Friction#Friction on Explicit Cracks|crack's contact condition]]. If, however, you use [[Crack Propagation Commands|propagation methods]] that assign traction laws to new crack surfaces, that crack may not automatically convert to a frictionless crack. You must therefore set such cracks to use [[Friction#Friction on Explicit Cracks|frictionless crack contact]].
# For planar 2D calculations, cracks that have traction laws must have the correct [[#Crack Thickness|crack thickness]].


== References ==
== References ==
<references/>
 
<references>
<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>
 
<ref name="GuoJ">Y. Guo and J. A. Nairn, "Calculation of J-Integral and Stress Intensity Factors using the Material Point Method," <i>Computer Modeling in Engineering &amp; Sciences</i>, <b>6</b>, 295-308 (2004). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/MPMTwoDJ.pdf See PDF])</ref>
 
<ref name="EB">J. A. Nairn, "Simulation of Crack Growth in Ductile Materials,"; <i>Engr. Fract. Mech.</i>, <b>72</b>, 961-979 (2005). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/Dugdale.pdf See PDF])</ref>
 
<ref name="Guo3D">Y. Guo and J. A. Nairn, "Three-Dimensional Dynamic Fracture Analysis Using the Material Point Method," <i>Computer Modeling in Eng. &amp; Sci.</i>, <b>16</b>, 141-156 (2006). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/guo3D.pdf See PDF])</ref>
 
<ref name="IIC">J. A. Nairn, "Numerical Implementation of Imperfect Interfaces, <i>Computational Materials Science</i>, <b>40</b>, 525-536 (2007). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/Interface.pdf See PDF])</ref>
 
<ref name="RCurve">J. A. Nairn, "Analytical and Numerical Modeling of R Curves for Cracks with Bridging Zones," <i>Int. J. Fracture</i>, <b>155</b>, 167-181 (2009). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/JBridging.pdf See PDF])</ref>
 
<ref name="mixedmode">J. A. Nairn and Y. E. Aimene, "A re-evaluation of mixed-mode cohesive zone modeling based on strength concepts instead of traction laws", submitted (2021).</ref>
 
<ref name="wood">J. A. Nairn, "Material Point Method Simulations of Transverse Fracture in Wood with Realistic Morphologies," <i>Holzforschung</i>,  <b>61</b>, 375-381 (2007). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/FractureSim.pdf See PDF])</ref>
 
<ref name="OSB">J. A. Nairn and E. Le, "Numerical Modeling and Experiments on the Role of Strand-to-Strand Interface Quality on the Properties of Oriented Strand Board," <i>Proc of 9th Int. Conf. on Wood Adhesives</i>, Lake Tahoe, Neveda, USA, Sept. 28-30, 2009. ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/WoodAd2009.pdf See PDF])</ref>
 
<ref name="BardF">S. G. Bardenhagen, J.A. Nairn, and H. Lu, "Simulation of dynamic fracture with the Material Point Method using a mixed J-integral and cohesive law approach," <i>Int. J. Fracture</i>, <b>170</b>, 49-66 (2011).</ref>
 
<ref name="MDF">N. Matsumoto and J.A. Nairn, "Fracture Toughness of Wood and Wood Composites During Crack Propagation," <i>Wood and Fiber Science</i>, '''44''', 121-133 (2012). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/WoodToughness.pdf See PDF])</ref>
 
<ref name="cutting">J. A. Nairn. Numerical simulation of orthogonal cutting using the material point method. Engineering Fracture Mechanics, 149:262–275, 2015.</ref>
 
</references>

Latest revision as of 15:21, 26 April 2024

This section explains how to add explicit cracks to both 2D and 3D MPM simulations.

Introduction

The extension of MPM to model explicit cracks is called CRAMP for CRAcks in the Material Point Method. The commands is this section are used to define the explicit cracks (and there can be any number of them). In addition, whenever a simulation has cracks you can use crack settings commands to customize the features of the crack physics, set various material fracture properties to control crack propagation, or add traction laws to model cohesive zones.

The development of CRAMP is described first in a paper by Nairn (2003)[1] (and its development was done using NairnMPM). Some other papers discuss calculation of J integral and stress intensity factor,[2], propose energy balance propagation,[3] handle cracks in 3D[4], use cracks to model imperfect interfaces,[5], use traction laws with cracks,[6], and define a new approach to mixed-mode cohesive zone modeling.[7] Some applications of using cracks in MPM include wood fracture,[8] use of cracks to model glue bonds in oriented strand board,[9] simulation of dynamic fracture,[10] simulation of crack growth with fiber bridging.[11], and simulation of cutting.[12]

The remainder of this page explains how to define cracks in 2D problems only. As separate page explains how to define crack in 3D problems.

Crack Definition Commands

OneCrack.png

In CRAMP,[1] a crack is defined as series of massless particles connected by crack segments. The first particle is the "start" tip and the last particle is the "end" tip. When CRAMP is active, nodes around the crack will be divided into two velocity fields to separately model motion of particle "above" the crack and "below" the crack. You define a crack by providing the points along the crack - (x1,y1) to (xn,yn). In addition, CRAMP fully accounts for crack contact, can use a contact law to model cracks with frictional contact or an imperfect interface, and can insert traction laws to model cohesive zones. When defining cracks, some additional commands are available to set crack contact mechanics, set crack tip materials, and insert traction laws.

In scripted files, a single crack is started with a NewCrack command, which is followed by one or more of the other commands to complete the crack definition:

NewCrack (x1),(y1),<(mat)>,<(lawID)>,<(tract)>
GrowCrack (x2),(y2),<(mat)>,<(tract)>
GrowCrackLine (x2),(y2),(segs),<(mat)>,<(tract)>
GrowCrackArc (x1),(y1),(x2),(y2),(segs),(ang1),(ang2),<(mat)>,<(tract)>
CrackThickness (thick)
CustomTractionProp (traction)

In XML files, each crack is defined in a <CrackList> element:

<CrackList law='(lawnum)' lawname='(lawname)' Tprop='(proplawnum)' Tpropname='(proplawname)'>
  <pt x='(x1)' y='(y1)' tip='(mat)'/>
  <pt x='53' y='0'/>
     . . .
  <pt x='(x2)' y='(y2)'/>
  <Line xmin="(x1)" ymin="(y1)" xmax="(x2)" ymax="(y2)" resolution="(segs)"
           start_tip="(mat)" end_tip="(mat)"/>
  <Circle xmin="(x1)" ymin="(y1)" xmax="(x2)" ymax="(y2)" resolution="(segs)"
           start_tip="(mat)" end_tip="(mat)" start_angle="(ang1)" end_angle="(ang2)"/>
  <Thickness>(thick)</Thickness>
</CrackList>

The commands and their functions are:

Starting the Crack

In scripted files, a crack is started with the NewCrack command:

NewCrack (x1),(y1),<(mat)>,<(lawID)>,<(tract)>

In XML files, a crack is started with

<CrackList law='(lawnum)' lawname='(lawname)' Tprop='(proplawnum)' Tpropname='(proplawname)'>
  <pt x='(x1)' y='(x2)' tip='(mat)'/>

where

  • (x1),(y1) - defines the coordinates for the start tip of the crack (the coordinates are (R,Z) if axisymmetric).
  • (mat) - this optional parameter can be one of three things:
    1. A Material ID - It can define the material at the start of the crack. Crack propagation is only possible when one or both of its crack tips have a material ID. If the material ID is omitted, the MPM calculations will correctly model that crack, but no propagation or fracture parameter calculations will occur. In XML files, this (mat) option must set the material by number.
    2. "exterior" - this text indicates a crack tip at the edge of the body. In XML files, use tip='-2' instead of of the word "exterior".
    3. "fixed" - this text indicates a fixed crack (scripted files only). A fixed crack will not translate with the object and will not track surfaces. It can calculate J Integral but not stress intensity factor. It is useful when using cracks to create surfaces in an object. The surface can change by propagating the crack at constant crack speed initiated by critical J or by initiation time (see steady state propagation). In XML files, you set a "fixed" crack, by adding an attribute type='fixed' to the <CrackList> element rather then using the (mat) parameter.
  • (lawID) (and (lawnum)) - this parameter customizes this crack to use a different contact law for modeling crack contact (i.e., a different contact law or imperfect interface for this crack than the one selected by the global ContactCracks command). If you want to set a contact law on a non-fixed crack in scripted files, but do not want to define a tip material in (mat), you can enter (mat)="free", and then enter the desired (lawID). In XML files, the custom contact law can be specified by number or name (in (lawnum) or (lawname)). If both are used, the name takes precedence. (Note: this parameter can set custom crack contact using the deprecated (frict) parameter method; this option in a NewCrack command is deprecated).
  • (lawID) and (tract) - alternatively, this pair of optional parameters can assign a traction law to the initial crack tip. To use this option in scripted files, set (lawID)="traction" and then set (tract) to a material ID for a traction law material. The traction law will be applied only to the first crack particle. In XML files, you assign a traction law using a mat='n' or matname='name' attribute on the <pt> command. (See notes 2 and 3).
  • (proplawnum) and (proplawname) - in XML files, you can define a custom traction law to be insert whenever this crack propagates. The law is specified by number or name. If both are used, the name takes precedence. This command is only needed to override default methods for inserting traction laws. In scripted files, specify this custom law using the CustomTractionProp command instead.

Deprecated Options

Prior to availability of contact laws, these commands could assign custom Coulomb friction by changing (lawID) to (frict) in scripted files or by using a friction='(frict)' attribute on the <CrackList> command in XML files. Although these settings still work, new files should use contact laws instead. The deprecated settings were:

  • (frict) - the deprecated global Friction command sets cracks by default to contact by frictional sliding and selects default frictional properties. By using the (frict) parameter, you can customize any specific crack to use different frictional properties on can convert one crack to use frictional sliding when the default crack setting is to model imperfect interfaces. The custom frictional properties are set using the same options available in the Friction and FrictionMM commands. If you want to set a contact law on a non-fixed crack in scripted files, but do not want to define a tip material in (mat), you can enter (mat)="free", and then enter the desired (frict).

Prior to availability of contact laws, the global ImperfectInterface command set cracks by default to be an imperfect interface and selected default interface parameters. The now-deprecated CrackInterface command or attributes on the <CrackList> comand, could customize any specific crack to use different interface parameters. Although these settings still work, new files should use contact laws instead. The deprecated settings were:

CrackInterface (Dt),(Dntens),<(Dncomp)>

In XML files, you could select an imperfect interface using attributes on the <CrackList> element

<CrackList Dt='(Dt)' Dn='(Dntens)' Dnc='(Dncomp)'>

where (Dt),(Dntens),(Dncomp) are the interface parameters.

Growing the Crack

Once a crack is started, it is extended by using one or more growing commands. In scripted files, the commands are:

GrowCrack (x2),(y2),<(mat)>,<(tract)>
GrowCrackLine (x2),(y2),(segs),<(mat)>,<(tract)>
GrowCrackArc (x1),(y1),(x2),(y2),(segs),(ang1),(ang2),<(mat)>,<(tract)>

In XML files, the growing commands are:

  <pt x='(x2)' y='(y2)' tip='(mat)' mat='(tract)'/>
  <Line xmin="(x1)" ymin="(y1)" xmax="(x2)" ymax="(y2)" resolution="(segs)"
           start_tip="(mat)" end_tip="(mat)" mat='(tract)'/>
  <Circle xmin="(x1)" ymin="(y1)" xmax="(x2)" ymax="(y2)" resolution="(segs)"
           start_tip="(mat)" end_tip="(mat)" start_angle="(ang1)"
           end_angle="(ang2)" mat='(tract)'/>
  • (x1,y1) and (x2,y2) define two points that are used in the growing action that results from the command (the coordinates are (R,Z) if axisymmetric). Some commands give only (x2,y2); for these commands (x1,y1) is the given by the last point of the previous crack definition command.
  • (segs) - the number of segments to create in the command's growing action. See note on number of segments for recommendations in selecting this number.
  • (ang1) and (ang2) - for the arc commands, these parameters define the start and end angles for the arc growing action.
  • (mat) - this optional parameter can be one of two things:
    1. A Material ID - it can define the material at the end of the growing action. Crack propagation is only possible when one or both of its crack tips have a material ID. If the material ID is omitted, the MPM calculations will correctly model that crack, but no propagation or fracture parameter calculations will occur. A crack tip material is only needed if the growing command is the last crack definition command for the current crack. In XML files, this (mat) option must set the material by number and if desired you set a material for both the first and last particle generated by the command.
    2. "exterior" - this text indicates a crack tip at the edge of the body. In XML files, use tip='-2' instead of of the word "exterior" and it can set either the first or last particle generated by the command. A setting of "exterior" only has an effect if the growing command is creating the tip particles for the crack.
  • (tract) - this optional parameter can assign a traction law to all new crack particles created by the growing action by setting it to the material ID for a traction law material. To set a traction law material but no crack tip material in (mat) in scripted files, you can set(mat) to "0" (or actually to any invalid material ID). In XML files, you assign a traction law using a mat='n' or a matnam='name' attribute on the command. (See notes 2 and 3).

The growing actions for the various crack definition commands are:

  • GrowCrack and <pt> - create a single crack particle at (x2,y2) and one crack segment from (x1,y1) to (x2,y2).
  • GrowCrackLine and <Line> - create (segs) crack particles and segments evenly spaced along the line from (x1,y1) to (x2,y2).
  • GrowCrackArc and <Circle> - the points (x1,y1) define (x2,y2) are used to define the corners of a rectangle and an arc is followed between the two (ang1) and (ang2) angles (in degrees as counter-clockwise angles from the positive x axis). The arc is divided into (segs) evenly spaced particles and segments. In addition, the last point of the previous crack definition command will be connected with one segment to the start of the arc. Because the control points for the arc are the boundaries of the oval's rectangle and not the starting and ending points of the resulting arc, linking arcs with points and lines may cause jumps in the crack geometry. One solution is to choose the previous crack definition command to end at the resulting starting point of the arc.

Crack Thickness

The CrackThickness command sets the thickness for an explicit crack. It is only needed if the crack has any particles with a traction law or when crack tips release their energy into heat. In the scripted file, the command is

CrackThickness (thick)

and it applies to the current crack started with the most recent NewCrack command. In XML files, the command, which must by within a <CrackList> element, is:

<Thickness>(thick)</Thickness>

where (thick) is the crack thickness (in length units).

Once a CrackThickness command has been used, all subsequent cracks will use the same thickness unless a new CrackThickness command changes it. If the grid was created using a GridThickness command (or a thickness attribute), the crack thickness will inherit that thickness. You only need a CrackThickness command to have a different thickness (although having a different thickness is very uncommon and may alter the physics of the cracks.)

Interacting Cracks

CrackVelFields.jpg

The key change in CRAMP[1] compared to conventional MPM is that each node can have more then one velocity field to separately track particle motion above and below cracks. When only a single crack is near a node, that node may have velocity fields. When MPM extrapolates particle velocities to the grid, it traces a line from each particle to the node. If the line does not cross any crack, it adds to velocity field [0] on that node. If it crosses the single crack, it adds to velocity field [1]. The left side of the figure on the right show a single blue crack. The particles labeled [0] are on the same side of the crack as the indicated node and extrapolate to velocity field [0] on that node. The particles labeled [1] are on the opposite of the crack and extrapolate to velocity field [1] on that node.

The right side of the figure shows extension of CRAMP to handle two interacting cracks. When two cracks are near a node, that node may have up to four velocity fields, which are determined by tracing lines from particles to the node. Field [0] is from particles on the same side of both cracks. Field [1] is from particles on the opposite side of the first crack (here the blue crack). Field [2] is from particles on the opposite side of the second crack (the red crack). Field [3] is from particles that are on the opposite side of both cracks.

The extension to three interacting and explicit cracks is not handled. In other words, MPM models cannot explicitly resolve three cracks that are all near a single node (i.e., within the same background cell). If three crack are found, the simulation will continue and a warning will appear in the output file. The results near those three interacting cracks may not be accurate. Note that although three cracks in the same cell are not handled, an MPM model can handle any number of cracks as long as no more then two are near any given node. Despite this limitation, CRAMP does handle two cracks in the same cell, which is an improvement over typical finite element methods (e.g., XFEM) that are limited to just a single crack in any element.

Before CRAMP, some particle-based methods proposed to handle cracks with a simpler "node visibility" approach. The main difference is that these earlier methods use only a single velocity field on each node. During extrapolations, they use a similar ray-tracing method, but when the line crosses a crack, the information from that particle is ignored. In CRAMP, no information is ignored and both velocity fields are tracked using all available information. The use of multiple velocity fields also allows CRAMP to track motion of crack surfaces that can be used to track crack opening displacements, implement fracture mechanics methods, and allow for cohesive laws on cracks.

Exterior Cracks

For cracks that extend outside the object, the recommended approach is to stop the cracking slightly before the edge (e.g., 1/4 to 1/2 a cell from the edge) and define that tip as an "exterior" crack tip. Such tips are virtually extended beyond the object during calculations to model a crack through to the object's edge. An alternative is simply run the crack beyond the edge (e.g., 1/2 to 1 cell beyond the edge). Such crack tips, however, can suffer inaccuracies due to lack of information about local velocity fields. The result is such crack tips may not move correctly if the object is moving. Using an "exterior" crack tip resolves this problem.

Materials that Do Not Crack

Cracks can spread from one material to another such as when simulating crack growth in a composite material. But, sometimes you would like to simulate one material entering the crack of another material can causing that crack to propagate by contact with the crack surfaces. Some examples are simulating cutting, wedging a crack open, or hydraulic fracturing. To run such simulations, you can set the material that will enter the crack to ignore cracks by setting its allowCracks property to zero.

Notes

  1. Although a straight crack can be mathematically defined with a single segment, the crack surfaces and plane of such cracks would not update well under arbitrary deformation states. Instead cracks should be defined with at least one segment per cell of the background grid. If the crack has traction laws, experience suggest the crack should have at least two segments per cell.
  2. For cracks with traction laws, the crack contact mechanics handles normal stresses for the case where the crack surfaces are in contact. To avoid invalid tangential force due to contact friction when cracks are in contact, any crack surface with traction laws will automatically convert to a frictionless crack regardless of settings you use for the crack's contact condition. If, however, you use propagation methods that assign traction laws to new crack surfaces, that crack may not automatically convert to a frictionless crack. You must therefore set such cracks to use frictionless crack contact.
  3. For planar 2D calculations, cracks that have traction laws must have the correct crack thickness.

References

  1. 1.0 1.1 1.2 J. A. Nairn, "Material Point Method Calculations with Explicit Cracks," Computer Modeling in Engineering & Sciences, 4, 649-664 (2003). (See PDF)
  2. Y. Guo and J. A. Nairn, "Calculation of J-Integral and Stress Intensity Factors using the Material Point Method," Computer Modeling in Engineering & Sciences, 6, 295-308 (2004). (See PDF)
  3. J. A. Nairn, "Simulation of Crack Growth in Ductile Materials,"; Engr. Fract. Mech., 72, 961-979 (2005). (See PDF)
  4. Y. Guo and J. A. Nairn, "Three-Dimensional Dynamic Fracture Analysis Using the Material Point Method," Computer Modeling in Eng. & Sci., 16, 141-156 (2006). (See PDF)
  5. J. A. Nairn, "Numerical Implementation of Imperfect Interfaces, Computational Materials Science, 40, 525-536 (2007). (See PDF)
  6. J. A. Nairn, "Analytical and Numerical Modeling of R Curves for Cracks with Bridging Zones," Int. J. Fracture, 155, 167-181 (2009). (See PDF)
  7. J. A. Nairn and Y. E. Aimene, "A re-evaluation of mixed-mode cohesive zone modeling based on strength concepts instead of traction laws", submitted (2021).
  8. J. A. Nairn, "Material Point Method Simulations of Transverse Fracture in Wood with Realistic Morphologies," Holzforschung, 61, 375-381 (2007). (See PDF)
  9. J. A. Nairn and E. Le, "Numerical Modeling and Experiments on the Role of Strand-to-Strand Interface Quality on the Properties of Oriented Strand Board," Proc of 9th Int. Conf. on Wood Adhesives, Lake Tahoe, Neveda, USA, Sept. 28-30, 2009. (See PDF)
  10. S. G. Bardenhagen, J.A. Nairn, and H. Lu, "Simulation of dynamic fracture with the Material Point Method using a mixed J-integral and cohesive law approach," Int. J. Fracture, 170, 49-66 (2011).
  11. N. Matsumoto and J.A. Nairn, "Fracture Toughness of Wood and Wood Composites During Crack Propagation," Wood and Fiber Science, 44, 121-133 (2012). (See PDF)
  12. J. A. Nairn. Numerical simulation of orthogonal cutting using the material point method. Engineering Fracture Mechanics, 149:262–275, 2015.