Difference between revisions of "Crack Settings"
(54 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Whenever an MPM simulation has [[Defining Cracks|explicit cracks]], you can use the commands in this section to customize various features of how the cracks are modeled in [[NairnMPM]]. | |||
== | == Crack Settings Commands == | ||
In scripted files, crack properties are controlled by any number of these possible commands | |||
Propagate (crit),<(dir)>,<(traction)> | |||
AltPropagate (crit),<(dir)>,<(traction)> | |||
ProagateLength (relLength) | |||
JContour (size),<(terms)>,<(usegrid)> | |||
ContactCracks (lawID) | |||
ContactPositionCracks (cutoff) | |||
MovePlane (method),<(prevent)> | |||
In <tt>XML</tt> input file, all global crack setting commands are within a <tt><Cracks></tt> element that must be within the [[MPM Input Files#MPM Header|<tt><MPMHeader></tt> element]]: | |||
<Cracks> | |||
<Propagate criterion='(critNum)' direction='(dirNum)' traction='(traction)'/> | |||
<AltPropagate criterion='(critNum)' direction='(dirNum)' traction='(traction)'/> | |||
<PropagateLength>(relLength)</ProagateLength> | |||
<JContour size="(size)" terms="(terms)" gridenergy="(usegrid)"/> | |||
<Friction law='(lawnum)' lawname='(lawID)'/> | |||
<ContactPosition>(cutoff)</ContactPosition> | |||
<MovePlane type='(method)' prevent='(prevent)'/> | |||
</Cracks> | |||
The functions of these commands (with links to more documentation) are: | |||
* [[Crack Propagation Commands|<tt>Propagate</tt>, <tt>AltPropagate</tt>, and <tt>PropagateLength</tt> commands]] - set crack propagation properties | |||
* [[#Crack Contact Properties|<tt>ContactCracks</tt> and <tt><Friction></tt>]] - set default crack surface contact mechanics | |||
* [[#J Integral Contour Settings|<tt>JContour</tt>]] - customize J integral calculation | |||
* [[#Crack ContactPosition Command|<tt>ContactPositionCracks</tt>]] - change method used to detect crack surface contact | |||
* [[#Crack Plane Updating|<tt>MovePlane</tt>]] - set method to update crack plane position | |||
=== Crack Propagation Properties === | |||
The [[Crack Propagation Commands]] | The commands to control crack propagation criterion and direction are described in a separate help topic on [[Crack Propagation Commands]]. | ||
=== Crack Contact Properties === | === Crack Contact Properties === | ||
Crack surface can use any [[Contact Laws|contact law]] to model crack surface contact as either [[Friction#Friction on Explicit Cracks|frictional sliding]] or use the crack to model an [[Imperfect Interfaces#Imperfect Interfaces on Explicit Cracks|imperfect interface]]. Note that if the crack is defined with [[Traction Laws|traction laws]], or if it will [[Crack Propagation Commands#Traction Law in Wake of Propagation|create traction laws during propagation]], the crack ''must'' be set to use [[Friction#Friction on Explicit Cracks|frictionless sliding]] (this setting will be done automatically if not done explicitly) | |||
=== J Integral Contour Settings === | === J Integral Contour Settings === | ||
Line 36: | Line 45: | ||
[[File:JContour.png|right]] | [[File:JContour.png|right]] | ||
The <tt>JContour</tt> command is used to set the size of the path used for evaluating J integral | The <tt>JContour</tt> command is used to set the size of the path used for evaluating J integral and control the number of terms used in the process. The details are: | ||
* <tt>(size)</tt> - the J integral is evaluated on a rectangular contour center on the grid node closet to the crack tip (see blue line in the figure). The <tt>(size)</tt> setting is the semi-length for the sides of the rectangle. The default value is 2 (as shown in the figure). | * <tt>(size)</tt> - the J integral is evaluated on a rectangular contour center on the grid node closet to the crack tip (see blue line in the figure). The <tt>(size)</tt> setting is the semi-length for the sides of the rectangle. The default value is 2 (as shown in the figure). | ||
* <tt>(terms)</tt> - this optional parameter should be set to 1 or 2 to specify if the J Integral should be a simple contour (1) or include an area integral inside the contour (2). The area integral corrects for dynamic effects and for axisymmetric stress states making the calculation path independent even in dynamic problems, but is slower. A contour alone (1) might be enough if the size of the contour is small (<i>e.g.</i>, <tt>(size)</tt>=2) and the loading is slow, but both contour and area might be essential as the problem becomes more dynamic or as the size of the contour grows. The default is 1, but for axisymmetric calculations, the area integral is needed even for static problems, and therefore the default changes to 2 terms. | * <tt>(terms)</tt> - this optional parameter should be set to 1 or 2 to specify if the J Integral should be a simple contour (1) or include an area integral inside the contour (2). The area integral corrects for dynamic effects and for axisymmetric stress states making the calculation path independent even in dynamic problems, but is slower. A contour alone (1) might be enough if the size of the contour is small (<i>e.g.</i>, <tt>(size)</tt>=2) and the loading is slow, but both contour and area might be essential as the problem becomes more dynamic or as the size of the contour grows. The default is 1, but for axisymmetric calculations, the area integral is needed even for static problems, and therefore the default changes to 2 terms. | ||
* <tt>(usegrid)</tt> - this optional parameter should be set to 0 or 1 (or false or true in scripted files) to specify that kinetic energy and work energy (used in the J integration) are to be found by extrapolating particle energies (if 0 or false) or by extrapolating particle velocity, stress, and strain and than calculating energies from these grid results (if 1 or true). The default is to use particle energies (o or true). In general, the particle energies are preferred (and hence is the default). In some dynamic problems, particle kinetic energies can develop spurious noise that affect J integral calculations. In such problems, using grid energy might be better. The drawbacks of grid energies, however, are that work energy appears to be less accurate and that calculation of work energy from extrapolated stress and strain is only valid for small strain, linear elastic materials. In brief, the grid energy method should only be used for small-stain, linear elastic problems and then only when dynamic effects appear to be corrupting the results. Otherwise particle energies are preferred. | |||
More details on J integral evaluation and on the two J integral terms are given in Guo and Nairn (2006).<ref name="GuoJ"/> | More details on J integral evaluation and on the two J integral terms are given in Guo and Nairn (2006).<ref name="GuoJ"/> | ||
Line 45: | Line 55: | ||
=== Crack ContactPosition Command === | === Crack ContactPosition Command === | ||
This command influences the way | This command influences the way cracks detect contact between the crack surfaces. Its function and use are described [[Detecting Contact#Explicit Crack Contact Detection|here]]. | ||
=== Crack Plane Updating === | === Crack Plane Updating === | ||
== | The <tt>MovePlane</tt> command determines how a crack plane moves and whether or not crack surfaces can cross crack planes. In scripted files, the command is | ||
MovePlane (method),<(prevent)> | |||
In <tt>XML</tt> files, the command is: | |||
<MovePlane type='(method)' prevent='(prevent)'/> | |||
where | |||
* <tt>(method)</tt> is '<tt>avg</tt>' to move the crack plane to the midpoint of the top and bottom surfaces or '<tt>cm</tt>' to move the crack plane in the center of mass velocity field. The default method is '<tt>avg</tt>'. | |||
* <tt>(prevent)</tt> is '<tt>yes</tt>' or '<tt>no</tt>' to prevent or allow crack surfaces to cross the main crack plane. The default setting is '<tt>no</tt>'. | |||
For all cracks, the top and bottom surfaces move in their separate velocity fields. The setting for <tt>(method)</tt> determines only how the crack plane particles move. The two methods are equivalent for well defined cracks, but may give different results in some problems. Thus, if crack position seems to cause a problem, one possibility is to repeat the analysis with the other <tt>(method)</tt> option. | |||
Similarly, both <tt>(prevent)</tt> settings are equivalent for well behaved cracks (because surfaces of such cracks tend to not pass through crack planes). If a simulation has problems tracking surfaces, you can try setting <tt>(prevent)</tt> to '<tt>yes</tt>' to see how it changes. The '<tt>no</tt>' setting is faster because it does not need to check crack surfaces on each time step. | |||
== References == | == References == | ||
<references/> | <references> | ||
<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 & Sciences</i>, <b>6</b>, 295-308 (2004). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/MPMTwoDJ.pdf See PDF])</ref> | |||
</references> |
Latest revision as of 13:56, 26 April 2024
Whenever an MPM simulation has explicit cracks, you can use the commands in this section to customize various features of how the cracks are modeled in NairnMPM.
Crack Settings Commands
In scripted files, crack properties are controlled by any number of these possible commands
Propagate (crit),<(dir)>,<(traction)> AltPropagate (crit),<(dir)>,<(traction)> ProagateLength (relLength) JContour (size),<(terms)>,<(usegrid)> ContactCracks (lawID) ContactPositionCracks (cutoff) MovePlane (method),<(prevent)>
In XML input file, all global crack setting commands are within a <Cracks> element that must be within the <MPMHeader> element:
<Cracks> <Propagate criterion='(critNum)' direction='(dirNum)' traction='(traction)'/> <AltPropagate criterion='(critNum)' direction='(dirNum)' traction='(traction)'/> <PropagateLength>(relLength)</ProagateLength> <JContour size="(size)" terms="(terms)" gridenergy="(usegrid)"/> <Friction law='(lawnum)' lawname='(lawID)'/> <ContactPosition>(cutoff)</ContactPosition> <MovePlane type='(method)' prevent='(prevent)'/> </Cracks>
The functions of these commands (with links to more documentation) are:
- Propagate, AltPropagate, and PropagateLength commands - set crack propagation properties
- ContactCracks and <Friction> - set default crack surface contact mechanics
- JContour - customize J integral calculation
- ContactPositionCracks - change method used to detect crack surface contact
- MovePlane - set method to update crack plane position
Crack Propagation Properties
The commands to control crack propagation criterion and direction are described in a separate help topic on Crack Propagation Commands.
Crack Contact Properties
Crack surface can use any contact law to model crack surface contact as either frictional sliding or use the crack to model an imperfect interface. Note that if the crack is defined with traction laws, or if it will create traction laws during propagation, the crack must be set to use frictionless sliding (this setting will be done automatically if not done explicitly)
J Integral Contour Settings
The JContour command is used to set the size of the path used for evaluating J integral and control the number of terms used in the process. The details are:
- (size) - the J integral is evaluated on a rectangular contour center on the grid node closet to the crack tip (see blue line in the figure). The (size) setting is the semi-length for the sides of the rectangle. The default value is 2 (as shown in the figure).
- (terms) - this optional parameter should be set to 1 or 2 to specify if the J Integral should be a simple contour (1) or include an area integral inside the contour (2). The area integral corrects for dynamic effects and for axisymmetric stress states making the calculation path independent even in dynamic problems, but is slower. A contour alone (1) might be enough if the size of the contour is small (e.g., (size)=2) and the loading is slow, but both contour and area might be essential as the problem becomes more dynamic or as the size of the contour grows. The default is 1, but for axisymmetric calculations, the area integral is needed even for static problems, and therefore the default changes to 2 terms.
- (usegrid) - this optional parameter should be set to 0 or 1 (or false or true in scripted files) to specify that kinetic energy and work energy (used in the J integration) are to be found by extrapolating particle energies (if 0 or false) or by extrapolating particle velocity, stress, and strain and than calculating energies from these grid results (if 1 or true). The default is to use particle energies (o or true). In general, the particle energies are preferred (and hence is the default). In some dynamic problems, particle kinetic energies can develop spurious noise that affect J integral calculations. In such problems, using grid energy might be better. The drawbacks of grid energies, however, are that work energy appears to be less accurate and that calculation of work energy from extrapolated stress and strain is only valid for small strain, linear elastic materials. In brief, the grid energy method should only be used for small-stain, linear elastic problems and then only when dynamic effects appear to be corrupting the results. Otherwise particle energies are preferred.
More details on J integral evaluation and on the two J integral terms are given in Guo and Nairn (2006).[1]
Crack ContactPosition Command
This command influences the way cracks detect contact between the crack surfaces. Its function and use are described here.
Crack Plane Updating
The MovePlane command determines how a crack plane moves and whether or not crack surfaces can cross crack planes. In scripted files, the command is
MovePlane (method),<(prevent)>
In XML files, the command is:
<MovePlane type='(method)' prevent='(prevent)'/>
where
- (method) is 'avg' to move the crack plane to the midpoint of the top and bottom surfaces or 'cm' to move the crack plane in the center of mass velocity field. The default method is 'avg'.
- (prevent) is 'yes' or 'no' to prevent or allow crack surfaces to cross the main crack plane. The default setting is 'no'.
For all cracks, the top and bottom surfaces move in their separate velocity fields. The setting for (method) determines only how the crack plane particles move. The two methods are equivalent for well defined cracks, but may give different results in some problems. Thus, if crack position seems to cause a problem, one possibility is to repeat the analysis with the other (method) option.
Similarly, both (prevent) settings are equivalent for well behaved cracks (because surfaces of such cracks tend to not pass through crack planes). If a simulation has problems tracking surfaces, you can try setting (prevent) to 'yes' to see how it changes. The 'no' setting is faster because it does not need to check crack surfaces on each time step.