http://osupdocs.forestry.oregonstate.edu/api.php?action=feedcontributions&user=Nairnj&feedformat=atomOSUPDOCS - User contributions [en]2024-03-28T12:26:49ZUser contributionsMediaWiki 1.36.2http://osupdocs.forestry.oregonstate.edu/index.php?title=Transversely_Isotropic_Viscoelastic_Material&diff=9916Transversely Isotropic Viscoelastic Material2024-03-19T23:50:12Z<p>Nairnj: /* Fibrous Materials */</p>
<hr />
<div>__TOC__<br />
== Constitutive Law ==<br />
<br />
This anisotropic [[Material Models|MPM material]] is a [[Material Models#Viscoelastic Materials|small strain, linear viscoelastic material]] that extends the [[Viscoelastic Material]] to model anisotropic viscoelasticity. The stress (&sigma;) and strain (&epsilon;) are related by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\sigma(t) = \mathbf{C}(t) * \varepsilon(t)</math><br />
<br />
Here <math>*</math> indicates convolution (or Boltzman's superposition) between time-dependent stiffness tensor (<math>\mathbf{C}(t)</math>) and strain tensor. In Voight-notation with unique axis in the ''z'' direction, the time-dependent stiffness tensor is<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\mathbf{C}(t) = \left[\begin{array}{cccccc}<br />
K_T(t)+G_T(t) & K_T(t)-G_T(t) & \ell(t) & 0 & 0 & 0 \\<br />
K_T(t)-G_T(t) & K_T(t)+G_T(t) & \ell(t) & 0 & 0 & 0 \\<br />
\ell(t) & \ell(t) & n(t) & 0 & 0 & 0 \\<br />
0 & 0 & 0 & G_A(t) & 0 & 0 \\<br />
0 & 0 & 0 & 0 & G_A(t) & 0 \\<br />
0 & 0 & 0 & 0 & 0 & G_T(t)<br />
\end{array}\right]</math><br />
<br />
Here <math>K_T(t)</math> is the plane strain, bulk modulus, <math>G_T(t)</math> is the transverse shear modulus, <math>G_A(t)</math> is the axial shear modulus, and <math>n(t)</math> and <math>\ell(t)</math> give time-dependence of the ''C<sub>33</sub>'' and ''C<sub>13</sub>=C<sub>23</sub>'' elements of the stiffness tensor (as [[Transversely Isotropic Material|defined here]]). The time dependence of each property is modeled with a sum of exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K_T(t) = K_{T0} + \sum_{k=1}^{N_{KT}} K_{Tk} e^{-t/\tau_{KT,k}}<br />
\qquad<br />
G_T(t) = G_{T0} + \sum_{k=1}^{N_{GT}} G_{Tk} e^{-t/\tau_{GT,k}}<br />
\qquad<br />
G_A(t) = G_{A0} + \sum_{k=1}^{N_{GA}} G_{Ak} e^{-t/\tau_{GA,k}}</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>n(t) = n_0 + \sum_{k=1}^{N_n} n_k e^{-t/\tau_{n,k}}<br />
\qquad\qquad<br />
\ell(t) = \ell_0 + \sum_{k=1}^{N_\ell} \ell_k e^{-t/\tau_{\ell,k}}</math><br />
<br />
In terms of axial modulus <math>E_A</math>, and Poisson's ratio, <math>\nu_A</math>, we can write:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>n(t) = E_A(t) + 4K_T(t)\nu_A(t)^2<br />
\qquad\qquad<br />
\ell(t) = 4K_T(t)\nu_A(t)</math><br />
<br />
This material lumps all these time dependencies into <math>n(t)</math> and <math>\ell(t)</math>, but note that selection of those properties will determine time dependencies of <math>E_A(t)</math> and <math>\nu_A(t)</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\nu_A(t) = {\ell(t)\over 2K_T(t)}<br />
\qquad {\rm and} \qquad<br />
E_A(t) = n(t) - \frac{\ell(t)^2}{K_T(t)}<br />
</math><br />
<br />
=== Rotated Material Axes ===<br />
<br />
The initial axial direction is along the ''z'' axis (or &theta; axis for axisymmetric calculations). The axial direction can be changed to any other direction using the same method used to orient [[Transversely Isotropic Material#Rotated Material Axes|transversely isotropic elastic material]] with the <tt>swapz</tt> material property.<br />
<br />
=== Isotropic with Time-Dependent Bulk Modulus ===<br />
<br />
The available [[Viscoelastic Material|isotropic viscoelastic]] material is limited to materials with time-independent bulk modulus because that is a good approximation for most isotropic, viscoelastic materials. These transversely-isotropic materials, however, do not place any restrictions on which properties are time dependent. As result, it can model an isotropic material with a time-dependent bulk modulus as a special case. Imagine an isotropic material with ''K(t)'' and ''G(t)'' as time-dependent bulk and shear moduli, respectively. To model using a transversely isotropic material, choose ''G<sub>A</sub>(t) = G<sub>T</sub>(t) = G(t)'' along with:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K_T(t) = K(t) + \frac{G_T(t)}{3},\quad n(t)= K(t) + \frac{4G_T(t)}{3},\quad {\rm and}\quad<br />
\ell(t) = K(t) - \frac{2G_T(t)}{3}</math><br />
<br />
Finally, any other material properties (such as thermal expansion coefficients) should be set to the special cases for an isotropic material.<br />
<br />
== Effective Time Implementation ==<br />
<br />
This material handles variations in temperature and solvent concentration by the same methods used for [[Viscoelastic Material#Effective Time Implementation|isotropic viscoelastic materials]].<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple terms to define the exponential series used for up to five material properties.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| GT0 || The long term (or fully-relaxed) transverse shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| GA0 || The long term (or fully-relaxed) axial shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| KT0 || The long term (or fully-relaxed) plane-strain bulk modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| en0 || The long term (or fully-relaxed) ''C<sub>33</sub>'' element of the stiffness tensor || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ell0 || The long term (or fully-relaxed) ''C<sub>13</sub>=C<sub>23</sub>'' elements of the stiffness tensor || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntaus || The number of relaxation times of the previous long-term property that was entered. This property is only needed in <tt>XML</tt> files and must come before any subsequent Pk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Pk || The next property in the series for the previous long-term property that was entered. Use multiple Pk values for each term on the series. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next relaxation time in the series for the previous long-term property that was entered. Enter multiple tauk values for each term on the series. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times. If the entered value is negative, the thermal shift switches to Arrhenious activation energy with ''&Delta;H<sub>a</sub> = -RC<sub>1</sub>'', || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times (not used if ''C<sub>1</sub>'' is negative). || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| [[Transversely Isotropic Material#Material Properties|TI Properties]] || Enter thermal expansion, solvent expansion, and poroelasticity properties as usual for transversely isotropic materials. || varies || varies<br />
|-<br />
| swapz || Set to &gt;0 to move axial direction from ''z'' axis to the ''y'' axis (or from &theta; axis to ''Z'' axis in axisymmetric calculations). This property is only needed for 2D simulations that want axial direction in the analysis plane (it is not allowed in 3D MPM simulations). || none || 0<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The material properties need to define the time dependence 5 properties. The process for each one is to enter the long-term value first (GT0, GA0, KT0, en0, ell0) and then to follow each one by ntaus (only needed in <tt>XML</tt> files) and by one Pk and tauk value for each term in the series. Elastic value, or the property values at time zero, are sums of all Pk terms for that property. For example:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_T(0) = G_{T0} + \sum_{k=1}^{N_{GT}} G_{Tk}<br />
</math><br />
<br />
Other elastic properties are given by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\nu_A(0) = {\ell(0)\over 2K_T(0)}<br />
\qquad {\rm and} \qquad<br />
E_A(0) = n(0) - 4K_T(0)\nu_A^2 = n(0) - \frac{\ell(0)^2}{K_T(0)}<br />
</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\frac{1}{E_T(0)} = \frac{1}{4K_T(0)} +\frac{1}{4G_T(0)} + {\nu_A(0)^2\over E_A(0)}<br />
\qquad {\rm and} \qquad<br />
\nu_T(0) = \frac{E_T(0)}{2G_T(0)}-1<br />
</math><br />
<br />
For valid modeling, the initial Poisson's ratios must satisfy<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>-1<\nu_T(0)<1 \qquad -\sqrt{E_A(0)\over E_T(0)} < \nu_A(0) < \sqrt{E_A(0)\over E_T(0)} \qquad<br />
{E_T(0)\nu_A(0)^2\over E_A(0)} < {1-\nu_T(0)\over 2}</math><br />
<br />
These relations must apply for all time, but only the initial values are validated before starting a simulation.<br />
<br />
=== Deprecated Material Properties ===<br />
<br />
Prior to the <tt>swapz</tt> material property, there were two types on transversely isotropic viscoelastic materials named "TIViscoelastic 1" and "TIViscoelastic 2". Although these can still be used as the material type, they are deprecated. The prior "TIViscoelastic 1" is identical to this material with <tt>swapz=0</tt>. The prior "TIViscoelastic 2" material is identical to this material with <tt>swapz=1</tt>.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
== Example ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Transversely_Isotropic_Viscoelastic_Material&diff=9915Transversely Isotropic Viscoelastic Material2024-03-19T23:49:16Z<p>Nairnj: /* Material Properties */</p>
<hr />
<div>__TOC__<br />
== Constitutive Law ==<br />
<br />
This anisotropic [[Material Models|MPM material]] is a [[Material Models#Viscoelastic Materials|small strain, linear viscoelastic material]] that extends the [[Viscoelastic Material]] to model anisotropic viscoelasticity. The stress (&sigma;) and strain (&epsilon;) are related by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\sigma(t) = \mathbf{C}(t) * \varepsilon(t)</math><br />
<br />
Here <math>*</math> indicates convolution (or Boltzman's superposition) between time-dependent stiffness tensor (<math>\mathbf{C}(t)</math>) and strain tensor. In Voight-notation with unique axis in the ''z'' direction, the time-dependent stiffness tensor is<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\mathbf{C}(t) = \left[\begin{array}{cccccc}<br />
K_T(t)+G_T(t) & K_T(t)-G_T(t) & \ell(t) & 0 & 0 & 0 \\<br />
K_T(t)-G_T(t) & K_T(t)+G_T(t) & \ell(t) & 0 & 0 & 0 \\<br />
\ell(t) & \ell(t) & n(t) & 0 & 0 & 0 \\<br />
0 & 0 & 0 & G_A(t) & 0 & 0 \\<br />
0 & 0 & 0 & 0 & G_A(t) & 0 \\<br />
0 & 0 & 0 & 0 & 0 & G_T(t)<br />
\end{array}\right]</math><br />
<br />
Here <math>K_T(t)</math> is the plane strain, bulk modulus, <math>G_T(t)</math> is the transverse shear modulus, <math>G_A(t)</math> is the axial shear modulus, and <math>n(t)</math> and <math>\ell(t)</math> give time-dependence of the ''C<sub>33</sub>'' and ''C<sub>13</sub>=C<sub>23</sub>'' elements of the stiffness tensor (as [[Transversely Isotropic Material|defined here]]). The time dependence of each property is modeled with a sum of exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K_T(t) = K_{T0} + \sum_{k=1}^{N_{KT}} K_{Tk} e^{-t/\tau_{KT,k}}<br />
\qquad<br />
G_T(t) = G_{T0} + \sum_{k=1}^{N_{GT}} G_{Tk} e^{-t/\tau_{GT,k}}<br />
\qquad<br />
G_A(t) = G_{A0} + \sum_{k=1}^{N_{GA}} G_{Ak} e^{-t/\tau_{GA,k}}</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>n(t) = n_0 + \sum_{k=1}^{N_n} n_k e^{-t/\tau_{n,k}}<br />
\qquad\qquad<br />
\ell(t) = \ell_0 + \sum_{k=1}^{N_\ell} \ell_k e^{-t/\tau_{\ell,k}}</math><br />
<br />
In terms of axial modulus <math>E_A</math>, and Poisson's ratio, <math>\nu_A</math>, we can write:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>n(t) = E_A(t) + 4K_T(t)\nu_A(t)^2<br />
\qquad\qquad<br />
\ell(t) = 4K_T(t)\nu_A(t)</math><br />
<br />
This material lumps all these time dependencies into <math>n(t)</math> and <math>\ell(t)</math>, but note that selection of those properties will determine time dependencies of <math>E_A(t)</math> and <math>\nu_A(t)</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\nu_A(t) = {\ell(t)\over 2K_T(t)}<br />
\qquad {\rm and} \qquad<br />
E_A(t) = n(t) - \frac{\ell(t)^2}{K_T(t)}<br />
</math><br />
<br />
=== Rotated Material Axes ===<br />
<br />
The initial axial direction is along the ''z'' axis (or &theta; axis for axisymmetric calculations). The axial direction can be changed to any other direction using the same method used to orient [[Transversely Isotropic Material#Rotated Material Axes|transversely isotropic elastic material]] with the <tt>swapz</tt> material property.<br />
<br />
=== Isotropic with Time-Dependent Bulk Modulus ===<br />
<br />
The available [[Viscoelastic Material|isotropic viscoelastic]] material is limited to materials with time-independent bulk modulus because that is a good approximation for most isotropic, viscoelastic materials. These transversely-isotropic materials, however, do not place any restrictions on which properties are time dependent. As result, it can model an isotropic material with a time-dependent bulk modulus as a special case. Imagine an isotropic material with ''K(t)'' and ''G(t)'' as time-dependent bulk and shear moduli, respectively. To model using a transversely isotropic material, choose ''G<sub>A</sub>(t) = G<sub>T</sub>(t) = G(t)'' along with:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K_T(t) = K(t) + \frac{G_T(t)}{3},\quad n(t)= K(t) + \frac{4G_T(t)}{3},\quad {\rm and}\quad<br />
\ell(t) = K(t) - \frac{2G_T(t)}{3}</math><br />
<br />
Finally, any other material properties (such as thermal expansion coefficients) should be set to the special cases for an isotropic material.<br />
<br />
=== Fibrous Materials ===<br />
<br />
A potential use for a transversely isotropic viscoelastic material is to model fiber-reinforced composites including wood (although transversely isotropic is not a great model for wood because it cannot represent low transverse shear modulus compared to radial and tangential transverse tensile moduli). If the axial direction is the fiber direction, one might expect that time dependence will be much weaker in the axial direction than in the transverse direction. This behavior could be approximated by setting <math>n</math> and <math>\ell</math> independent of time. Because an elastic material has <math>n=E_A+4K_T\nu_A^2</math> and <math>\ell = 2K_t\nu_A</math>, this approximation implies <math>E_A</math>, <math>K_T</math>, and <math>\nu_A</math> are all independent of time. The final result is that only <math>G_T(t)</math> and <math>G_A(t)</math> are time dependent. This model is one approximation, but would have zero creep in the axial direction and therefore no use in modeling that response (unless experiments also show zero creep).<br />
<br />
A second option might be to let <math>K_T(t)</math> depend on time while <math>E_A</math> and <math>\nu_A</math> remain independent of time. This approach does not work and results in non-physical response to axial loading. The problem appears that it predicts that <math>n(t)</math> decreases in time. For isotropic materials, <math>n(t)</math> increases in time and it also likely increases for fibrous materials as well. In brief, to model viscoelastic properties of fibrous material that might include effects in the axial direction, the modeling will need to input all five time-dependent properties allowed by this material. Those properties should be based on experimental observations.<br />
<br />
== Effective Time Implementation ==<br />
<br />
This material handles variations in temperature and solvent concentration by the same methods used for [[Viscoelastic Material#Effective Time Implementation|isotropic viscoelastic materials]].<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple terms to define the exponential series used for up to five material properties.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| GT0 || The long term (or fully-relaxed) transverse shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| GA0 || The long term (or fully-relaxed) axial shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| KT0 || The long term (or fully-relaxed) plane-strain bulk modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| en0 || The long term (or fully-relaxed) ''C<sub>33</sub>'' element of the stiffness tensor || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ell0 || The long term (or fully-relaxed) ''C<sub>13</sub>=C<sub>23</sub>'' elements of the stiffness tensor || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntaus || The number of relaxation times of the previous long-term property that was entered. This property is only needed in <tt>XML</tt> files and must come before any subsequent Pk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Pk || The next property in the series for the previous long-term property that was entered. Use multiple Pk values for each term on the series. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next relaxation time in the series for the previous long-term property that was entered. Enter multiple tauk values for each term on the series. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times. If the entered value is negative, the thermal shift switches to Arrhenious activation energy with ''&Delta;H<sub>a</sub> = -RC<sub>1</sub>'', || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times (not used if ''C<sub>1</sub>'' is negative). || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| [[Transversely Isotropic Material#Material Properties|TI Properties]] || Enter thermal expansion, solvent expansion, and poroelasticity properties as usual for transversely isotropic materials. || varies || varies<br />
|-<br />
| swapz || Set to &gt;0 to move axial direction from ''z'' axis to the ''y'' axis (or from &theta; axis to ''Z'' axis in axisymmetric calculations). This property is only needed for 2D simulations that want axial direction in the analysis plane (it is not allowed in 3D MPM simulations). || none || 0<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The material properties need to define the time dependence 5 properties. The process for each one is to enter the long-term value first (GT0, GA0, KT0, en0, ell0) and then to follow each one by ntaus (only needed in <tt>XML</tt> files) and by one Pk and tauk value for each term in the series. Elastic value, or the property values at time zero, are sums of all Pk terms for that property. For example:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_T(0) = G_{T0} + \sum_{k=1}^{N_{GT}} G_{Tk}<br />
</math><br />
<br />
Other elastic properties are given by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\nu_A(0) = {\ell(0)\over 2K_T(0)}<br />
\qquad {\rm and} \qquad<br />
E_A(0) = n(0) - 4K_T(0)\nu_A^2 = n(0) - \frac{\ell(0)^2}{K_T(0)}<br />
</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\frac{1}{E_T(0)} = \frac{1}{4K_T(0)} +\frac{1}{4G_T(0)} + {\nu_A(0)^2\over E_A(0)}<br />
\qquad {\rm and} \qquad<br />
\nu_T(0) = \frac{E_T(0)}{2G_T(0)}-1<br />
</math><br />
<br />
For valid modeling, the initial Poisson's ratios must satisfy<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>-1<\nu_T(0)<1 \qquad -\sqrt{E_A(0)\over E_T(0)} < \nu_A(0) < \sqrt{E_A(0)\over E_T(0)} \qquad<br />
{E_T(0)\nu_A(0)^2\over E_A(0)} < {1-\nu_T(0)\over 2}</math><br />
<br />
These relations must apply for all time, but only the initial values are validated before starting a simulation.<br />
<br />
=== Deprecated Material Properties ===<br />
<br />
Prior to the <tt>swapz</tt> material property, there were two types on transversely isotropic viscoelastic materials named "TIViscoelastic 1" and "TIViscoelastic 2". Although these can still be used as the material type, they are deprecated. The prior "TIViscoelastic 1" is identical to this material with <tt>swapz=0</tt>. The prior "TIViscoelastic 2" material is identical to this material with <tt>swapz=1</tt>.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
== Example ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9914Viscoelastic Material2024-03-19T23:48:22Z<p>Nairnj: /* Material Properties */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{C_2+T-T_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{C_4+T-T_{ref}}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
The WLF equations works near and above ''T<sub>g</sub>''. An option for simulations well below ''T<sub>g</sub>'' is to replace the non-Arrhenius response in the WLF equation with Arrhenius activation energy. The net result is an alternate shift factor:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \frac{\Delta H_a}{R\ln 10}\left(\frac{1}{T}-\frac{1}{T_{ref}}\right)</math><br />
<br />
where <math>\Delta H_a</math> is an apparent activation energy and ''R'' is the gas constant. This alternate shift factor is selected by setting ''C<sub>1</sub>'' to a negative number given by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_1 = -\frac{\Delta H_a}{R}</math><br />
<br />
in units of degrees K.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
If <math>C_{m1}</math> and <math>C_{m1}</math> are known at one <math>m_{ref}</math>, the shift relative to a new reference concentration, <math>m_{ref}'</math>, would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}'+m-m_{ref}'}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\quad{\rm where} \quad C_{m1}' = \frac{C_{m1}C_{m2}}{C_{m2}+m_{ref}'-m_{ref}} <br />
\quad{\rm and} \quad C_{m2}' = C_{m2} + m_{ref}'-m_{ref}</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}C_{m2}/(C_{m2}-c_{sat})</math> and <math>C_{m2}'= C_{m2}-c_{sat}</math>. The shift factor would vary from 0 to <math>-C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times. If the entered value is negative, the thermal shift switches to Arrhenious activation energy with ''&Delta;H<sub>a</sub> = -RC<sub>1</sub>'', || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times (not used if ''C<sub>1</sub>'' is negative). || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9913Viscoelastic Material2024-03-19T23:46:51Z<p>Nairnj: /* Material Properties */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{C_2+T-T_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{C_4+T-T_{ref}}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
The WLF equations works near and above ''T<sub>g</sub>''. An option for simulations well below ''T<sub>g</sub>'' is to replace the non-Arrhenius response in the WLF equation with Arrhenius activation energy. The net result is an alternate shift factor:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \frac{\Delta H_a}{R\ln 10}\left(\frac{1}{T}-\frac{1}{T_{ref}}\right)</math><br />
<br />
where <math>\Delta H_a</math> is an apparent activation energy and ''R'' is the gas constant. This alternate shift factor is selected by setting ''C<sub>1</sub>'' to a negative number given by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_1 = -\frac{\Delta H_a}{R}</math><br />
<br />
in units of degrees K.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
If <math>C_{m1}</math> and <math>C_{m1}</math> are known at one <math>m_{ref}</math>, the shift relative to a new reference concentration, <math>m_{ref}'</math>, would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}'+m-m_{ref}'}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\quad{\rm where} \quad C_{m1}' = \frac{C_{m1}C_{m2}}{C_{m2}+m_{ref}'-m_{ref}} <br />
\quad{\rm and} \quad C_{m2}' = C_{m2} + m_{ref}'-m_{ref}</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}C_{m2}/(C_{m2}-c_{sat})</math> and <math>C_{m2}'= C_{m2}-c_{sat}</math>. The shift factor would vary from 0 to <math>-C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times. If the entered value is negative, the thermal shift switches to Arrhenious activation energy with ''&Delta;H<sub>a</sub> = -RC<sub>1</sub>'', || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9912Viscoelastic Material2024-03-19T23:44:53Z<p>Nairnj: /* Variable Temperature */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{C_2+T-T_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{C_4+T-T_{ref}}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
The WLF equations works near and above ''T<sub>g</sub>''. An option for simulations well below ''T<sub>g</sub>'' is to replace the non-Arrhenius response in the WLF equation with Arrhenius activation energy. The net result is an alternate shift factor:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \frac{\Delta H_a}{R\ln 10}\left(\frac{1}{T}-\frac{1}{T_{ref}}\right)</math><br />
<br />
where <math>\Delta H_a</math> is an apparent activation energy and ''R'' is the gas constant. This alternate shift factor is selected by setting ''C<sub>1</sub>'' to a negative number given by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_1 = -\frac{\Delta H_a}{R}</math><br />
<br />
in units of degrees K.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
If <math>C_{m1}</math> and <math>C_{m1}</math> are known at one <math>m_{ref}</math>, the shift relative to a new reference concentration, <math>m_{ref}'</math>, would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}'+m-m_{ref}'}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\quad{\rm where} \quad C_{m1}' = \frac{C_{m1}C_{m2}}{C_{m2}+m_{ref}'-m_{ref}} <br />
\quad{\rm and} \quad C_{m2}' = C_{m2} + m_{ref}'-m_{ref}</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}C_{m2}/(C_{m2}-c_{sat})</math> and <math>C_{m2}'= C_{m2}-c_{sat}</math>. The shift factor would vary from 0 to <math>-C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9911Viscoelastic Material2024-03-19T23:44:02Z<p>Nairnj: /* Variable Temperature */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{C_2+T-T_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{C_4+T-T_{ref}}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
The WLF equations works near and above ''T<sub>g</sub>''. An option for simulations well below ''T<sub>g</sub>'' is to replace the non-Arrhenius response in the WLF equation with Arrhenius activation energy. The net result is an alternate shift factor:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \frac{\Delta H_a}{R\ln 10}\left(\frac{1}{T}-\frac{1}{T_{ref}}\right)</math><br />
<br />
where <math>\Delta H_a</math> is an apparent activation energy and ''R'' is the gas constant. This alternate shift factor is selected by setting ''C<sub>1</sub>'' to a negative number give by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_1 = -\frac{\Delta H_a}{R}</math><br />
<br />
in units of degrees K.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
If <math>C_{m1}</math> and <math>C_{m1}</math> are known at one <math>m_{ref}</math>, the shift relative to a new reference concentration, <math>m_{ref}'</math>, would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}'+m-m_{ref}'}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\quad{\rm where} \quad C_{m1}' = \frac{C_{m1}C_{m2}}{C_{m2}+m_{ref}'-m_{ref}} <br />
\quad{\rm and} \quad C_{m2}' = C_{m2} + m_{ref}'-m_{ref}</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}C_{m2}/(C_{m2}-c_{sat})</math> and <math>C_{m2}'= C_{m2}-c_{sat}</math>. The shift factor would vary from 0 to <math>-C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9910Viscoelastic Material2024-03-19T23:41:36Z<p>Nairnj: /* Variable Temperature */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{C_2+T-T_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{C_4+T-T_{ref}}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
The WLF equations works near and above ''T<sub>g</sub>''. An option for simulations well below ''T<sub>g</sub>'' is to replace the non-Arhennius reponse in the WLF equations with Arhennius activation energy. The next result is an alternate shift factor:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \frac{\Delta H_a}{R\ln 10}\left(\frac{1}{T}-\frac{1}{T_{ref}}\right)</math><br />
<br />
where <math>\Delta H_a</math> is an apparent activation energy and ''R'' is the gas constant. This alternate shift factor ised by setting ''C<sub>1</sub>'' to a negative number for the term<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_1 = -\frac{\Delta H_a}{R}</math><br />
<br />
in units of degrees K.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
If <math>C_{m1}</math> and <math>C_{m1}</math> are known at one <math>m_{ref}</math>, the shift relative to a new reference concentration, <math>m_{ref}'</math>, would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}'+m-m_{ref}'}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\quad{\rm where} \quad C_{m1}' = \frac{C_{m1}C_{m2}}{C_{m2}+m_{ref}'-m_{ref}} <br />
\quad{\rm and} \quad C_{m2}' = C_{m2} + m_{ref}'-m_{ref}</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}C_{m2}/(C_{m2}-c_{sat})</math> and <math>C_{m2}'= C_{m2}-c_{sat}</math>. The shift factor would vary from 0 to <math>-C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9909Viscoelastic Material2024-03-19T21:52:08Z<p>Nairnj: /* Variable Solvent Concentration */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{C_2+T-T_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{C_4+T-T_{ref}}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
If <math>C_{m1}</math> and <math>C_{m1}</math> are known at one <math>m_{ref}</math>, the shift relative to a new reference concentration, <math>m_{ref}'</math>, would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}'+m-m_{ref}'}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\quad{\rm where} \quad C_{m1}' = \frac{C_{m1}C_{m2}}{C_{m2}+m_{ref}'-m_{ref}} <br />
\quad{\rm and} \quad C_{m2}' = C_{m2} + m_{ref}'-m_{ref}</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}C_{m2}/(C_{m2}-c_{sat})</math> and <math>C_{m2}'= C_{m2}-c_{sat}</math>. The shift factor would vary from 0 to <math>-C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9908Viscoelastic Material2024-03-19T21:51:34Z<p>Nairnj: /* Variable Solvent Concentration */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{C_2+T-T_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{C_4+T-T_{ref}}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
If <math>C_{m1}</math> and <math>C_{m1}</math> are known at one <math>m_{ref}</math>, the shift relative to a new reference concentration, <math>m_{ref}'</math>, would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}'+m-m_{ref}'}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\quad{\rm where} \quad C_{m1}' = \frac{C_{m1}C_{m2}}{C_{m2}+m_{ref}'-m_{ref}} <br />
\quad{\rm and} \quad C_{m2}' = C_{m2} + m_{ref}'-m_{ref}</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}C_{m2}/(C_{m2}-c_{sat})</math> and <math>C_{m2}'= C_{m2}-c_{sat}</math>. The shift factor would vary from 0 to <math>-C_{m1}c_{sat}/C_{m2}-c_{sat})</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9907Viscoelastic Material2024-03-19T21:45:41Z<p>Nairnj: /* Variable Solvent Concentration */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{C_2+T-T_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{C_4+T-T_{ref}}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
If <math>C_{m1}</math> and <math>C_{m1}</math> are known at one <math>m_{ref}</math>, the shift relative to a new reference concentration, <math>m_{ref}'</math>, would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}'+m-m_{ref}'}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\quad{\rm where} \quad C_{m1}' = \frac{C_{m1}C_{m2}}{C_{m2}+m_{ref}'-m_{ref}} <br />
\quad{\rm and} \quad C_{m2}' = C_{m2} + m_{ref}'-m_{ref}</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/(C_{m2}-c_{sat})</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}(C_{m2}+c_{sat})/C_{m2}</math> and the shift factor would vary from 0 to <math>-C_{m1}c_{sat}/C_{m2}</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9906Viscoelastic Material2024-03-19T21:43:16Z<p>Nairnj: /* Variable Solvent Concentration */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{C_2+T-T_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{C_4+T-T_{ref}}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
If <math>C_{m1}</math> and <math>C_{m1}</math> are known at one <math>m_{ref}</math>, the shift relative to a new reference concentration, <math>m_{ref}'</math>, would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}'+m-m_{ref}'}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\quad{\rm where} \quad C_{m1}' = \frac{C_{m1}C_{m2}}{C_{m2}+m_{ref}'-m_{ref}} <br />
\quad{\rm and} \quad C_{m2}' = C_{m2} + m_{ref}'-m_{ref}</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/C_{m2}</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}(C_{m2}+c_{sat})/C_{m2}</math> and the shift factor would vary from 0 to <math>-C_{m1}c_{sat}/C_{m2}</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9905Viscoelastic Material2024-03-19T21:43:00Z<p>Nairnj: /* Variable Solvent Concentration */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{C_2+T-T_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{C_4+T-T_{ref}}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
If <math>C_{m1}</math> and <math>C_{m1}</math> are known at one <math>m_{ref}</math>, the shift relative to a new reference concentration, <math>m_{ref}'</math>, would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}'+m-m_{ref}'}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\quad{\rm where} \quad C_{m1}' = \frac{C_{m1}C_{m2}}{C_{m2}+m_{ref}'-m_{ref}} <br />
\quad{\rm where} \quad C_{m2}' = C_{m2} + m_{ref}'-m_{ref}</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/C_{m2}</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}(C_{m2}+c_{sat})/C_{m2}</math> and the shift factor would vary from 0 to <math>-C_{m1}c_{sat}/C_{m2}</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9904Viscoelastic Material2024-03-19T21:42:09Z<p>Nairnj: /* Variable Solvent Concentration */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{C_2+T-T_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{C_4+T-T_{ref}}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
If <math>C_{m1}</math> and <math>C_{m1}</math> are known at one <math>m_{ref}</math>, the shift relative to a new reference concentration, <math>m_{ref}'</math>, would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}'+m-m_{ref}'}<br />
\quad{\rm where} \quad C_{m1}' = \frac{C_{m1}C_{m2}}{C_{m2}+m_{ref}'-m_{ref}} <br />
\quad{\rm where} \quad C_{m2}' = C_{m2} + m_{ref}'-m_{ref}<br />
</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/C_{m2}</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}(C_{m2}+c_{sat})/C_{m2}</math> and the shift factor would vary from 0 to <math>-C_{m1}c_{sat}/C_{m2}</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9903Viscoelastic Material2024-03-19T21:37:26Z<p>Nairnj: /* Variable Solvent Concentration */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{C_2+T-T_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{C_4+T-T_{ref}}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
If <math>C_{m1}</math> and <math>C_{m1}</math> are known at one <math>m_{ref}</math>, the shift relative to a new reference concentration, <math>m_{ref}'</math>, would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}'+m-m_{ref}'}<br />
\quad{\rm where} \quad C_{m1}' = \frac{C_{m1}(C_{m2}+m_{ref})}{C_{m2}+m_{ref}'} <br />
\quad{\rm where} \quad C_{m2}' = C_{m1} + m_{ref}-m_{ref}'<br />
</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/C_{m2}</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}(C_{m2}+c_{sat})/C_{m2}</math> and the shift factor would vary from 0 to <math>-C_{m1}c_{sat}/C_{m2}</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9902Viscoelastic Material2024-03-19T21:33:07Z<p>Nairnj: /* Variable Temperature */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{C_2+T-T_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{C_4+T-T_{ref}}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
Based on free-value arguments, a reasonable estimate for <math>C_{m2}</math> is:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_{m2} = \frac{f_0}{\beta_V}</math><br />
<br />
where <math>f_0</math> is fraction free volume with zero solvent constant (''e.g.'', 0.025 often assumed for polymers in the glassy state) and <math>\beta_V</math> is the volumetric solvent expansion coefficient. To prevent ''a<sub>m</sub>'' for being infinite for any amount of solvent content, ''C<sub>m2</sub>'' must be positive.<br />
<br />
If <math>C_{m1}</math> is known at one <math>m_{ref}</math>, the value at a new reference concentration, <math>m_{ref}'</math> would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_{m1}' = \frac{C_{m1}(C_{m2}+m_{ref})}{C_{m2}+m_{ref}'} \quad{\rm where} \quad <br />
\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}+m}</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/C_{m2}</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}(C_{m2}+c_{sat})/C_{m2}</math> and the shift factor would vary from 0 to <math>-C_{m1}c_{sat}/C_{m2}</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9901Viscoelastic Material2024-03-19T21:31:30Z<p>Nairnj: /* Variable Solvent Concentration */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{T-T_{ref}+C_2}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{T-T_{ref}+C_4}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{C_{m2}+m-m_{ref}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
Based on free-value arguments, a reasonable estimate for <math>C_{m2}</math> is:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_{m2} = \frac{f_0}{\beta_V}</math><br />
<br />
where <math>f_0</math> is fraction free volume with zero solvent constant (''e.g.'', 0.025 often assumed for polymers in the glassy state) and <math>\beta_V</math> is the volumetric solvent expansion coefficient. To prevent ''a<sub>m</sub>'' for being infinite for any amount of solvent content, ''C<sub>m2</sub>'' must be positive.<br />
<br />
If <math>C_{m1}</math> is known at one <math>m_{ref}</math>, the value at a new reference concentration, <math>m_{ref}'</math> would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_{m1}' = \frac{C_{m1}(C_{m2}+m_{ref})}{C_{m2}+m_{ref}'} \quad{\rm where} \quad <br />
\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}+m}</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/C_{m2}</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}(C_{m2}+c_{sat})/C_{m2}</math> and the shift factor would vary from 0 to <math>-C_{m1}c_{sat}/C_{m2}</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Viscoelastic_Material&diff=9900Viscoelastic Material2024-03-19T21:30:51Z<p>Nairnj: /* Variable Solvent Concentration */</p>
<hr />
<div>== Constitutive Laws ==<br />
<br />
This [[Material Models|MPM material]] has separate constitutive laws for deviatoric stress and pressure.<br />
<br />
=== Deviatoric Constitutive Law ===<br />
<br />
The deviatoric constitutive law is always a small-strain, linear viscoelastic material with time-dependent shear modulus, ''G''(''t''), which is given by a sum of ''n'' exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/\tau_i}</math><br />
<br />
Here ''G''<sub>0</sub> is the long-time shear modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(0) = \sum_{i=0}^n G_i</math><br />
<br />
The updates for components of the deviatoric stress become<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>ds_{ij} = 2\left( G(0) de_{ij} - \sum_{k=1}^n G_k d\alpha_{ij,k} \right)</math><br />
<br />
where &alpha;<sub>ij,k</sub> are a series of internal variables that are tracked in history variables on each particle.<br />
<br />
=== Pressure Constitutive Law ===<br />
<br />
The pressure constitutive law has two options. The first in to use a small strain linear viscoelastic law time-dependent bulk modulus of<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(t) = K_0 + \sum_{i=1}^n K_i e^{-t/\tau_i}</math><br />
<br />
Here ''K''<sub>0</sub> is the long-time bulk modulus and the short-time shear modulus is the sum:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K(0) = \sum_{i=0}^n K_i</math><br />
<br />
The pressure update becomes<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>dP = - K(0)(de_{ii} - 3d\varepsilon_{res}) + \sum_{k=1}^n K_k d\alpha_{V,k}</math><br />
<br />
where <math>de_{ii}</math> is increment volumetric strain and <math>d\varepsilon_{res}</math> accounts for thermal and solvent expansion effects (the thermal and solvent expansion coefficients are assumed to be independent of time). The<br />
<math>\alpha_{V,k}</math> are a series of internal variables that are tracked on each particle. To use this law, which is the default pressure law, set <tt>pressureLaw</tt> to 0 and enter all bulk moduli properties. For time-independent bulk modulus, enter ''K<sub>0</sub>'' but no relaxation times. The bulk modulus relaxation times can differ from the shear modulus relaxation times.<br />
<br />
The second option is to use then [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Mie-Grüneisen Equation of State|Mie-Grüneisen equation of state (MGEOS)]]. To use this law, set <tt>pressureLaw</tt> to 1 and enter the MGEOS properties. The pressure law models a non-linear elastic bulk modulus but cannot model time dependence of the bulk modulus.<br />
<br />
=== Plane Stress Analysis ===<br />
<br />
This material can be used in plane stress analysis, but only if it uses the linear pressure law (<tt>pressureLaw=0</tt>) and it does not add [[Common Material Properties#Artificial Viscosity|artificial viscosity]]. Support for plane stress in other conditions may be provided soon.<br />
<br />
== Effective Time Implementation ==<br />
<br />
The above constitutive law assumes ''G(t)'' depends only on time, but in real materials, it will depend strongly on temperature. When modeling diffusion with solvent concentration, it may depend on solvent concentration as well. These dependencies are modeling by assuming the material obeys time-temperature and time-solvent superposition whereby ''G(t)'' is given by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G(t) = G_0 + \sum_{i=1}^n G_i e^{-t/(a\tau_i)}</math><br />
<br />
where ''a'' is a shift factor. In other words, the coefficients of ''G(t)'' remain constant, but the relaxation times shift by a factor ''a''. Furthermore, all relaxation times are assumed to shift by the same factor. We are led to define a reduced time:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>t_r = \int_0^t \frac{dt}{a} \quad{\rm and}\quad \Delta t_r = \int_t^{t+\Delta t} \frac{dt}{a}</math><br />
<br />
is the effect time increment corresponding to actual time step <math>\Delta t</math>.<br />
The above constitutive law can then be extended to variable environments by converting convolution integrals to integrals over reduced or effective time. To implement this modeling, the material methods need input for ''a'' as a function of environment. When both temperature and solvent vary, ''a'' is replaced by ''a<sub>T</sub>a<sub>m</sub>'' or product of thermal and moisture (''i.e.'', solvent) shift factors. These shift factors are explained in the next two sections. <br />
<br />
=== Variable Temperature ===<br />
<br />
For temperature variations, ''a<sub>T</sub>'' is the thermal shift factor. In polymer materials, this shift factor is approximated by the WLF equation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_1(T-T_{ref})}{T-T_{ref}+C_2}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt>. In polymer materials, if ''T<sub>ref</sub>''=''T<sub>g</sub>'', or the glass transition temperature, ''C''<sub>1</sub>=17.44 and ''C''<sub>2</sub>=51.6 are average values over a range of polymers (the values for one specific polymer, however, may vary significantly). If ''T<sub>ref</sub>'' differs from ''T<sub>g</sub>'', it can be used in a shifted WLF equation using ''C''<sub>3</sub> and ''C''<sub>4</sub> defined from ''C''<sub>1</sub> and ''C''<sub>2</sub> at ''T<sub>g</sub>'' by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_T = \log \frac{\tau(T)}{\tau(T_{ref})} = - \frac{C_3(T-T_{ref})}{T-T_{ref}+C_4}</math><br />
<br />
where<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_3 = \frac{C_1C_2}{C_2+T_{ref}-T_g} \quad{\rm and}\quad C_4 = C_2+T_{ref}-T_g</math><br />
<br />
Notice that <math>\log a_T\to\infty</math> as <math>T\to T_{ref}-C_2</math> (''e.g.'', if ''T'' reaches ''T<sub>g</sub>-51.6'' for an average polymer). This condition corresponds to infinite relaxation time and this material will respond as an elastic material for any temperature below this limit. Real materials may still have viscoelasticity effects, but those effects are not well modeled by extrapolating from ''T<sub>g</sub>'' to far below ''T<sub>g</sub>'' using the WLF equation. Observed low-temperature viscoelasticity can be modeled by adjusting <tt>Tref</tt>, <tt>C1</tt>, and <tt>C2</tt> to described measured relaxations over any temperature range of interest.<br />
<br />
=== Variable Solvent Concentration ===<br />
<br />
For concentration variations, ''a<sub>m</sub>'' is the solvent shift factor. In absence of a WLF equation, the solvent shift is modeled using a WLF-style equation based on assumption that solvent expansion leads to free volume that promotes relaxation:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\log a_m = \log \frac{\tau(m)}{\tau(m_{ref})} = - \frac{C_{m1}(m-m_{ref})}{m+C_{m2}}</math><br />
<br />
This shift factor is implemented in simulations by entering <tt>mref</tt>, <tt>Cm1</tt>, and <tt>Cm2</tt>. Note that unlike the WLF equation, this equation does not include <math>m_{ref}</math> in the denominator.<br />
<br />
Based on free-value arguments, a reasonable estimate for <math>C_{m2}</math> is:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_{m2} = \frac{f_0}{\beta_V}</math><br />
<br />
where <math>f_0</math> is fraction free volume with zero solvent constant (''e.g.'', 0.025 often assumed for polymers in the glassy state) and <math>\beta_V</math> is the volumetric solvent expansion coefficient. To prevent ''a<sub>m</sub>'' for being infinite for any amount of solvent content, ''C<sub>m2</sub>'' must be positive.<br />
<br />
If <math>C_{m1}</math> is known at one <math>m_{ref}</math>, the value at a new reference concentration, <math>m_{ref}'</math> would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>C_{m1}' = \frac{C_{m1}(C_{m2}+m_{ref})}{C_{m2}+m_{ref}'} \quad{\rm where} \quad <br />
\log a_m = \log \frac{\tau(m)}{\tau(m_{ref}')} = - \frac{C_{m1}'(m-m_{ref}')}{C_{m2}+m-m_{ref}}</math><br />
<br />
For example, if <math>m_{ref}=c_{sat}</math>, which is likely the condition with the shortest relaxation time, the shift factor would vary from <math>C_{m1}c_{sat}/C_{m2}</math> to 0 between zero and saturation solvent conditions. But, if one switched to <math>m_{ref}'=0</math>, one would find <math>C_{m1}'= C_{m1}(C_{m2}+c_{sat})/C_{m2}</math> and the shift factor would vary from 0 to <math>-C_{m1}c_{sat}/C_{m2}</math> between zero and saturation solvent conditions (''i.e.'', same relative change as when using <math>m_{ref}=c_{sat}</math>).<br />
<br />
Simulations to include solvent effects on relaxations times must activate [[Diffusion Calculations]], and enter [[Common Material Properties|material properties]] for saturation concentration, solvent expansion coefficient, and diffusion constants. Even constant-concentration simulations must activate diffusion calculations. To use constant concentration, set all particles to the same concentration (such that no diffusion occurs).<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple Gk and tauk properties (all with the same property name) to enter a material with multiple relaxation times.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| G0 || The long term (or fully-relaxed) shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || 0<br />
|-<br />
| ntaus || The number of shear modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Gk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Gk || The shear modulus for the next relaxation time. Enter multiple Gk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next shear modulus relaxation time. Enter multiple tauk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| pressureLaw || Picks the constitutive law used for time independent pressure. The options are 0 to use linear viscoelastic law and 1 to use MGEOS equation of state. || none || 0<br />
|-<br />
| K || Time-independent bulk modulus (when using linear viscoelastic law) || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntausK || The number of bulk modulus relaxation times. This property is only needed in <tt>XML</tt> files and must come before any Kk or tauKk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Kk || The bulk modulus for the next relaxation time. Enter multiple Kk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauKk || The next bulk modulus relaxation time. Enter multiple tauKk properties to have multiple relaxation times. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| [[Isotropic, Hyperelastic-Plastic Mie-Grüneisen Material#Material Properties|(MGEOS)]] || Enter MGEOS properties C0, S1, S2, S3, gamma, and Kmax. The UJOption is fixed at 1. || varies || varies<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| alpha || Thermal expansion coefficient (ignored when using MGEOS law) || ppm/K || 40<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The total number of Gk and tauk properies must be equal. In <tt>XML</tt> files, that total number must match the supplied ntaus property.<br />
<br />
The default value for <tt>Kmax</tt> is -1, which means to not limit the bulk modulus. This mode is almost always stable, but simulations with high compression should always add the [[AdjustTimeStep Custom Task]] to keep calculation stable under high tangent bulk modulus conditions.<br />
<br />
=== Viscoelastic Solids and Liquids ===<br />
<br />
If <tt>G0</tt> is not zero, the material is a viscoelastic solid, which means the shear stress at infinite time reamains a finite number. Viscoelastic solids are used to model materials such as elastomers that do not show long time flow due to their cross links or have a plateau shear modulus equal to <tt>G0</tt>.<br />
<br />
If <tt>G0</tt> is zero, the material is a viscoelastic liquid that will flow like a liquid if you wait long enough. For example, to emulate a liquid (''i.e.'', similar to a [[Tait Liquid Material]]), set <tt>G0</tt> to zero, use a single relaxation time with <tt>tauk</tt> short (on time scale of the simulation), and set the one <tt>Gk</tt> modulus to:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_1 = {\eta\over 2\tau_1}</math><br />
<br />
where <math>\eta</math> is desired viscosity and <math>\tau_1</math> is the single relaxation time.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
This material also tracks J (total relative volume change) and J<sub>res</sub> (volume change of free expansion state) as history variables 1 and 2. Note that J<sub>res</sub> is only needed, and therefore only tracked, when using MGEOS for pressure constitutive law (when <tt>pressureLaw</tt> is 1). If not tracked, it is always 1.<br />
<br />
== Examples ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Transversely_Isotropic_Viscoelastic_Material&diff=9899Transversely Isotropic Viscoelastic Material2024-03-19T20:19:25Z<p>Nairnj: /* Material Properties */</p>
<hr />
<div>__TOC__<br />
== Constitutive Law ==<br />
<br />
This anisotropic [[Material Models|MPM material]] is a [[Material Models#Viscoelastic Materials|small strain, linear viscoelastic material]] that extends the [[Viscoelastic Material]] to model anisotropic viscoelasticity. The stress (&sigma;) and strain (&epsilon;) are related by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\sigma(t) = \mathbf{C}(t) * \varepsilon(t)</math><br />
<br />
Here <math>*</math> indicates convolution (or Boltzman's superposition) between time-dependent stiffness tensor (<math>\mathbf{C}(t)</math>) and strain tensor. In Voight-notation with unique axis in the ''z'' direction, the time-dependent stiffness tensor is<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\mathbf{C}(t) = \left[\begin{array}{cccccc}<br />
K_T(t)+G_T(t) & K_T(t)-G_T(t) & \ell(t) & 0 & 0 & 0 \\<br />
K_T(t)-G_T(t) & K_T(t)+G_T(t) & \ell(t) & 0 & 0 & 0 \\<br />
\ell(t) & \ell(t) & n(t) & 0 & 0 & 0 \\<br />
0 & 0 & 0 & G_A(t) & 0 & 0 \\<br />
0 & 0 & 0 & 0 & G_A(t) & 0 \\<br />
0 & 0 & 0 & 0 & 0 & G_T(t)<br />
\end{array}\right]</math><br />
<br />
Here <math>K_T(t)</math> is the plane strain, bulk modulus, <math>G_T(t)</math> is the transverse shear modulus, <math>G_A(t)</math> is the axial shear modulus, and <math>n(t)</math> and <math>\ell(t)</math> give time-dependence of the ''C<sub>33</sub>'' and ''C<sub>13</sub>=C<sub>23</sub>'' elements of the stiffness tensor (as [[Transversely Isotropic Material|defined here]]). The time dependence of each property is modeled with a sum of exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K_T(t) = K_{T0} + \sum_{k=1}^{N_{KT}} K_{Tk} e^{-t/\tau_{KT,k}}<br />
\qquad<br />
G_T(t) = G_{T0} + \sum_{k=1}^{N_{GT}} G_{Tk} e^{-t/\tau_{GT,k}}<br />
\qquad<br />
G_A(t) = G_{A0} + \sum_{k=1}^{N_{GA}} G_{Ak} e^{-t/\tau_{GA,k}}</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>n(t) = n_0 + \sum_{k=1}^{N_n} n_k e^{-t/\tau_{n,k}}<br />
\qquad\qquad<br />
\ell(t) = \ell_0 + \sum_{k=1}^{N_\ell} \ell_k e^{-t/\tau_{\ell,k}}</math><br />
<br />
In terms of axial modulus <math>E_A</math>, and Poisson's ratio, <math>\nu_A</math>, we can write:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>n(t) = E_A(t) + 4K_T(t)\nu_A(t)^2<br />
\qquad\qquad<br />
\ell(t) = 4K_T(t)\nu_A(t)</math><br />
<br />
This material lumps all these time dependencies into <math>n(t)</math> and <math>\ell(t)</math>, but note that selection of those properties will determine time dependencies of <math>E_A(t)</math> and <math>\nu_A(t)</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\nu_A(t) = {\ell(t)\over 2K_T(t)}<br />
\qquad {\rm and} \qquad<br />
E_A(t) = n(t) - \frac{\ell(t)^2}{K_T(t)}<br />
</math><br />
<br />
=== Rotated Material Axes ===<br />
<br />
The initial axial direction is along the ''z'' axis (or &theta; axis for axisymmetric calculations). The axial direction can be changed to any other direction using the same method used to orient [[Transversely Isotropic Material#Rotated Material Axes|transversely isotropic elastic material]] with the <tt>swapz</tt> material property.<br />
<br />
=== Isotropic with Time-Dependent Bulk Modulus ===<br />
<br />
The available [[Viscoelastic Material|isotropic viscoelastic]] material is limited to materials with time-independent bulk modulus because that is a good approximation for most isotropic, viscoelastic materials. These transversely-isotropic materials, however, do not place any restrictions on which properties are time dependent. As result, it can model an isotropic material with a time-dependent bulk modulus as a special case. Imagine an isotropic material with ''K(t)'' and ''G(t)'' as time-dependent bulk and shear moduli, respectively. To model using a transversely isotropic material, choose ''G<sub>A</sub>(t) = G<sub>T</sub>(t) = G(t)'' along with:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K_T(t) = K(t) + \frac{G_T(t)}{3},\quad n(t)= K(t) + \frac{4G_T(t)}{3},\quad {\rm and}\quad<br />
\ell(t) = K(t) - \frac{2G_T(t)}{3}</math><br />
<br />
Finally, any other material properties (such as thermal expansion coefficients) should be set to the special cases for an isotropic material.<br />
<br />
=== Fibrous Materials ===<br />
<br />
A potential use for a transversely isotropic viscoelastic material is to model fiber-reinforced composites including wood (although transversely isotropic is not a great model for wood because it cannot represent low transverse shear modulus compared to radial and tangential transverse tensile moduli). If the axial direction is the fiber direction, one might expect that time dependence will be much weaker in the axial direction than in the transverse direction. This behavior could be approximated by setting <math>n</math> and <math>\ell</math> independent of time. Because an elastic material has <math>n=E_A+4K_T\nu_A^2</math> and <math>\ell = 2K_t\nu_A</math>, this approximation implies <math>E_A</math>, <math>K_T</math>, and <math>\nu_A</math> are all independent of time. The final result is that only <math>G_T(t)</math> and <math>G_A(t)</math> are time dependent. This model is one approximation, but would have zero creep in the axial direction and therefore no use in modeling that response (unless experiments also show zero creep).<br />
<br />
A second option might be to let <math>K_T(t)</math> depend on time while <math>E_A</math> and <math>\nu_A</math> remain independent of time. This approach does not work and results in non-physical response to axial loading. The problem appears that it predicts that <math>n(t)</math> decreases in time. For isotropic materials, <math>n(t)</math> increases in time and it also likely increases for fibrous materials as well. In brief, to model viscoelastic properties of fibrous material that might include effects in the axial direction, the modeling will need to input all five time-dependent properties allowed by this material. Those properties should be based on experimental observations.<br />
<br />
== Effective Time Implementation ==<br />
<br />
This material handles variations in temperature and solvent concentration by the same methods used for [[Viscoelastic Material#Effective Time Implementation|isotropic viscoelastic materials]].<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple terms to define the exponential series used for up to five material properties.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| GT0 || The long term (or fully-relaxed) transverse shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| GA0 || The long term (or fully-relaxed) axial shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| KT0 || The long term (or fully-relaxed) plane-strain bulk modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| en0 || The long term (or fully-relaxed) ''C<sub>33</sub>'' element of the stiffness tensor || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ell0 || The long term (or fully-relaxed) ''C<sub>13</sub>=C<sub>23</sub>'' elements of the stiffness tensor || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntaus || The number of relaxation times of the previous long-term property that was entered. This property is only needed in <tt>XML</tt> files and must come before any subsequent Pk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Pk || The next property in the series for the previous long-term property that was entered. Use multiple Pk values for each term on the series. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next relaxation time in the series for the previous long-term property that was entered. Enter multiple tauk values for each term on the series. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| [[Transversely Isotropic Material#Material Properties|TI Properties]] || Enter thermal expansion, solvent expansion, and poroelasticity properties as usual for transversely isotropic materials. || varies || varies<br />
|-<br />
| swapz || Set to &gt;0 to move axial direction from ''z'' axis to the ''y'' axis (or from &theta; axis to ''Z'' axis in axisymmetric calculations). This property is only needed for 2D simulations that want axial direction in the analysis plane (it is not allowed in 3D MPM simulations). || none || 0<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The material properties need to define the time dependence 5 properties. The process for each one is to enter the long-term value first (GT0, GA0, KT0, en0, ell0) and then to follow each one by ntaus (only needed in <tt>XML</tt> files) and by one Pk and tauk value for each term in the series. Elastic value, or the property values at time zero, are sums of all Pk terms for that property. For example:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_T(0) = G_{T0} + \sum_{k=1}^{N_{GT}} G_{Tk}<br />
</math><br />
<br />
Other elastic properties are given by<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\nu_A(0) = {\ell(0)\over 2K_T(0)}<br />
\qquad {\rm and} \qquad<br />
E_A(0) = n(0) - 4K_T(0)\nu_A^2 = n(0) - \frac{\ell(0)^2}{K_T(0)}<br />
</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\frac{1}{E_T(0)} = \frac{1}{4K_T(0)} +\frac{1}{4G_T(0)} + {\nu_A(0)^2\over E_A(0)}<br />
\qquad {\rm and} \qquad<br />
\nu_T(0) = \frac{E_T(0)}{2G_T(0)}-1<br />
</math><br />
<br />
For valid modeling, the initial Poisson's ratios must satisfy<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>-1<\nu_T(0)<1 \qquad -\sqrt{E_A(0)\over E_T(0)} < \nu_A(0) < \sqrt{E_A(0)\over E_T(0)} \qquad<br />
{E_T(0)\nu_A(0)^2\over E_A(0)} < {1-\nu_T(0)\over 2}</math><br />
<br />
These relations must apply for all time, but only the initial values are validated before starting a simulation.<br />
<br />
=== Deprecated Material Properties ===<br />
<br />
Prior to the <tt>swapz</tt> material property, there were two types on transversely isotropic viscoelastic materials named "TIViscoelastic 1" and "TIViscoelastic 2". Although these can still be used as the material type, they are deprecated. The prior "TIViscoelastic 1" is identical to this material with <tt>swapz=0</tt>. The prior "TIViscoelastic 2" material is identical to this material with <tt>swapz=1</tt>.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
== Example ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Transversely_Isotropic_Viscoelastic_Material&diff=9898Transversely Isotropic Viscoelastic Material2024-03-19T20:19:02Z<p>Nairnj: /* Material Properties */</p>
<hr />
<div>__TOC__<br />
== Constitutive Law ==<br />
<br />
This anisotropic [[Material Models|MPM material]] is a [[Material Models#Viscoelastic Materials|small strain, linear viscoelastic material]] that extends the [[Viscoelastic Material]] to model anisotropic viscoelasticity. The stress (&sigma;) and strain (&epsilon;) are related by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\sigma(t) = \mathbf{C}(t) * \varepsilon(t)</math><br />
<br />
Here <math>*</math> indicates convolution (or Boltzman's superposition) between time-dependent stiffness tensor (<math>\mathbf{C}(t)</math>) and strain tensor. In Voight-notation with unique axis in the ''z'' direction, the time-dependent stiffness tensor is<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\mathbf{C}(t) = \left[\begin{array}{cccccc}<br />
K_T(t)+G_T(t) & K_T(t)-G_T(t) & \ell(t) & 0 & 0 & 0 \\<br />
K_T(t)-G_T(t) & K_T(t)+G_T(t) & \ell(t) & 0 & 0 & 0 \\<br />
\ell(t) & \ell(t) & n(t) & 0 & 0 & 0 \\<br />
0 & 0 & 0 & G_A(t) & 0 & 0 \\<br />
0 & 0 & 0 & 0 & G_A(t) & 0 \\<br />
0 & 0 & 0 & 0 & 0 & G_T(t)<br />
\end{array}\right]</math><br />
<br />
Here <math>K_T(t)</math> is the plane strain, bulk modulus, <math>G_T(t)</math> is the transverse shear modulus, <math>G_A(t)</math> is the axial shear modulus, and <math>n(t)</math> and <math>\ell(t)</math> give time-dependence of the ''C<sub>33</sub>'' and ''C<sub>13</sub>=C<sub>23</sub>'' elements of the stiffness tensor (as [[Transversely Isotropic Material|defined here]]). The time dependence of each property is modeled with a sum of exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K_T(t) = K_{T0} + \sum_{k=1}^{N_{KT}} K_{Tk} e^{-t/\tau_{KT,k}}<br />
\qquad<br />
G_T(t) = G_{T0} + \sum_{k=1}^{N_{GT}} G_{Tk} e^{-t/\tau_{GT,k}}<br />
\qquad<br />
G_A(t) = G_{A0} + \sum_{k=1}^{N_{GA}} G_{Ak} e^{-t/\tau_{GA,k}}</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>n(t) = n_0 + \sum_{k=1}^{N_n} n_k e^{-t/\tau_{n,k}}<br />
\qquad\qquad<br />
\ell(t) = \ell_0 + \sum_{k=1}^{N_\ell} \ell_k e^{-t/\tau_{\ell,k}}</math><br />
<br />
In terms of axial modulus <math>E_A</math>, and Poisson's ratio, <math>\nu_A</math>, we can write:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>n(t) = E_A(t) + 4K_T(t)\nu_A(t)^2<br />
\qquad\qquad<br />
\ell(t) = 4K_T(t)\nu_A(t)</math><br />
<br />
This material lumps all these time dependencies into <math>n(t)</math> and <math>\ell(t)</math>, but note that selection of those properties will determine time dependencies of <math>E_A(t)</math> and <math>\nu_A(t)</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\nu_A(t) = {\ell(t)\over 2K_T(t)}<br />
\qquad {\rm and} \qquad<br />
E_A(t) = n(t) - \frac{\ell(t)^2}{K_T(t)}<br />
</math><br />
<br />
=== Rotated Material Axes ===<br />
<br />
The initial axial direction is along the ''z'' axis (or &theta; axis for axisymmetric calculations). The axial direction can be changed to any other direction using the same method used to orient [[Transversely Isotropic Material#Rotated Material Axes|transversely isotropic elastic material]] with the <tt>swapz</tt> material property.<br />
<br />
=== Isotropic with Time-Dependent Bulk Modulus ===<br />
<br />
The available [[Viscoelastic Material|isotropic viscoelastic]] material is limited to materials with time-independent bulk modulus because that is a good approximation for most isotropic, viscoelastic materials. These transversely-isotropic materials, however, do not place any restrictions on which properties are time dependent. As result, it can model an isotropic material with a time-dependent bulk modulus as a special case. Imagine an isotropic material with ''K(t)'' and ''G(t)'' as time-dependent bulk and shear moduli, respectively. To model using a transversely isotropic material, choose ''G<sub>A</sub>(t) = G<sub>T</sub>(t) = G(t)'' along with:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K_T(t) = K(t) + \frac{G_T(t)}{3},\quad n(t)= K(t) + \frac{4G_T(t)}{3},\quad {\rm and}\quad<br />
\ell(t) = K(t) - \frac{2G_T(t)}{3}</math><br />
<br />
Finally, any other material properties (such as thermal expansion coefficients) should be set to the special cases for an isotropic material.<br />
<br />
=== Fibrous Materials ===<br />
<br />
A potential use for a transversely isotropic viscoelastic material is to model fiber-reinforced composites including wood (although transversely isotropic is not a great model for wood because it cannot represent low transverse shear modulus compared to radial and tangential transverse tensile moduli). If the axial direction is the fiber direction, one might expect that time dependence will be much weaker in the axial direction than in the transverse direction. This behavior could be approximated by setting <math>n</math> and <math>\ell</math> independent of time. Because an elastic material has <math>n=E_A+4K_T\nu_A^2</math> and <math>\ell = 2K_t\nu_A</math>, this approximation implies <math>E_A</math>, <math>K_T</math>, and <math>\nu_A</math> are all independent of time. The final result is that only <math>G_T(t)</math> and <math>G_A(t)</math> are time dependent. This model is one approximation, but would have zero creep in the axial direction and therefore no use in modeling that response (unless experiments also show zero creep).<br />
<br />
A second option might be to let <math>K_T(t)</math> depend on time while <math>E_A</math> and <math>\nu_A</math> remain independent of time. This approach does not work and results in non-physical response to axial loading. The problem appears that it predicts that <math>n(t)</math> decreases in time. For isotropic materials, <math>n(t)</math> increases in time and it also likely increases for fibrous materials as well. In brief, to model viscoelastic properties of fibrous material that might include effects in the axial direction, the modeling will need to input all five time-dependent properties allowed by this material. Those properties should be based on experimental observations.<br />
<br />
== Effective Time Implementation ==<br />
<br />
This material handles variations in temperature and solvent concentration by the same methods used for [[Viscoelastic Material#Effective Time Implementation|isotropic viscoelastic materials]].<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple terms to define the exponential series used for up to five material properties.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| GT0 || The long term (or fully-relaxed) transverse shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| GA0 || The long term (or fully-relaxed) axial shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| KT0 || The long term (or fully-relaxed) plane-strain bulk modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| en0 || The long term (or fully-relaxed) ''C<sub>33</sub>'' element of the stiffness tensor || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ell0 || The long term (or fully-relaxed) ''C<sub>13</sub>=C<sub>23</sub>'' elements of the stiffness tensor || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntaus || The number of relaxation times of the previous long-term property that was entered. This property is only needed in <tt>XML</tt> files and must come before any subsequent Pk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Pk || The next property in the series for the previous long-term property that was entered. Use multiple Pk values for each term on the series. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next relaxation time in the series for the previous long-term property that was entered. Enter multiple tauk values for each term on the series. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| [[Transversely Isotropic Material#Material Properties|TI Properties]] || Enter thermal expansion, solvent expansion, and poroelasticity properties as usual for transversely isotropic materials. || varies || varies<br />
|-<br />
| swapz || Set to &gt;0 to move axial direction from ''z'' axis to the ''y'' axis (or from &theta; axis to ''Z'' axis in axisymmetric calculations). This property is only needed for 2D simulations that want axial direction in the analysis plane (it is not allowed in 3D MPM simulations). || none || 0<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The material properties need to define the time dependence 5 properties. The process for each one is to enter the long-term value first (GT0, GA0, KT0, en0, ell0) and then to follow each one by ntaus (only needed in <tt>XML</tt> files) and by one Pk and tauk value for each term in the series. Elastic value, or the property values at time zero, are sums of all Pk terms for that property. For example:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_T(0) = G_{T0} + \sum_{k=1}^{N_{GT}} G_{Tk}<br />
</math><br />
<br />
Other elastic properties are given by<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\nu_A(0) = {\ell(0)\over 2K_T(0)}<br />
\qquad {\rm and} \qquad<br />
E_A(0) = n(0) - 4K_T(0)\nu_A^2 = n(0) - \frac{\ell(0)^2}{K_T(0)}<br />
</math><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\frac{1}{E_T(0)} = \frac{1}{4K_T(0)} +\frac{1}{4G_T(0)} + {\nu_A(0)^2\over E_A(0)}<br />
\qquad {\rm and} \qquad<br />
\nu_T(0) = \frac{E_T(0)}{2G_T(0)}-1<br />
</math><br />
<br />
For valid modeling, the initial Poisson's ratios must satisfy<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>-1<\nu_T(0)<1 \qquad -\sqrt{E_A(0)\over E_T(0)} < \nu_A(0) < \sqrt{E_A(0)\over E_T(0)} \qquad<br />
{E_T(0)\nu_A(0)^2\over E_A(0)} < {1-\nu_T(0)\over 2}</math><br />
<br />
These relations must apply for all time, but only the initial values are validated before starting a simulation.<br />
<br />
=== Deprecated Material Properties ===<br />
<br />
Prior to the <tt>swapz</tt> material property, there were two types on transversely isotropic viscoelastic materials named "TIViscoelastic 1" and "TIViscoelastic 2". Although these can still be used as the material type, they are deprecated. The prior "TIViscoelastic 1" is identical to this material with <tt>swapz=0</tt>. The prior "TIViscoelastic 2" material is identical to this material with <tt>swapz=1</tt>.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
== Example ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Transversely_Isotropic_Viscoelastic_Material&diff=9897Transversely Isotropic Viscoelastic Material2024-03-19T20:17:08Z<p>Nairnj: /* Material Properties */</p>
<hr />
<div>__TOC__<br />
== Constitutive Law ==<br />
<br />
This anisotropic [[Material Models|MPM material]] is a [[Material Models#Viscoelastic Materials|small strain, linear viscoelastic material]] that extends the [[Viscoelastic Material]] to model anisotropic viscoelasticity. The stress (&sigma;) and strain (&epsilon;) are related by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\sigma(t) = \mathbf{C}(t) * \varepsilon(t)</math><br />
<br />
Here <math>*</math> indicates convolution (or Boltzman's superposition) between time-dependent stiffness tensor (<math>\mathbf{C}(t)</math>) and strain tensor. In Voight-notation with unique axis in the ''z'' direction, the time-dependent stiffness tensor is<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\mathbf{C}(t) = \left[\begin{array}{cccccc}<br />
K_T(t)+G_T(t) & K_T(t)-G_T(t) & \ell(t) & 0 & 0 & 0 \\<br />
K_T(t)-G_T(t) & K_T(t)+G_T(t) & \ell(t) & 0 & 0 & 0 \\<br />
\ell(t) & \ell(t) & n(t) & 0 & 0 & 0 \\<br />
0 & 0 & 0 & G_A(t) & 0 & 0 \\<br />
0 & 0 & 0 & 0 & G_A(t) & 0 \\<br />
0 & 0 & 0 & 0 & 0 & G_T(t)<br />
\end{array}\right]</math><br />
<br />
Here <math>K_T(t)</math> is the plane strain, bulk modulus, <math>G_T(t)</math> is the transverse shear modulus, <math>G_A(t)</math> is the axial shear modulus, and <math>n(t)</math> and <math>\ell(t)</math> give time-dependence of the ''C<sub>33</sub>'' and ''C<sub>13</sub>=C<sub>23</sub>'' elements of the stiffness tensor (as [[Transversely Isotropic Material|defined here]]). The time dependence of each property is modeled with a sum of exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K_T(t) = K_{T0} + \sum_{k=1}^{N_{KT}} K_{Tk} e^{-t/\tau_{KT,k}}<br />
\qquad<br />
G_T(t) = G_{T0} + \sum_{k=1}^{N_{GT}} G_{Tk} e^{-t/\tau_{GT,k}}<br />
\qquad<br />
G_A(t) = G_{A0} + \sum_{k=1}^{N_{GA}} G_{Ak} e^{-t/\tau_{GA,k}}</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>n(t) = n_0 + \sum_{k=1}^{N_n} n_k e^{-t/\tau_{n,k}}<br />
\qquad\qquad<br />
\ell(t) = \ell_0 + \sum_{k=1}^{N_\ell} \ell_k e^{-t/\tau_{\ell,k}}</math><br />
<br />
In terms of axial modulus <math>E_A</math>, and Poisson's ratio, <math>\nu_A</math>, we can write:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>n(t) = E_A(t) + 4K_T(t)\nu_A(t)^2<br />
\qquad\qquad<br />
\ell(t) = 4K_T(t)\nu_A(t)</math><br />
<br />
This material lumps all these time dependencies into <math>n(t)</math> and <math>\ell(t)</math>, but note that selection of those properties will determine time dependencies of <math>E_A(t)</math> and <math>\nu_A(t)</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\nu_A(t) = {\ell(t)\over 2K_T(t)}<br />
\qquad {\rm and} \qquad<br />
E_A(t) = n(t) - \frac{\ell(t)^2}{K_T(t)}<br />
</math><br />
<br />
=== Rotated Material Axes ===<br />
<br />
The initial axial direction is along the ''z'' axis (or &theta; axis for axisymmetric calculations). The axial direction can be changed to any other direction using the same method used to orient [[Transversely Isotropic Material#Rotated Material Axes|transversely isotropic elastic material]] with the <tt>swapz</tt> material property.<br />
<br />
=== Isotropic with Time-Dependent Bulk Modulus ===<br />
<br />
The available [[Viscoelastic Material|isotropic viscoelastic]] material is limited to materials with time-independent bulk modulus because that is a good approximation for most isotropic, viscoelastic materials. These transversely-isotropic materials, however, do not place any restrictions on which properties are time dependent. As result, it can model an isotropic material with a time-dependent bulk modulus as a special case. Imagine an isotropic material with ''K(t)'' and ''G(t)'' as time-dependent bulk and shear moduli, respectively. To model using a transversely isotropic material, choose ''G<sub>A</sub>(t) = G<sub>T</sub>(t) = G(t)'' along with:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K_T(t) = K(t) + \frac{G_T(t)}{3},\quad n(t)= K(t) + \frac{4G_T(t)}{3},\quad {\rm and}\quad<br />
\ell(t) = K(t) - \frac{2G_T(t)}{3}</math><br />
<br />
Finally, any other material properties (such as thermal expansion coefficients) should be set to the special cases for an isotropic material.<br />
<br />
=== Fibrous Materials ===<br />
<br />
A potential use for a transversely isotropic viscoelastic material is to model fiber-reinforced composites including wood (although transversely isotropic is not a great model for wood because it cannot represent low transverse shear modulus compared to radial and tangential transverse tensile moduli). If the axial direction is the fiber direction, one might expect that time dependence will be much weaker in the axial direction than in the transverse direction. This behavior could be approximated by setting <math>n</math> and <math>\ell</math> independent of time. Because an elastic material has <math>n=E_A+4K_T\nu_A^2</math> and <math>\ell = 2K_t\nu_A</math>, this approximation implies <math>E_A</math>, <math>K_T</math>, and <math>\nu_A</math> are all independent of time. The final result is that only <math>G_T(t)</math> and <math>G_A(t)</math> are time dependent. This model is one approximation, but would have zero creep in the axial direction and therefore no use in modeling that response (unless experiments also show zero creep).<br />
<br />
A second option might be to let <math>K_T(t)</math> depend on time while <math>E_A</math> and <math>\nu_A</math> remain independent of time. This approach does not work and results in non-physical response to axial loading. The problem appears that it predicts that <math>n(t)</math> decreases in time. For isotropic materials, <math>n(t)</math> increases in time and it also likely increases for fibrous materials as well. In brief, to model viscoelastic properties of fibrous material that might include effects in the axial direction, the modeling will need to input all five time-dependent properties allowed by this material. Those properties should be based on experimental observations.<br />
<br />
== Effective Time Implementation ==<br />
<br />
This material handles variations in temperature and solvent concentration by the same methods used for [[Viscoelastic Material#Effective Time Implementation|isotropic viscoelastic materials]].<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple terms to define the exponential series used for up to five material properties.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| GT0 || The long term (or fully-relaxed) transverse shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| GA0 || The long term (or fully-relaxed) axial shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| KT0 || The long term (or fully-relaxed) plane-strain bulk modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| en0 || The long term (or fully-relaxed) ''C<sub>33</sub>'' element of the stiffness tensor || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ell0 || The long term (or fully-relaxed) ''C<sub>13</sub>=C<sub>23</sub>'' elements of the stiffness tensor || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntaus || The number of relaxation times of the previous long-term property that was entered. This property is only needed in <tt>XML</tt> files and must come before any subsequent Pk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Pk || The next property in the series for the previous long-term property that was entered. Use multiple Pk values for each term on the series. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next relaxation time in the series for the previous long-term property that was entered. Enter multiple tauk values for each term on the series. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| [[Transversely Isotropic Material#Material Properties|TI Properties]] || Enter thermal expansion, solvent expansion, and poroelasticity properties as usual for transversely isotropic materials. || varies || varies<br />
|-<br />
| swapz || Set to &gt;0 to move axial direction from ''z'' axis to the ''y'' axis (or from &theta; axis to ''Z'' axis in axisymmetric calculations). This property is only needed for 2D simulations that want axial direction in the analysis plane (it is not allowed in 3D MPM simulations). || none || 0<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The material properties need to define the time dependence 5 properties. The process for each one is to enter the long-term value first (GT0, GA0, KT0, en0, ell0) and then to follow each one by ntaus (only needed in <tt>XML</tt> files) and by one Pk and tauk value for each term in the series. The elastic values for each property are calculated from the value at time = zero. Other elastic properties are then found from<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\nu_A(0) = {\ell(0)\over 2K_T(0)}<br />
\qquad {\rm and} \qquad<br />
E_A(0) = n(0) - 4K_T(0)\nu_A^2 = n(0) - \frac{\ell(0)^2}{K_T(0)}<br />
</math><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\frac{1}{E_T(0)} = \frac{1}{4K_T(0)} +\frac{1}{4G_T(0)} + {\nu_A(0)^2\over E_A(0)}<br />
\qquad {\rm and} \qquad<br />
\nu_T(0) = \frac{E_T(0)}{2G_T(0)}-1<br />
</math><br />
<br />
The above initial values, or the properties at time zero, are sums of all Pk terms for that property. For example<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_T(0) = G_{T0} + \sum_{k=1}^{N_{GT}} G_{Tk}<br />
</math><br />
<br />
For valid modeling, the initial Poisson's ratios must satisfy<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>-1<\nu_T(0)<1 \qquad -\sqrt{E_A(0)\over E_T(0)} < \nu_A(0) < \sqrt{E_A(0)\over E_T(0)} \qquad<br />
{E_T(0)\nu_A(0)^2\over E_A(0)} < {1-\nu_T(0)\over 2}</math><br />
<br />
These relations must apply for all time, but only the initial values are validated before starting a simulation.<br />
<br />
=== Deprecated Material Properties ===<br />
<br />
Prior to the <tt>swapz</tt> material property, there were two types on transversely isotropic viscoelastic materials named "TIViscoelastic 1" and "TIViscoelastic 2". Although these can still be used as the material type, they are deprecated. The prior "TIViscoelastic 1" is identical to this material with <tt>swapz=0</tt>. The prior "TIViscoelastic 2" material is identical to this material with <tt>swapz=1</tt>.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
== Example ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Transversely_Isotropic_Viscoelastic_Material&diff=9896Transversely Isotropic Viscoelastic Material2024-03-19T20:14:53Z<p>Nairnj: /* Material Properties */</p>
<hr />
<div>__TOC__<br />
== Constitutive Law ==<br />
<br />
This anisotropic [[Material Models|MPM material]] is a [[Material Models#Viscoelastic Materials|small strain, linear viscoelastic material]] that extends the [[Viscoelastic Material]] to model anisotropic viscoelasticity. The stress (&sigma;) and strain (&epsilon;) are related by:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\sigma(t) = \mathbf{C}(t) * \varepsilon(t)</math><br />
<br />
Here <math>*</math> indicates convolution (or Boltzman's superposition) between time-dependent stiffness tensor (<math>\mathbf{C}(t)</math>) and strain tensor. In Voight-notation with unique axis in the ''z'' direction, the time-dependent stiffness tensor is<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\mathbf{C}(t) = \left[\begin{array}{cccccc}<br />
K_T(t)+G_T(t) & K_T(t)-G_T(t) & \ell(t) & 0 & 0 & 0 \\<br />
K_T(t)-G_T(t) & K_T(t)+G_T(t) & \ell(t) & 0 & 0 & 0 \\<br />
\ell(t) & \ell(t) & n(t) & 0 & 0 & 0 \\<br />
0 & 0 & 0 & G_A(t) & 0 & 0 \\<br />
0 & 0 & 0 & 0 & G_A(t) & 0 \\<br />
0 & 0 & 0 & 0 & 0 & G_T(t)<br />
\end{array}\right]</math><br />
<br />
Here <math>K_T(t)</math> is the plane strain, bulk modulus, <math>G_T(t)</math> is the transverse shear modulus, <math>G_A(t)</math> is the axial shear modulus, and <math>n(t)</math> and <math>\ell(t)</math> give time-dependence of the ''C<sub>33</sub>'' and ''C<sub>13</sub>=C<sub>23</sub>'' elements of the stiffness tensor (as [[Transversely Isotropic Material|defined here]]). The time dependence of each property is modeled with a sum of exponentials:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K_T(t) = K_{T0} + \sum_{k=1}^{N_{KT}} K_{Tk} e^{-t/\tau_{KT,k}}<br />
\qquad<br />
G_T(t) = G_{T0} + \sum_{k=1}^{N_{GT}} G_{Tk} e^{-t/\tau_{GT,k}}<br />
\qquad<br />
G_A(t) = G_{A0} + \sum_{k=1}^{N_{GA}} G_{Ak} e^{-t/\tau_{GA,k}}</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>n(t) = n_0 + \sum_{k=1}^{N_n} n_k e^{-t/\tau_{n,k}}<br />
\qquad\qquad<br />
\ell(t) = \ell_0 + \sum_{k=1}^{N_\ell} \ell_k e^{-t/\tau_{\ell,k}}</math><br />
<br />
In terms of axial modulus <math>E_A</math>, and Poisson's ratio, <math>\nu_A</math>, we can write:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>n(t) = E_A(t) + 4K_T(t)\nu_A(t)^2<br />
\qquad\qquad<br />
\ell(t) = 4K_T(t)\nu_A(t)</math><br />
<br />
This material lumps all these time dependencies into <math>n(t)</math> and <math>\ell(t)</math>, but note that selection of those properties will determine time dependencies of <math>E_A(t)</math> and <math>\nu_A(t)</math><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\nu_A(t) = {\ell(t)\over 2K_T(t)}<br />
\qquad {\rm and} \qquad<br />
E_A(t) = n(t) - \frac{\ell(t)^2}{K_T(t)}<br />
</math><br />
<br />
=== Rotated Material Axes ===<br />
<br />
The initial axial direction is along the ''z'' axis (or &theta; axis for axisymmetric calculations). The axial direction can be changed to any other direction using the same method used to orient [[Transversely Isotropic Material#Rotated Material Axes|transversely isotropic elastic material]] with the <tt>swapz</tt> material property.<br />
<br />
=== Isotropic with Time-Dependent Bulk Modulus ===<br />
<br />
The available [[Viscoelastic Material|isotropic viscoelastic]] material is limited to materials with time-independent bulk modulus because that is a good approximation for most isotropic, viscoelastic materials. These transversely-isotropic materials, however, do not place any restrictions on which properties are time dependent. As result, it can model an isotropic material with a time-dependent bulk modulus as a special case. Imagine an isotropic material with ''K(t)'' and ''G(t)'' as time-dependent bulk and shear moduli, respectively. To model using a transversely isotropic material, choose ''G<sub>A</sub>(t) = G<sub>T</sub>(t) = G(t)'' along with:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>K_T(t) = K(t) + \frac{G_T(t)}{3},\quad n(t)= K(t) + \frac{4G_T(t)}{3},\quad {\rm and}\quad<br />
\ell(t) = K(t) - \frac{2G_T(t)}{3}</math><br />
<br />
Finally, any other material properties (such as thermal expansion coefficients) should be set to the special cases for an isotropic material.<br />
<br />
=== Fibrous Materials ===<br />
<br />
A potential use for a transversely isotropic viscoelastic material is to model fiber-reinforced composites including wood (although transversely isotropic is not a great model for wood because it cannot represent low transverse shear modulus compared to radial and tangential transverse tensile moduli). If the axial direction is the fiber direction, one might expect that time dependence will be much weaker in the axial direction than in the transverse direction. This behavior could be approximated by setting <math>n</math> and <math>\ell</math> independent of time. Because an elastic material has <math>n=E_A+4K_T\nu_A^2</math> and <math>\ell = 2K_t\nu_A</math>, this approximation implies <math>E_A</math>, <math>K_T</math>, and <math>\nu_A</math> are all independent of time. The final result is that only <math>G_T(t)</math> and <math>G_A(t)</math> are time dependent. This model is one approximation, but would have zero creep in the axial direction and therefore no use in modeling that response (unless experiments also show zero creep).<br />
<br />
A second option might be to let <math>K_T(t)</math> depend on time while <math>E_A</math> and <math>\nu_A</math> remain independent of time. This approach does not work and results in non-physical response to axial loading. The problem appears that it predicts that <math>n(t)</math> decreases in time. For isotropic materials, <math>n(t)</math> increases in time and it also likely increases for fibrous materials as well. In brief, to model viscoelastic properties of fibrous material that might include effects in the axial direction, the modeling will need to input all five time-dependent properties allowed by this material. Those properties should be based on experimental observations.<br />
<br />
== Effective Time Implementation ==<br />
<br />
This material handles variations in temperature and solvent concentration by the same methods used for [[Viscoelastic Material#Effective Time Implementation|isotropic viscoelastic materials]].<br />
<br />
== Material Properties ==<br />
<br />
The unusual task for this material is to use multiple terms to define the exponential series used for up to five material properties.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Property !! Description !! Units !! Default<br />
|-<br />
| GT0 || The long term (or fully-relaxed) transverse shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| GA0 || The long term (or fully-relaxed) axial shear modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| KT0 || The long term (or fully-relaxed) plane-strain bulk modulus || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| en0 || The long term (or fully-relaxed) ''C<sub>33</sub>'' element of the stiffness tensor || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ell0 || The long term (or fully-relaxed) ''C<sub>13</sub>=C<sub>23</sub>'' elements of the stiffness tensor || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| ntaus || The number of relaxation times of the previous long-term property that was entered. This property is only needed in <tt>XML</tt> files and must come before any subsequent Pk or tauk properties. In scripted files, the number is automatically determined from the number of relaxation times you provide. || none || none<br />
|-<br />
| Pk || The next property in the series for the previous long-term property that was entered. Use multiple Pk values for each term on the series. || [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]] || none<br />
|-<br />
| tauk || The next relaxation time in the series for the previous long-term property that was entered. Enter multiple tauk values for each term on the series. || [[ConsistentUnits Command#Legacy and Consistent Units|time units]] || none<br />
|-<br />
| Tref || Reference temperature to shift relaxation times using the WLF equation. If <tt>Tref</tt>&lt;0, then no shifting is done and relaxation times will be independent of temperature. || K || -1<br />
|-<br />
| C1 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 17.44<br />
|-<br />
| C2 || Coefficient in WLF equation used when <tt>Tref</tt>&ge;0 to shift relaxation times || none || 51.6<br />
|-<br />
| mref || Reference concentration to shift relaxation times using the WLF-style equation. If <tt>mref</tt>&lt;0, then no shifting is done and relaxation times will be independent of concentration. || K || -1<br />
|-<br />
| Cm1 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times || none || 10<br />
|-<br />
| Cm2 || Coefficient in WLF-style equation used when <tt>mref</tt>&ge;0 to shift relaxation times (must be positive) || none || 0.0625<br />
|-<br />
| [[Transversely Isotropic Material#Material Properties|TI Properties]] || Enter thermal expansion, solvent expansion, and poroelasticity properties as usual for transversely isotropic materials. || varies || varies<br />
|-<br />
| swapz || Set to &gt;0 to move axial direction from ''z'' axis to the ''y'' axis (or from &theta; axis to ''Z'' axis in axisymmetric calculations). This property is only needed for 2D simulations that want axial direction in the analysis plane (it is not allowed in 3D MPM simulations). || none || 0<br />
|-<br />
| ([[Common Material Properties|other]]) || Properties common to all materials || varies || varies<br />
|}<br />
<br />
The material properties need to define the time dependence 5 properties (when fibrous is 0). The process for each one is to enter the long-term value first (GT0, GA0, KT0, en0, ell0) and then to follow each one by ntaus (only needed in <tt>XML</tt> files) and by one Pk and tauk value for each term in the series.<br />
<br />
When fibrous is 1, you instead enter time-independent values for EA and nuA. When fibrous is 0, their initial values calculated from:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\nu_A(0) = {\ell(0)\over 2K_T(0)}<br />
\qquad {\rm and} \qquad<br />
E_A(0) = n(0) - 4K_T(0)\nu_A^2 = n(0) - \frac{\ell(0)^2}{K_T(0)}<br />
</math><br />
<br />
The remaining, initial transverse properties are:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>\frac{1}{E_T(0)} = \frac{1}{4K_T(0)} +\frac{1}{4G_T(0)} + {\nu_A(0)^2\over E_A(0)}<br />
\qquad {\rm and} \qquad<br />
\nu_T(0) = \frac{E_T(0)}{2G_T(0)}-1<br />
</math><br />
<br />
The above initial values, or the properties at time zero, are sums of all Pk terms for that property. For example<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>G_T(0) = G_{T0} + \sum_{k=1}^{N_{GT}} G_{Tk}<br />
</math><br />
<br />
For valid modeling, the initial Poisson's ratios must satisfy<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>-1<\nu_T(0)<1 \qquad -\sqrt{E_A(0)\over E_T(0)} < \nu_A(0) < \sqrt{E_A(0)\over E_T(0)} \qquad<br />
{E_T(0)\nu_A(0)^2\over E_A(0)} < {1-\nu_T(0)\over 2}</math><br />
<br />
These relations must apply for all time, but only the initial values are validated before starting a simulation.<br />
<br />
=== Deprecated Material Properties ===<br />
<br />
Prior to the <tt>swapz</tt> material property, there were two types on transversely isotropic viscoelastic materials named "TIViscoelastic 1" and "TIViscoelastic 2". Although these can still be used as the material type, they are deprecated. The prior "TIViscoelastic 1" is identical to this material with <tt>swapz=0</tt>. The prior "TIViscoelastic 2" material is identical to this material with <tt>swapz=1</tt>.<br />
<br />
== History Variables ==<br />
<br />
This material tracks internal history variables (one for each relaxation time and each component of stress) for implementation of linear viscoelastic properties, but currently none of these internal variables are available for archiving.<br />
<br />
== Example ==</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=MPM_Archiving_Options&diff=9895MPM Archiving Options2023-12-12T19:17:11Z<p>Nairnj: /* */</p>
<hr />
<div>These commands determine the way results of the calculations are archived for later analysis.<br />
<br />
== Archiving Particle Data ==<br />
<br />
In MPM calculations, the calculation results are stored in a series of archive files. These files give periodic snapshots for the state of each material point. These files are read after the analysis to plot the results; in fact the results cannot be visualized without them. For more details, you can refer to the [[Archive File Formats|output file format definition]].<br />
<br />
=== Scripted Input Files ===<br />
<br />
In scripted input files, the archiving options have two forms:<br />
<br />
Archive (path)<br />
ArchiveTime (time),<(first time)>,<(props)><br />
<ArchiveTime (time2),(second time),<(props2)>><br />
<ArchiveTime (time3),(third time),<(props3)>><br />
ToArchive (list of quantities)<br />
<br />
or<br />
<br />
ArchiveUnique (path)<br />
ArchiveTime (time),<(first time)>,<(props)><br />
<ArchiveTime (time2),<(second time)>,<(props2)>><br />
<ArchiveTime (time3),(third time),<(props3)>><br />
ToArchive (list on quantities)<br />
<br />
where<br />
<br />
<ul><br />
<li><span id="path_name"></span><tt>(path)</tt> gives a relative path name from the saved output file to the archived files. The path name should be entered in Unix style or<br />
<br />
<pre>folder/folder/folder/root</pre><br />
<br />
where there can be any number of folders followed by the root archive file name. The saved files will be in that location and have names<br />
<br />
<pre>root.num</pre><br />
<br />
where <tt>num</tt> is the step number being archived. The folder names and root name cannot contain any colons (":"), to avoid conflict with MacOS path names) or spaces (to be consistent with most Unix systems).<br><br />
&nbsp;&nbsp;&nbsp;If a series MPM calculations are saved to the same folder without changing the archive path name, the later calculations will most likely overwrite the earlier calculations causing you to lose results. The solution is to use the second form above that replaces the <tt>Archive</tt> command with an <tt>ArchiveUnique</tt> command. The <tt>ArchiveUnique</tt> command forces creation of a new folder within the last folder of the path. In the above path example, the <tt>ArchiveUnique</tt> option will write to the files:<br />
<br />
<pre>folder/folder/folder/#/root.num</pre><br />
<br />
where # is chosen from 1, 2, 3, ... to create a unique folder. You can then safely write multiple MPM output files to the save folder without conflicts<br />
<br />
<li><span id="atime"></span><tt>(time)</tt> gives the time interval between archiving results in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]] (it can be an [[Entity Command|entity]]). The analysis will always archive the initial state (to define the problem). You only need to archive enough results to get good plots or movies after the analysis is done.</li><br />
<br />
<li><span id="ftime"></span><tt>(first time)</tt> is an optional time to start archiving in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]] (it can be an [[Entity Command|entity]]). If this time is greater than zero, the analysis will archive the initial state (to define the problem) and not archive anymore more results until this time is reached. After this time, archiving will proceed at the time interval specified in <tt>(time)</tt>.<br />
<br />
<li><tt>(props)</tt> forces archiving if <tt>(props)</tt> propagations and/or debonds have occurred since the last archive (default is 0, which disables counting of propagations).</li><br />
<br />
<li><tt>(list on quantities)</tt> is a comma-separted list of quantities to be archived (see [[#ToArchive Command|<tt>ToArchive</tt> command]] for the details.<br />
<br />
</ul><br />
<br />
A single <tt>ArchiveTime</tt> command is usually enough, but sometimes you want to archive infrequently at the beginning and then more frequently later or to archive by some other custom scheme. To create custom archiving schemes, you create archiving blocks with multiple <tt>ArchiveTime</tt> commands. Each subsequent <tt>ArchiveTime</tt> command adds a new block that archives with new <tt>(time)</tt> and <tt>(props)</tt> settings in the first and optional third arguments. The new block starts at the time given in the second parameter, which is now a required parameter and it must be a later time than the start of the previous archiving block.<br />
<br />
==== ToArchive Command ====<br />
<br />
The <tt>ToArchive</tt> command determines which calculation results to include in archived results by providing a comma-separated list of the following options (which can be in one or more ToArchive commands and are case sensitive):<br />
<br />
<ul><br />
<li><tt>velocity</tt> - particle velocities</li><br />
<li><tt>stress</tt> - particle stress</li><br />
<li><tt>strain</tt> - symmetric part of the displacement gradient ('''F-I'''), which in combination with <tt>rotstrain</tt> gives full deformation gradient</li><br />
<li><tt>plasticstrain</tt> - an alternate particle strain; it is plastic strain for some [[Material Models|materials]], or something else for others</li><br />
<li><tt>rotstrain</tt> - initial material axis rotation angles. Archiving this strain is needed to find rotation strains, deformation gradients, and to plot transformed material points. It is now automatically activated whenever <tt>strain</tt> is archived and therefore normall does not need to be set.</li><br />
<li><tt>strainenergy</tt> - particle strain energy, which is cumulative <i>V</i>*&sigma;.d(&epsilon;-&epsilon;<sub>res</sub>)</li><br />
<li><tt>workenergy</tt> - particle work energy, which is cumulative <i>V</i>*&sigma;.d&epsilon;</li><br />
<li><tt>heatenergy</tt> - particle heat energy; the value will only be physically correct if all [[Material Models|materials]] specify their heat capacity</li><br />
<li><tt>plasticenergy</tt> - cumulative dissipated energy (despite the name, it is energy dissipated by any modeled mechanism)</li><br />
<li><tt>lp</tt> - the angular momentum due to particle spin (zero unless [[Analysis Command#Tracking Particle Spin|particle spin]] is activated).</li><br />
<li><tt>wp</tt> - the angular velocity due to particle spin (zero unless [[Analysis Command#Tracking Particle Spin|particle spin]] is activated; also zero on time step 0 due to calculations methods).</li><br />
<li><tt>temperature</tt> - particle temperature</li><br />
<li><tt>concentration</tt> or <tt>porepressure</tt> - particle concentration and concentration gradient (when doing [[Diffusion Calculations|diffusion calculations]]) or particle pore pressure and pore pressure gradient (when doing [[Poroelasticity Calculations|poroelasticity calculations]]).</li><br />
<li><tt>history#</tt> - where '#' is 1 to 19 to archive that history variable for a [[Material Models|material]]. These history variables are only relevant for certain types of materials. To archive history data beyond #19 or to archive to a different format, you can use the [[HistoryArchive Custom Task]].</li><br />
<li><tt>elementcrossings</tt> - number of times the particle has crossed an element boundary since the last archive time.</li><br />
<li><tt>damagenormal</tt> - the normal vector of the failure plane in the particle when using [[Material Models#Softening Materials|softening materials]].</li><br />
<li><tt>size</tt> - to archive particle sizes. The main use is to allow [[ExtractMPM]] to export an VTK file with an unstructured grid (<tt>-U</tt> option). This output can improve visualization in software like [[ParaView]] or [[VisIt]].</li><br />
</ul><br />
<br />
The follow options archive options are for crack particles:<br />
<br />
<ul><br />
<li><tt>jintegral</tt> - crack tip J1 and J2 integrals</li><br />
<li><tt>stressintensity</tt> - crack tip KI and KII</li><br />
<li><tt>czmdisp</tt> - mode I and mode II energy dissipated per unit area by cohesive zones. Needed to be able to plot cohesive zone damage length or to find [[Traction Laws#Fracture Mechanics Energy Release Rate|fracture mechanics energy release rate]].</li><br />
<li><tt>traction#</tt> - where '#' is 1 to 10 to archive that traction history variable for a [[Traction Laws|traction law]]. These history variables are only relevant for certain types of [[Traction Laws|cohesive laws]].</li><br />
</ul><br />
<br />
Certain particle results are always archived and thus there is no need to specify them in a <code>ToArchive</code> command. The standard archived data are:<br />
<br />
<ul><br />
<li><tt>mass</tt> - particle mass</li><br />
<li><tt>material ID</tt> - material ID number for particle</li><br />
<li><tt>material angle</tt> - small-strain material angle (this is combined with <tt>strains</tt> and <tt>rotstrain</tt> to find [[Archive File Formats#Rotational Strains and Deformation Gradient|rotational strains and deformation gradients]].</li><br />
<li><tt>thickness</tt> - thickness for 2D calculations</li><br />
<li><tt>position</tt> - current particle position</li><br />
<li><tt>original position</tt> - initial position for displacement calculations</li><br />
<li><tt>crack position</tt> - crack particle positions</li><br />
<li><tt>crack original position</tt> - initial crack particle positions</li><br />
<li><tt>crack surface positions</tt> - location of crack surfaces</li><br />
</ul><br />
<br />
Finally, note that if no <tt>ToArchive</tt> command is used, only minimal information is archived (''e.g.'', particle positions). You will need some <tt>ToArchive</tt> commands to be able to later visualize calculations results.<br />
<br />
=== XML Input Files ===<br />
<br />
In XML input files, the archiving commands, which must be within the [[MPM Input Files#MPM Header|<tt><MPMHeader></tt> element]], are:<br />
<br />
<ArchiveRoot unique='0'>(path)</ArchiveRoot><br />
<ArchiveGroup time= '(time)' start='(first time)' maxProps='(props)'/><br />
<MPMArchive result="(resultName)" setting='(YorN)'/><br />
<MPMArchive result="(resultName)" setting='(YorN)'/><br />
...<br />
<MPMArchive result="(resultName)" setting='(YorN)'/><br />
<br />
where<br />
<br />
* <tt>(path)</tt> is the archive path. The optional <tt>unique</tt> attribute (if = 1) will force the creation of a new folder. Both these settings are as explained [[#path_name|above]].<br />
* <tt>(time)</tt> is the [[#atime|time interval between archiving]]. A [[Units Attribute|units attribute]] determines the time units or default is [[ConsistentUnits Command#Legacy and Consistent Units|time units]].<br />
* <tt>(first time)</tt> is the [[#ftime|first time results are archived]]. A [[Units Attribute|units attribute]] determines the time units or default is [[ConsistentUnits Command#Legacy and Consistent Units|time units]].<br />
* <tt>(props)</tt> forces archiving if <tt>(props)</tt> propagations and/or debonds have occurred since the last archive (default is 0, which disables counting of propagations).<br />
* <tt>(resultName)</tt> is an archive quantity (from case insensitive names given [[#ToArchive Command|above]]). The <tt>setting</tt> can be 'Y' or 'N' to archive or not archive (and the default is 'Y').<br />
<br />
==== Alternative Archiving Option in XML Files ====<br />
<br />
The <tt>MPMArchive</tt> became available in Dec. 2016. Prior to that command, MPM archiving options were set instead with the two commands:<br />
<br />
<MPMArchiveOrder>iYYYYNYYYNYYNNNNNYNNNNNN</MPMArchiveOrder><br />
<CrackArchiveOrder>iYYYNNN</CrackArchiveOrder><br />
<br />
When using these commands instead of <tt>MPMArchive</tt> commands (and they are still allowed), calculation results included in the archive files are determined by a series of 'Y' and 'N' (or other) flags in the strings in the <tt>MPMArchiveOrder</tt> and <tt>CrackArchiveOrder</tt> commands. The byte options are described in following two sections<br />
<br />
===== <MPMArchiveOrder> =====<br />
<br />
<ul><br />
<li>Byte 1: byte order of archived files ('m' for old Macintosh order or 'i' for Intel chip order). This parameter is ignored on input but must be supplied for alignment.</li><br />
<li>Byte 2: default particle properties (particle mass, position, material information, and thickness). This byte must always by 'Y'.</li><br />
<li>Byte 3: particle velocity</li><br />
<li>Byte 4: particle stress</li><br />
<li>Byte 5: symmetric part of the displacement gradient ('''F-I'''), which in combination with rotational strain (Byte 18) gives full deformation gradient</li><br />
<li>Byte 6: an alternate particle strain; it is plastic strain for some [[Material Models|materials]], of something else for others</li><br />
<li>Byte 7: should always be 'N'. Present to support reading old versions of archive files.</li><br />
<li>Byte 8: particle work energy, which is cumulative &sigma;.d&epsilon;</li><br />
<li>Byte 9: particle temperature</li><br />
<li>Byte 10: particle plastic energy</li><br />
<li>Byte 11: should always be 'N'. Present to support reading old versions of archive files.</li><br />
<li>Byte 12: particle total shear strain components (du/dy and dv/dx), but no longer supported in visualization tools; it should be 'N'</li><br />
<li>Byte 13: particle strain energy, which is cumulative &sigma;.d(&epsilon;-&epsilon;<sub>res</sub>)</li><br />
<li>Byte 14: setting 'Y' or 'N' refers to particle history variable 1, but up to four history variables can be archived by using the following characters (note: the quantities archived are determined by the 4 least significant bits in the ASCII code shown for that character):<br />
<pre class="near"><br />
'1' (0x31) or 'Y' - history 1<br />
'2' (0x32) - history 2<br />
'3' (0x33) - history 1 and 2<br />
'4' (0x34) - history 3<br />
'5' (0x35) - history 1 and 3<br />
'6' (0x36) - history 2 and 3<br />
'7' (0x37) - history 1, 2, and 3<br />
'8' (0x38) - history 4<br />
'9' (0x39) - history 1 and 4<br />
':' (0x3A) - history 2 and 4<br />
';' (0x3B) - history 1, 2, and 4<br />
'&lt;' (0x3C) - history 3 and 4 (use '|' (0x7C) to avoid '&lt;' in an XML file)<br />
'=' (0x3D) - history 1, 3, and 4<br />
'&gt;' (0x3E) - history 2, 3, and 4 (use '~' (0x7E) to avoid '&gt;' in an XML file)<br />
'?' (0x3F) - history 1, 2, 3, and 4<br />
</pre><br />
History variables are only meaningful for some [[Material Models|material types]]. See byte 22 to 24 below to archive history data beyond #4. To archive more history data or to archive to a different format, you can use the [[HistoryArchive Custom Task]].</li><br />
<li>Byte 15: particle concentration and concentration gradients (when doing [[Diffusion Calculations|diffusion calculations]]) or particle pore pressure and pore pressure gradients (when doing [[Poroelasticity Calculations|poroelasticity calculations]]).</li><br />
<li>Byte 16: particle heat energy; the value will only be physically correct if all [[Material Models|materials]] specify their heat capacity</li><br />
<li>Byte 17: number of times this particle crossed an element boundary since the last archive time.</li><br />
<li>Byte 18: particle rotational strain or antisymmetric part of the deformation gradient. Archiving this strain is needed to plot transformed material points and it is now automatically activated whenever strain or Byte 5 is Y (which means full deformation gradient is archived).</li><br />
<li>Byte 19: the normal vector of the failure plane in the particle when using [[Material Models#Softening Materials|softening materials]].</li><br />
<li>Byte 20: the angular momentum due to particle spin (zero unless [[Analysis Command#Tracking Particle Spin|particle spin]] is activated).</li><br />
<li>Byte 21: the angular velocity due to particle spin (zero unless [[Analysis Command#Tracking Particle Spin|particle spin]] is activated; also zero on time step 0 due to calculations methods).</li><br />
<li>Byte 22: setting 'Y' or 'N' refers to particle history variable 5, but up to five more history variables can be archived by using the following characters (note: the quantities archived are determined by the 5 least significant bits in the ASCII code provided for that character):<br />
<pre class="near"><br />
'!' (0x21) or 'Y' - history 5<br />
'"' (0x22) - history 6<br />
'#' (0x23) - history 5 and 6<br />
'$' (0x24) - history 7<br />
'%' (0x25) - history 5 and 7<br />
'&amp;' (0x26) - history 6 and 7 (use 'f' (0x66) to avoid '&amp;' in an XML file)<br />
''' (0x27) - history 5, 6, and 7<br />
'(' (0x28) - history 8<br />
')' (0x29) - history 5 and 8<br />
'*' (0x2A) - history 6 and 8<br />
'+' (0x2B) - history 5, 6, and 8<br />
',' (0x2C) - history 7 and 8<br />
'-' (0x2D) - history 5, 7, and 8<br />
'/' (0x2E) - history 6, 7, and 8<br />
'/' (0x2F) - history 5, 6, 7, and 8<br />
'0' (0x30) - history 9<br />
'1' (0x31) - history 5 and 9<br />
'2' (0x32) - history 6 and 9<br />
'3' (0x33) - history 5, 6, and 9<br />
'4' (0x34) - history 7 and 9<br />
'5' (0x35) - history 5, 7, and 9<br />
'6' (0x36) - history 6, 7, and 9<br />
'7' (0x37) - history 5, 6, 7, and 9<br />
'8' (0x38) - history 8 and 9<br />
'9' (0x39) - history 5, 8, and 9<br />
':' (0x3A) - history 6, 8, and 9<br />
';' (0x3B) - history 5, 6, 8, and 4<br />
'&lt;' (0x3C) - history 7, 8, and 9 (use '|' (0x7C) to avoid '&lt;' in an XML file)<br />
'=' (0x3D) - history 5, 7, 8, and 9<br />
'&gt;' (0x3E) - history 6, 7, 8, and 9 (use '~' (0x7E) to avoid '&gt;' in an XML file)<br />
'?' (0x3F) - history 5, 6, 7, 8, and 9<br />
</pre><br />
History variables are only meaningful for some [[Material Models|material types]]. See next two bytes to archive history data beyond #9.</li><br />
<li>Byte 23: setting 'Y' or 'N' refers to particle history variable 10, but history variables 10 to 14 can be archived using the characters listed for byte 22 (and replacing 5 to 9 with 10 to 14). See next byte to archive history data beyond #14.</li><br />
<li>Byte 24: setting 'Y' or 'N' refers to particle history variable 15, but history variables 15 to 19 can be archived using the characters listed for byte 22 (and replacing 5 to 9 with 15 to 19). To archive history data beyond #19 or to archive to a different format, you can use the [[HistoryArchive Custom Task]]. </li><br />
<li>Byte 25: particle size</li><br />
</ul><br />
<br />
'''Default value''': <tt>iYNN...</tt> - <i>i.e.</i> one Y and the rest N<br />
<br />
===== <CrackArchiveOrder> =====<br />
<br />
<ul><br />
<li>Byte 1: Byte order of archived files ('m' for Macintosh order or 'i' for Intel chip order). This parameter is ignored on input but must be supplied for alignment.</li><br />
<li>Byte 2: Default crack particle properties (location, surface positions). This byte must always by 'Y'.</li><br />
<li>Byte 3: J Integral at designated crack tips.</li><br />
<li>Byte 4: Stress intensity factors at designated crack tips.</li><br />
<li>Byte 5: Mode I and Mode II energy dissipated by a cohesive zone.</li><br />
<li>Byte 6: Setting 'Y' or 'N' refers to traction history variable 1, but traction history variables 1 to 5 can be archived using the characters listed for byte 22 in the [[#<MPMArchiveOrder>|previous section]] (and replacing 5 to 9 with traction 1 to 5). See next byte to archive traction history data beyond #5.</li><br />
<li>Byte 7: Setting 'Y' or 'N' refers to traction history variable 6, but traction history variables 6 to 10 can be archived using the characters listed for byte 22 in the [[#<MPMArchiveOrder>|previous section]] (and replacing 5 to 9 with traction 6 to 10).</li><br />
</ul><br />
<br />
'''Default value''': <tt>iYNN...</tt> - <i>i.e.</i> one Y and the rest N.<br />
<br />
== Archiving Mesh Data in VTK Files ==<br />
<br />
As an alternative to particle data, you can archive grid results using the [[VTKArchive Custom Task]], which write "VTK Legacy" files that can be viewed in other applications. This option is most useful for new visualization options for 3D simulations.<br />
<br />
== Notes ==<br />
<br />
# There are no options for archiving kinetic energy because it is easily calculated in visualization software from mass and velocity. Thus, to do kinetic energy calculations, you must archive particle velocity.<br />
# Total energy is sum of strain energy and kinetic energy. To visualize total energy results, you must archive strain energy and velocity (for kinetic energy)</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=MPM_Archiving_Options&diff=9894MPM Archiving Options2023-12-12T19:16:45Z<p>Nairnj: /* ToArchive Command */</p>
<hr />
<div>These commands determine the way results of the calculations are archived for later analysis.<br />
<br />
== Archiving Particle Data ==<br />
<br />
In MPM calculations, the calculation results are stored in a series of archive files. These files give periodic snapshots for the state of each material point. These files are read after the analysis to plot the results; in fact the results cannot be visualized without them. For more details, you can refer to the [[Archive File Formats|output file format definition]].<br />
<br />
=== Scripted Input Files ===<br />
<br />
In scripted input files, the archiving options have two forms:<br />
<br />
Archive (path)<br />
ArchiveTime (time),<(first time)>,<(props)><br />
<ArchiveTime (time2),(second time),<(props2)>><br />
<ArchiveTime (time3),(third time),<(props3)>><br />
ToArchive (list of quantities)<br />
<br />
or<br />
<br />
ArchiveUnique (path)<br />
ArchiveTime (time),<(first time)>,<(props)><br />
<ArchiveTime (time2),<(second time)>,<(props2)>><br />
<ArchiveTime (time3),(third time),<(props3)>><br />
ToArchive (list on quantities)<br />
<br />
where<br />
<br />
<ul><br />
<li><span id="path_name"></span><tt>(path)</tt> gives a relative path name from the saved output file to the archived files. The path name should be entered in Unix style or<br />
<br />
<pre>folder/folder/folder/root</pre><br />
<br />
where there can be any number of folders followed by the root archive file name. The saved files will be in that location and have names<br />
<br />
<pre>root.num</pre><br />
<br />
where <tt>num</tt> is the step number being archived. The folder names and root name cannot contain any colons (":"), to avoid conflict with MacOS path names) or spaces (to be consistent with most Unix systems).<br><br />
&nbsp;&nbsp;&nbsp;If a series MPM calculations are saved to the same folder without changing the archive path name, the later calculations will most likely overwrite the earlier calculations causing you to lose results. The solution is to use the second form above that replaces the <tt>Archive</tt> command with an <tt>ArchiveUnique</tt> command. The <tt>ArchiveUnique</tt> command forces creation of a new folder within the last folder of the path. In the above path example, the <tt>ArchiveUnique</tt> option will write to the files:<br />
<br />
<pre>folder/folder/folder/#/root.num</pre><br />
<br />
where # is chosen from 1, 2, 3, ... to create a unique folder. You can then safely write multiple MPM output files to the save folder without conflicts<br />
<br />
<li><span id="atime"></span><tt>(time)</tt> gives the time interval between archiving results in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]] (it can be an [[Entity Command|entity]]). The analysis will always archive the initial state (to define the problem). You only need to archive enough results to get good plots or movies after the analysis is done.</li><br />
<br />
<li><span id="ftime"></span><tt>(first time)</tt> is an optional time to start archiving in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]] (it can be an [[Entity Command|entity]]). If this time is greater than zero, the analysis will archive the initial state (to define the problem) and not archive anymore more results until this time is reached. After this time, archiving will proceed at the time interval specified in <tt>(time)</tt>.<br />
<br />
<li><tt>(props)</tt> forces archiving if <tt>(props)</tt> propagations and/or debonds have occurred since the last archive (default is 0, which disables counting of propagations).</li><br />
<br />
<li><tt>(list on quantities)</tt> is a comma-separted list of quantities to be archived (see [[#ToArchive Command|<tt>ToArchive</tt> command]] for the details.<br />
<br />
</ul><br />
<br />
A single <tt>ArchiveTime</tt> command is usually enough, but sometimes you want to archive infrequently at the beginning and then more frequently later or to archive by some other custom scheme. To create custom archiving schemes, you create archiving blocks with multiple <tt>ArchiveTime</tt> commands. Each subsequent <tt>ArchiveTime</tt> command adds a new block that archives with new <tt>(time)</tt> and <tt>(props)</tt> settings in the first and optional third arguments. The new block starts at the time given in the second parameter, which is now a required parameter and it must be a later time than the start of the previous archiving block.<br />
<br />
==== ToArchive Command ====<br />
<br />
The <tt>ToArchive</tt> command determines which calculation results to include in archived results by providing a comma-separated list of the following options (which can be in one or more ToArchive commands and are case sensitive):<br />
<br />
<ul><br />
<li><tt>velocity</tt> - particle velocities</li><br />
<li><tt>stress</tt> - particle stress</li><br />
<li><tt>strain</tt> - symmetric part of the displacement gradient ('''F-I'''), which in combination with <tt>rotstrain</tt> gives full deformation gradient</li><br />
<li><tt>plasticstrain</tt> - an alternate particle strain; it is plastic strain for some [[Material Models|materials]], or something else for others</li><br />
<li><tt>rotstrain</tt> - initial material axis rotation angles. Archiving this strain is needed to find rotation strains, deformation gradients, and to plot transformed material points. It is now automatically activated whenever <tt>strain</tt> is archived and therefore normall does not need to be set.</li><br />
<li><tt>strainenergy</tt> - particle strain energy, which is cumulative <i>V</i>*&sigma;.d(&epsilon;-&epsilon;<sub>res</sub>)</li><br />
<li><tt>workenergy</tt> - particle work energy, which is cumulative <i>V</i>*&sigma;.d&epsilon;</li><br />
<li><tt>heatenergy</tt> - particle heat energy; the value will only be physically correct if all [[Material Models|materials]] specify their heat capacity</li><br />
<li><tt>plasticenergy</tt> - cumulative dissipated energy (despite the name, it is energy dissipated by any modeled mechanism)</li><br />
<li><tt>lp</tt> - the angular momentum due to particle spin (zero unless [[Analysis Command#Tracking Particle Spin|particle spin]] is activated).</li><br />
<li><tt>wp</tt> - the angular velocity due to particle spin (zero unless [[Analysis Command#Tracking Particle Spin|particle spin]] is activated; also zero on time step 0 due to calculations methods).</li><br />
<li><tt>temperature</tt> - particle temperature</li><br />
<li><tt>concentration</tt> or <tt>porepressure</tt> - particle concentration and concentration gradient (when doing [[Diffusion Calculations|diffusion calculations]]) or particle pore pressure and pore pressure gradient (when doing [[Poroelasticity Calculations|poroelasticity calculations]]).</li><br />
<li><tt>history#</tt> - where '#' is 1 to 19 to archive that history variable for a [[Material Models|material]]. These history variables are only relevant for certain types of materials. To archive history data beyond #19 or to archive to a different format, you can use the [[HistoryArchive Custom Task]].</li><br />
<li><tt>elementcrossings</tt> - number of times the particle has crossed an element boundary since the last archive time.</li><br />
<li><tt>damagenormal</tt> - the normal vector of the failure plane in the particle when using [[Material Models#Softening Materials|softening materials]].</li><br />
<li><tt>size</tt> - to archive particle sizes. The main use is to allow [[ExtractMPM]] to export an VTK file with an unstructured grid (<tt>-U</tt> option). This output can improve visualization in software like [[ParaView]] or [[VisIt]].</li><br />
</ul><br />
<br />
The follow options archive options are for crack particles:<br />
<br />
<ul><br />
<li><tt>jintegral</tt> - crack tip J1 and J2 integrals</li><br />
<li><tt>stressintensity</tt> - crack tip KI and KII</li><br />
<li><tt>czmdisp</tt> - mode I and mode II energy dissipated per unit area by cohesive zones. Needed to be able to plot cohesive zone damage length or to find [[Traction Laws#Fracture Mechanics Energy Release Rate|fracture mechanics energy release rate]].</li><br />
<li><tt>traction#</tt> - where '#' is 1 to 10 to archive that traction history variable for a [[Traction Laws|traction law]]. These history variables are only relevant for certain types of [[Traction Laws|cohesive laws]].</li><br />
</ul><br />
<br />
Certain particle results are always archived and thus there is no need to specify them in a <code>ToArchive</code> command. The standard archived data are:<br />
<br />
<ul><br />
<li><tt>mass</tt> - particle mass</li><br />
<li><tt>material ID</tt> - material ID number for particle</li><br />
<li><tt>material angle</tt> - small-strain material angle (this is combined with <tt>strains</tt> and <tt>rotstrain</tt> to find [[Archive File Formats#Rotational Strains and Deformation Gradient|rotational strains and deformation gradients]].</li><br />
<li><tt>thickness</tt> - thickness for 2D calculations</li><br />
<li><tt>position</tt> - current particle position</li><br />
<li><tt>original position</tt> - initial position for displacement calculations</li><br />
<li><tt>crack position</tt> - crack particle positions</li><br />
<li><tt>crack original position</tt> - initial crack particle positions</li><br />
<li><tt>crack surface positions</tt> - location of crack surfaces</li><br />
</ul><br />
<br />
Finally, note that if no <tt>ToArchive</tt> command is used, only minimal information is archived (''e.g.'', particle positions). You will need some <tt>ToArchive</tt> commands to be able to later visualize calculations results.<br />
<br />
=== XML Input Files ===<br />
<br />
In XML input files, the archiving commands, which must be within the [[MPM Input Files#MPM Header|<tt><MPMHeader></tt> element]], are:<br />
<br />
<ArchiveRoot unique='0'>(path)</ArchiveRoot><br />
<ArchiveGroup time= '(time)' start='(first time)' maxProps='(props)'/><br />
<MPMArchive result="(resultName)" setting='(YorN)'/><br />
<MPMArchive result="(resultName)" setting='(YorN)'/><br />
...<br />
<MPMArchive result="(resultName)" setting='(YorN)'/><br />
<br />
where<br />
<br />
* <tt>(path)</tt> is the archive path. The optional <tt>unique</tt> attribute (if = 1) will force the creation of a new folder. Both these settings are as explained [[#path_name|above]].<br />
* <tt>(time)</tt> is the [[#atime|time interval between archiving]]. A [[Units Attribute|units attribute]] determines the time units or default is [[ConsistentUnits Command#Legacy and Consistent Units|time units]].<br />
* <tt>(first time)</tt> is the [[#ftime|first time results are archived]]. A [[Units Attribute|units attribute]] determines the time units or default is [[ConsistentUnits Command#Legacy and Consistent Units|time units]].<br />
* <tt>(props)</tt> forces archiving if <tt>(props)</tt> propagations and/or debonds have occurred since the last archive (default is 0, which disables counting of propagations).<br />
* <tt>(resultName)</tt> is an archive quantity (from case insensitive names given [[#ToArchive Command|above]]). The <tt>setting</tt> can be 'Y' or 'N' to archive or not archive (and the default is 'Y').<br />
<br />
==== Alternative Archiving Option in XML Files ====<br />
<br />
The <tt>MPMArchive</tt> became available in Dec. 2016. Prior to that command, MPM archiving options were set instead with the two commands:<br />
<br />
<MPMArchiveOrder>iYYYYNYYYNYYNNNNNYNNNNNN</MPMArchiveOrder><br />
<CrackArchiveOrder>iYYYNNN</CrackArchiveOrder><br />
<br />
When using these commands instead of <tt>MPMArchive</tt> commands (and they are still allowed), calculation results included in the archive files are determined by a series of 'Y' and 'N' (or other) flags in the strings in the <tt>MPMArchiveOrder</tt> and <tt>CrackArchiveOrder</tt> commands. The byte options are described in following two sections<br />
<br />
===== <MPMArchiveOrder> =====<br />
<br />
<ul><br />
<li>Byte 1: byte order of archived files ('m' for old Macintosh order or 'i' for Intel chip order). This parameter is ignored on input but must be supplied for alignment.</li><br />
<li>Byte 2: default particle properties (particle mass, position, material information, and thickness). This byte must always by 'Y'.</li><br />
<li>Byte 3: particle velocity</li><br />
<li>Byte 4: particle stress</li><br />
<li>Byte 5: symmetric part of the displacement gradient ('''F-I'''), which in combination with rotational strain (Byte 18) gives full deformation gradient</li><br />
<li>Byte 6: an alternate particle strain; it is plastic strain for some [[Material Models|materials]], of something else for others</li><br />
<li>Byte 7: should always be 'N'. Present to support reading old versions of archive files.</li><br />
<li>Byte 8: particle work energy, which is cumulative &sigma;.d&epsilon;</li><br />
<li>Byte 9: particle temperature</li><br />
<li>Byte 10: particle plastic energy</li><br />
<li>Byte 11: should always be 'N'. Present to support reading old versions of archive files.</li><br />
<li>Byte 12: particle total shear strain components (du/dy and dv/dx), but no longer supported in visualization tools; it should be 'N'</li><br />
<li>Byte 13: particle strain energy, which is cumulative &sigma;.d(&epsilon;-&epsilon;<sub>res</sub>)</li><br />
<li>Byte 14: setting 'Y' or 'N' refers to particle history variable 1, but up to four history variables can be archived by using the following characters (note: the quantities archived are determined by the 4 least significant bits in the ASCII code shown for that character):<br />
<pre class="near"><br />
'1' (0x31) or 'Y' - history 1<br />
'2' (0x32) - history 2<br />
'3' (0x33) - history 1 and 2<br />
'4' (0x34) - history 3<br />
'5' (0x35) - history 1 and 3<br />
'6' (0x36) - history 2 and 3<br />
'7' (0x37) - history 1, 2, and 3<br />
'8' (0x38) - history 4<br />
'9' (0x39) - history 1 and 4<br />
':' (0x3A) - history 2 and 4<br />
';' (0x3B) - history 1, 2, and 4<br />
'&lt;' (0x3C) - history 3 and 4 (use '|' (0x7C) to avoid '&lt;' in an XML file)<br />
'=' (0x3D) - history 1, 3, and 4<br />
'&gt;' (0x3E) - history 2, 3, and 4 (use '~' (0x7E) to avoid '&gt;' in an XML file)<br />
'?' (0x3F) - history 1, 2, 3, and 4<br />
</pre><br />
History variables are only meaningful for some [[Material Models|material types]]. See byte 22 to 24 below to archive history data beyond #4. To archive more history data or to archive to a different format, you can use the [[HistoryArchive Custom Task]].</li><br />
<li>Byte 15: particle concentration and concentration gradients (when doing [[Diffusion Calculations|diffusion calculations]]) or particle pore pressure and pore pressure gradients (when doing [[Poroelasticity Calculations|poroelasticity calculations]]).</li><br />
<li>Byte 16: particle heat energy; the value will only be physically correct if all [[Material Models|materials]] specify their heat capacity</li><br />
<li>Byte 17: number of times this particle crossed an element boundary since the last archive time.</li><br />
<li>Byte 18: particle rotational strain or antisymmetric part of the deformation gradient. Archiving this strain is needed to plot transformed material points and it is now automatically activated whenever strain or Byte 5 is Y (which means full deformation gradient is archived).</li><br />
<li>Byte 19: the normal vector of the failure plane in the particle when using [[Material Models#Softening Materials|softening materials]].</li><br />
<li>Byte 20: the angular momentum due to particle spin (zero unless [[Analysis Command#Tracking Particle Spin|particle spin]] is activated).</li><br />
<li>Byte 21: the angular velocity due to particle spin (zero unless [[Analysis Command#Tracking Particle Spin|particle spin]] is activated).</li><br />
<li>Byte 22: setting 'Y' or 'N' refers to particle history variable 5, but up to five more history variables can be archived by using the following characters (note: the quantities archived are determined by the 5 least significant bits in the ASCII code provided for that character):<br />
<pre class="near"><br />
'!' (0x21) or 'Y' - history 5<br />
'"' (0x22) - history 6<br />
'#' (0x23) - history 5 and 6<br />
'$' (0x24) - history 7<br />
'%' (0x25) - history 5 and 7<br />
'&amp;' (0x26) - history 6 and 7 (use 'f' (0x66) to avoid '&amp;' in an XML file)<br />
''' (0x27) - history 5, 6, and 7<br />
'(' (0x28) - history 8<br />
')' (0x29) - history 5 and 8<br />
'*' (0x2A) - history 6 and 8<br />
'+' (0x2B) - history 5, 6, and 8<br />
',' (0x2C) - history 7 and 8<br />
'-' (0x2D) - history 5, 7, and 8<br />
'/' (0x2E) - history 6, 7, and 8<br />
'/' (0x2F) - history 5, 6, 7, and 8<br />
'0' (0x30) - history 9<br />
'1' (0x31) - history 5 and 9<br />
'2' (0x32) - history 6 and 9<br />
'3' (0x33) - history 5, 6, and 9<br />
'4' (0x34) - history 7 and 9<br />
'5' (0x35) - history 5, 7, and 9<br />
'6' (0x36) - history 6, 7, and 9<br />
'7' (0x37) - history 5, 6, 7, and 9<br />
'8' (0x38) - history 8 and 9<br />
'9' (0x39) - history 5, 8, and 9<br />
':' (0x3A) - history 6, 8, and 9<br />
';' (0x3B) - history 5, 6, 8, and 4<br />
'&lt;' (0x3C) - history 7, 8, and 9 (use '|' (0x7C) to avoid '&lt;' in an XML file)<br />
'=' (0x3D) - history 5, 7, 8, and 9<br />
'&gt;' (0x3E) - history 6, 7, 8, and 9 (use '~' (0x7E) to avoid '&gt;' in an XML file)<br />
'?' (0x3F) - history 5, 6, 7, 8, and 9<br />
</pre><br />
History variables are only meaningful for some [[Material Models|material types]]. See next two bytes to archive history data beyond #9.</li><br />
<li>Byte 23: setting 'Y' or 'N' refers to particle history variable 10, but history variables 10 to 14 can be archived using the characters listed for byte 22 (and replacing 5 to 9 with 10 to 14). See next byte to archive history data beyond #14.</li><br />
<li>Byte 24: setting 'Y' or 'N' refers to particle history variable 15, but history variables 15 to 19 can be archived using the characters listed for byte 22 (and replacing 5 to 9 with 15 to 19). To archive history data beyond #19 or to archive to a different format, you can use the [[HistoryArchive Custom Task]]. </li><br />
<li>Byte 25: particle size</li><br />
</ul><br />
<br />
'''Default value''': <tt>iYNN...</tt> - <i>i.e.</i> one Y and the rest N<br />
<br />
===== <CrackArchiveOrder> =====<br />
<br />
<ul><br />
<li>Byte 1: Byte order of archived files ('m' for Macintosh order or 'i' for Intel chip order). This parameter is ignored on input but must be supplied for alignment.</li><br />
<li>Byte 2: Default crack particle properties (location, surface positions). This byte must always by 'Y'.</li><br />
<li>Byte 3: J Integral at designated crack tips.</li><br />
<li>Byte 4: Stress intensity factors at designated crack tips.</li><br />
<li>Byte 5: Mode I and Mode II energy dissipated by a cohesive zone.</li><br />
<li>Byte 6: Setting 'Y' or 'N' refers to traction history variable 1, but traction history variables 1 to 5 can be archived using the characters listed for byte 22 in the [[#<MPMArchiveOrder>|previous section]] (and replacing 5 to 9 with traction 1 to 5). See next byte to archive traction history data beyond #5.</li><br />
<li>Byte 7: Setting 'Y' or 'N' refers to traction history variable 6, but traction history variables 6 to 10 can be archived using the characters listed for byte 22 in the [[#<MPMArchiveOrder>|previous section]] (and replacing 5 to 9 with traction 6 to 10).</li><br />
</ul><br />
<br />
'''Default value''': <tt>iYNN...</tt> - <i>i.e.</i> one Y and the rest N.<br />
<br />
== Archiving Mesh Data in VTK Files ==<br />
<br />
As an alternative to particle data, you can archive grid results using the [[VTKArchive Custom Task]], which write "VTK Legacy" files that can be viewed in other applications. This option is most useful for new visualization options for 3D simulations.<br />
<br />
== Notes ==<br />
<br />
# There are no options for archiving kinetic energy because it is easily calculated in visualization software from mass and velocity. Thus, to do kinetic energy calculations, you must archive particle velocity.<br />
# Total energy is sum of strain energy and kinetic energy. To visualize total energy results, you must archive strain energy and velocity (for kinetic energy)</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=TrackError_Custom_Task&diff=9893TrackError Custom Task2023-12-11T20:21:55Z<p>Nairnj: /* Task Scheduling */</p>
<hr />
<div>A [[MPM Input Files#Custom Tasks|custom task]] to archive simulations results compared to theoretical predictions<br />
__TOC__<br />
== Introduction ==<br />
<br />
This tasks can compare particle values to a theoretical model and archive some metric for accuracy of the simulation. It is useful for tracking convergence of MPM simulations.<br />
<br />
== Simulation Error Metrics ==<br />
<br />
Imagine a generic distance from particle value to a theoretical expectation for that value equal to <math>|x_p|</math>. For example, the distance could be scalar difference between particle stress in the <tt>x</tt> direction and expected stress:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>|x_p| = |\sigma_{p,xx} - \sigma_{xx}({\rm theory})|</math><br />
<br />
If the particle value is a vector, the distance would be a vector distance between value and expection. For example, a velocity distance would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>|x_p| = \sqrt{\bigl(\vec V_p-\vec V({\rm theory})\bigr)\cdot\bigl(\vec V_p-\vec V({\rm theory})\bigr)}</math><br />
<br />
The P-norm for a given distance definition and for <math>N_p</math> particles is defined as:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>||x||_P = \left( \sum_{p=1}^{N_p} |x_p|^P\right)^{1/P}</math><br />
<br />
The same distance can also define a root-mean-squared distance defined as:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>{\rm RMS} = \sqrt{{1\over N_p} \sum_{p=1}^{N_p} |x_p|^2}</math><br />
<br />
This task can archive mean P-norm values and RMS distances for any entered function for <math>|x_p|</math>. The archived values can be for each time step or cumulatively averaged over all time step calculations.<br />
<br />
== Task Scheduling ==<br />
<br />
In scripted files, a <tt>TrackError</tt> custom task is scheduled using<br />
<br />
CustomTask TrackError<br />
Parameter archiveTime,(timeInterval)<br />
Parameter firstArchiveTime,(firstTime)<br />
Parameter cumulative,(cumulative)<br />
Parameter P,(Pvalue)<br />
Parameter function,(xpexpr)<br />
. . .<br />
<br />
In <tt>XML</tt> files, this task is scheduled using a <tt>Schedule</tt> element, which must be within the single <tt><CustomTasks></tt> block:<br />
<br />
<Schedule name='TrackError'><br />
<Parameter name='archiveTime'>(timeInterval)</Parameter><br />
<Parameter name='firstArchiveTime'>(firstTime)</Parameter><br />
<Parameter name='cumulative'>(cumulative)</Parameter><br />
<Parameter name='P'>(Pvalue)</Parameter><br />
<Parameter name='function'>(xpexpr)</Parameter><br />
. . .<br />
</Schedule><br />
<br />
where the first two parameters, both of which are optional, are<br />
<br />
* <tt>(timeInterval)</tt> - Enter the time interval (in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]]) between calculations of error metrics. If this parameter is omitted, the calculations are done on the same steps as the [[MPM Archiving Options|particle archives]].<br />
* <tt>(firstTime)</tt> - Enter the time to start error metric calculations (in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]]). After this time is reached, subsequent calculations will be spaced by the entered <tt>(timeInterval)</tt>. This parameter is ignored unless the <tt>(timeInterval)</tt> parameter is set as well.<br />
<br />
Next, you enter up to 10 <tt>(xpexpr)</tt><math>=|x_p|</math> expressions for evaluating a "distance." The expressions are written in the style of [[User Defined Functions|user-defined functions]], but can contain different variables:<br />
<br />
* <tt>t</tt> for simulation time (in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]])<br />
* <tt>x</tt>, <tt>y</tt>, and <tt>z</tt> for particle position (in [[ConsistentUnits Command#Legacy and Consistent Units|length units]])<br />
* <tt>xo</tt>, <tt>yo</tt>, and <tt>zo</tt> for original particle position (in [[ConsistentUnits Command#Legacy and Consistent Units|length units]])<br />
* <tt>vx</tt>, <tt>vy</tt>, and <tt>vz</tt> for particle velocity (in [[ConsistentUnits Command#Legacy and Consistent Units|velocity units]])<br />
* <tt>sxx</tt>, <tt>syy</tt>, <tt>szz</tt>, <tt>sxy</tt>, <tt>sxz</tt>, and <tt>syz</tt> for particle stress (in [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]])<br />
<br />
To determine the type of error metric that is calculated, enter <tt>(cumulative)</tt> and <tt>(Pvalue)</tt> options ''before'' entering the <tt>(xpexpr)</tt> expressions. Once these parameters are set, they apply to all subsequent <tt>(xpexpr)</tt> expressions unless changed to new values with new <tt>Parameter</tt> commands. Their functions are<br />
<br />
*<tt>(cumulative)</tt> - set to 0 or 1. If 0, the error metric is found for each time step. If 1, the error metric is averaged over all time steps with calculations. The default is 0 (if never entered).<br />
*<tt>(Pvalue)</tt> - determines the error metric that is calculated. The default is 2 (if never entered).<br />
<br />
Equations for the calculated error metrics for each combination of <tt>(cumulative)</tt> and <tt>(Pvalue)</tt> are in the following table (and <math>N_s</math> is the number of calculation time steps).<br />
<br />
{| class="wikitable"<br />
|-<br />
! (Pvalue) !! (cumulative)=0 !! (cumulative)=1 <br />
|-<br />
| 0 (RMS error) || <math>\sqrt{{1\over N_p} \sum_{p=1}^{N_p} ({\rm xpexpr})^2}</math> || <math>{1\over N_s}\sum_{i=1}^{N_s} \sqrt{{1\over N_p} \sum_{p=1}^{N_p} ({\rm xpexpr})^2}</math><br />
|-<br />
| P&gt;0 (mean P-norm) || <math>{1\over N_p}\left( \sum_{p=1}^{N_p} ({\rm xpexpr})^P\right)^{1/P}</math> || <math>{1\over N_s}\sum_{s=1}^{N_s}\left({1\over N_p} \sum_{p=1}^{N_p} ({\rm xpexpr})^P\right)^{1/P}</math><br />
|}<br />
<br />
=== TrackError Output ===<br />
<br />
The <tt>TrackError</tt> calculations will be written to a tab-delimited text file with name<br />
<br />
(path)_Error(num).txt<br />
<br />
where <tt>(path)</tt> is the path name used to [[MPM Archiving Options|archive results]] and <tt>(num)</tt> is the <tt>TrackError</tt> task number. A single <tt>TrackError</tt> task can track up to 10 error functions. An MPM simulation can use any number of <tt>TrackError</tt> tasks if it needs more than 10 error function or if you prefer the error metrics to be in separate files.<br />
<br />
Note that calculations in files written by a <tt>TrackError</tt> task can be plotted in [[NairnFEAMPM]] or [[NairnFEAMPMViz]] by using the "Import..." options for any 2D plots.<br />
<br />
== Notes ==<br />
<br />
# Note the <tt>(Pvalue)=1</tt> is ordinary mean value of the <tt>(xpexpr)</tt> expression. This setting can be used to extend [[MPM Global Archiving Options|global archiving options]] to include arbitrary functions of particle properties or the average of that property over all time steps (by using <tt>(cumulative)=1</tt>.</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=TrackError_Custom_Task&diff=9892TrackError Custom Task2023-12-10T17:46:48Z<p>Nairnj: /* Task Scheduling */</p>
<hr />
<div>A [[MPM Input Files#Custom Tasks|custom task]] to archive simulations results compared to theoretical predictions<br />
__TOC__<br />
== Introduction ==<br />
<br />
This tasks can compare particle values to a theoretical model and archive some metric for accuracy of the simulation. It is useful for tracking convergence of MPM simulations.<br />
<br />
== Simulation Error Metrics ==<br />
<br />
Imagine a generic distance from particle value to a theoretical expectation for that value equal to <math>|x_p|</math>. For example, the distance could be scalar difference between particle stress in the <tt>x</tt> direction and expected stress:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>|x_p| = |\sigma_{p,xx} - \sigma_{xx}({\rm theory})|</math><br />
<br />
If the particle value is a vector, the distance would be a vector distance between value and expection. For example, a velocity distance would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>|x_p| = \sqrt{\bigl(\vec V_p-\vec V({\rm theory})\bigr)\cdot\bigl(\vec V_p-\vec V({\rm theory})\bigr)}</math><br />
<br />
The P-norm for a given distance definition and for <math>N_p</math> particles is defined as:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>||x||_P = \left( \sum_{p=1}^{N_p} |x_p|^P\right)^{1/P}</math><br />
<br />
The same distance can also define a root-mean-squared distance defined as:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>{\rm RMS} = \sqrt{{1\over N_p} \sum_{p=1}^{N_p} |x_p|^2}</math><br />
<br />
This task can archive mean P-norm values and RMS distances for any entered function for <math>|x_p|</math>. The archived values can be for each time step or cumulatively averaged over all time step calculations.<br />
<br />
== Task Scheduling ==<br />
<br />
In scripted files, a <tt>TrackError</tt> custom task is scheduled using<br />
<br />
CustomTask TrackError<br />
Parameter archiveTime,(timeInterval)<br />
Parameter firstArchiveTime,(firstTime)<br />
Parameter cumulative,(cumulative)<br />
Parameter P,(Pvalue)<br />
Parameter function,(xpexpr)<br />
. . .<br />
<br />
In <tt>XML</tt> files, this task is scheduled using a <tt>Schedule</tt> element, which must be within the single <tt><CustomTasks></tt> block:<br />
<br />
<Schedule name='TrackError'><br />
<Parameter name='archiveTime'>(timeInterval)</Parameter><br />
<Parameter name='firstArchiveTime'>(firstTime)</Parameter><br />
<Parameter name='cumulative'>(cumulative)</Parameter><br />
<Parameter name='P'>(Pvalue)</Parameter><br />
<Parameter name='function'>(xpexpr)</Parameter><br />
. . .<br />
</Schedule><br />
<br />
where the first two parameters, both of which are optional, are<br />
<br />
* <tt>(timeInterval)</tt> - Enter the time interval (in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]]) between calculations of error metrics. If this parameter is omitted, the calculations are done on the same steps as the [[MPM Archiving Options|particle archives]].<br />
* <tt>(firstTime)</tt> - Enter the time to start error metric calculations (in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]]). After this time is reached, subsequent calculations will be spaced by the entered <tt>(timeInterval)</tt>. This parameter is ignored unless the <tt>(timeInterval)</tt> parameter is set as well.<br />
<br />
Next, you enter up to 10 <tt>(xpexpr)</tt><math>=|x_p|</math> expressions for evaluating a "distance." The expressions are written in the style of [[User Defined Functions|user-defined functions]], but can contain different variables:<br />
<br />
* <tt>t</tt> for simulation time (in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]])<br />
* <tt>x</tt>, <tt>y</tt>, and <tt>z</tt> for particle position (in [[ConsistentUnits Command#Legacy and Consistent Units|length units]])<br />
* <tt>xo</tt>, <tt>yo</tt>, and <tt>zo</tt> for original particle position (in [[ConsistentUnits Command#Legacy and Consistent Units|length units]])<br />
* <tt>vx</tt>, <tt>vy</tt>, and <tt>vz</tt> for particle velocity (in [[ConsistentUnits Command#Legacy and Consistent Units|velocity units]])<br />
* <tt>sxx</tt>, <tt>syy</tt>, <tt>szz</tt>, <tt>sxy</tt>, <tt>sxz</tt>, and <tt>syz</tt> for particle stress (in [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]])<br />
<br />
To determine the type of error metric that is calculated, enter <tt>(cumulative)</tt> and <tt>(Pvalue)</tt> options ''before'' entering the <tt>(xpexpr)</tt> expressions. Once these parameters are set, they apply to all subsequent <tt>(xpexpr)</tt> expressions unless changed to new values with new <tt>Parameter</tt> commands. Their functions are<br />
<br />
*<tt>(cumulative)</tt> - set to 0 or 1. If 0, the error metric is found for each time step. If 1, the error metric is averaged over all time steps with calculations. The default is 0 (if never entered).<br />
*<tt>(Pvalue)</tt> - determines the error metric that is calculated. The default is 2 (if never entered).<br />
<br />
Equations for the calculated error metrics for each combination of <tt>(cumulative)</tt> and <tt>(Pvallue)</tt> are in the following table (and <math>N_s</math> is the number of calculation time steps).<br />
<br />
{| class="wikitable"<br />
|-<br />
! (Pvalue) !! (cumulative)=0 !! (cumulative)=1 <br />
|-<br />
| 0 (RMS error) || <math>\sqrt{{1\over N_p} \sum_{p=1}^{N_p} ({\rm xpexpr})^2}</math> || <math>{1\over N_s}\sum_{i=1}^{N_s} \sqrt{{1\over N_p} \sum_{p=1}^{N_p} ({\rm xpexpr})^2}</math><br />
|-<br />
| P&gt;0 (mean P-norm) || <math>{1\over N_p}\left( \sum_{p=1}^{N_p} ({\rm xpexpr})^P\right)^{1/P}</math> || <math>{1\over N_s}\sum_{s=1}^{N_s}\left({1\over N_p} \sum_{p=1}^{N_p} ({\rm xpexpr})^P\right)^{1/P}</math><br />
|}<br />
<br />
=== TrackError Output ===<br />
<br />
The <tt>TrackError</tt> calculations will be written to a tab-delimited text file with name<br />
<br />
(path)_Error(num).txt<br />
<br />
where <tt>(path)</tt> is the path name used to [[MPM Archiving Options|archive results]] and <tt>(num)</tt> is the <tt>TrackError</tt> task number. A single <tt>TrackError</tt> task can track up to 10 error functions. An MPM simulation can use any number of <tt>TrackError</tt> tasks if it needs more than 10 error function or if you prefer the error metrics to be in separate files.<br />
<br />
Note that calculations in files written by a <tt>TrackError</tt> task can be plotted in [[NairnFEAMPM]] or [[NairnFEAMPMViz]] by using the "Import..." options for any 2D plots.<br />
<br />
== Notes ==<br />
<br />
# Note the <tt>(Pvalue)=1</tt> is ordinary mean value of the <tt>(xpexpr)</tt> expression. This setting can be used to extend [[MPM Global Archiving Options|global archiving options]] to include arbitrary functions of particle properties or the average of that property over all time steps (by using <tt>(cumulative)=1</tt>.</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=TrackError_Custom_Task&diff=9891TrackError Custom Task2023-12-08T23:52:16Z<p>Nairnj: /* Task Scheduling */</p>
<hr />
<div>A [[MPM Input Files#Custom Tasks|custom task]] to archive simulations results compared to theoretical predictions<br />
__TOC__<br />
== Introduction ==<br />
<br />
This tasks can compare particle values to a theoretical model and archive some metric for accuracy of the simulation. It is useful for tracking convergence of MPM simulations.<br />
<br />
== Simulation Error Metrics ==<br />
<br />
Imagine a generic distance from particle value to a theoretical expectation for that value equal to <math>|x_p|</math>. For example, the distance could be scalar difference between particle stress in the <tt>x</tt> direction and expected stress:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>|x_p| = |\sigma_{p,xx} - \sigma_{xx}({\rm theory})|</math><br />
<br />
If the particle value is a vector, the distance would be a vector distance between value and expection. For example, a velocity distance would be:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>|x_p| = \sqrt{\bigl(\vec V_p-\vec V({\rm theory})\bigr)\cdot\bigl(\vec V_p-\vec V({\rm theory})\bigr)}</math><br />
<br />
The P-norm for a given distance definition and for <math>N_p</math> particles is defined as:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>||x||_P = \left( \sum_{p=1}^{N_p} |x_p|^P\right)^{1/P}</math><br />
<br />
The same distance can also define a root-mean-squared distance defined as:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<math>{\rm RMS} = \sqrt{{1\over N_p} \sum_{p=1}^{N_p} |x_p|^2}</math><br />
<br />
This task can archive mean P-norm values and RMS distances for any entered function for <math>|x_p|</math>. The archived values can be for each time step or cumulatively averaged over all time step calculations.<br />
<br />
== Task Scheduling ==<br />
<br />
In scripted files, a <tt>TrackError</tt> custom task is scheduled using<br />
<br />
CustomTask TrackError<br />
Parameter archiveTime,(timeInterval)<br />
Parameter firstArchiveTime,(firstTime)<br />
Parameter cumulative,(cumulative)<br />
Parameter P,(Pvalue)<br />
Parameter function,(xpexpr)<br />
. . .<br />
<br />
In <tt>XML</tt> files, this task is scheduled using a <tt>Schedule</tt> element, which must be within the single <tt><CustomTasks></tt> block:<br />
<br />
<Schedule name='TrackError'><br />
<Parameter name='archiveTime'>(timeInterval)</Parameter><br />
<Parameter name='firstArchiveTime'>(firstTime)</Parameter><br />
<Parameter name='cumulative'>(cumulative)</Parameter><br />
<Parameter name='P'>(Pvalue)</Parameter><br />
<Parameter name='function'>(xpexpr)</Parameter><br />
. . .<br />
</Schedule><br />
<br />
where the first two parameters, both of which are optional, are<br />
<br />
* <tt>(timeInterval)</tt> - Enter the time interval (in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]]) between calculations of error metrics. If this parameter is omitted, the calculations are done on the same steps as the [[MPM Archiving Options|particle archives]].<br />
* <tt>(firstTime)</tt> - Enter the time to start error metric calculations (in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]]). After this time is reached, subsequent calculations will be spaced by the entered <tt>(timeInterval)</tt>. This parameter is ignored unless the <tt>(timeInterval)</tt> parameter is set as well.<br />
<br />
Next, you enter up to 10 <tt>(xpexpr)</tt><math>=|x_p|</math> expressions for evaluating a "distance." The expressions are written in the style of [[User Defined Functions|user-defined functions]], but can contain different variables:<br />
<br />
* <tt>t</tt> for simulation time (in [[ConsistentUnits Command#Legacy and Consistent Units|alt time units]])<br />
* <tt>x</tt>, <tt>y</tt>, and <tt>z</tt> for particle position (in [[ConsistentUnits Command#Legacy and Consistent Units|length units]])<br />
* <tt>xo</tt>, <tt>yo</tt>, and <tt>zo</tt> for original particle position (in [[ConsistentUnits Command#Legacy and Consistent Units|length units]])<br />
* <tt>vx</tt>, <tt>vy</tt>, and <tt>vz</tt> for particle velocity (in [[ConsistentUnits Command#Legacy and Consistent Units|velocity units]])<br />
* <tt>sxx</tt>, <tt>syy</tt>, <tt>szz</tt>, <tt>sxy</tt>, <tt>sxz</tt>, and <tt>syz</tt> for particle stress (in [[ConsistentUnits Command#Legacy and Consistent Units|pressure units]])<br />
<br />
To determine the type of error metric that is calculated, enter <tt>(cumulative)</tt> and <tt>(Pvalue)</tt> options ''before'' entering the <tt>(xpexpr)</tt> expressions. Once these parameters are set, they apply to all subsequent <tt>(xpexpr)</tt> expressions unless changed to new values with new <tt>Parameter</tt> commands. Their functions are<br />
<br />
*<tt>(cumulative)</tt> - set to 0 or 1. If 0, the error metric is found for each time step. If 1, the error metric is averaged over all time steps with calculations. The default is 0 (if never entered).<br />
*<tt>(Pvalue)</tt> - determines the error metric that is calculated. The default is 2 (if never entered).<br />
<br />
Equations for the calculated error metrics for each combination of <tt>(cumulative)</tt> and <tt>(Pvallue)</tt> are in the following table (and <math>N_s</math> is the number of calculation time steps).<br />
<br />
{| class="wikitable"<br />
|-<br />
! (Pvalue) !! (cumulative)=0 !! (cumulative)=1 <br />
|-<br />
| 0 (RMS error) || <math>\sqrt{{1\over N_p} \sum_{p=1}^{N_p} ({\rm xpexpr})^2}</math> || <math>{1\over N_s}\sum_{i=1}^{N_s} \sqrt{{1\over N_p} \sum_{p=1}^{N_p} ({\rm xpexpr})^2}</math><br />
|-<br />
| P&gt;0 (mean P-norm) || <math>{1\over N_p}\left( \sum_{p=1}^{N_p} ({\rm xpexpr})^P\right)^{1/P}</math> || <math>{1\over N_sN_p}\left( \sum_{s=1}^{N_s}\sum_{p=1}^{N_p} ({\rm xpexpr})^P\right)^{1/P}</math><br />
|}<br />
<br />
=== TrackError Output ===<br />
<br />
The <tt>TrackError</tt> calculations will be written to a tab-delimited text file with name<br />
<br />
(path)_Error(num).txt<br />
<br />
where <tt>(path)</tt> is the path name used to [[MPM Archiving Options|archive results]] and <tt>(num)</tt> is the <tt>TrackError</tt> task number. A single <tt>TrackError</tt> task can track up to 10 error functions. An MPM simulation can use any number of <tt>TrackError</tt> tasks if it needs more than 10 error function or if you prefer the error metrics to be in separate files.<br />
<br />
Note that calculations in files written by a <tt>TrackError</tt> task can be plotted in [[NairnFEAMPM]] or [[NairnFEAMPMViz]] by using the "Import..." options for any 2D plots.<br />
<br />
== Notes ==<br />
<br />
# Note the <tt>(Pvalue)=1</tt> is ordinary mean value of the <tt>(xpexpr)</tt> expression. This setting can be used to extend [[MPM Global Archiving Options|global archiving options]] to include arbitrary functions of particle properties or the average of that property over all time steps (by using <tt>(cumulative)=1</tt>.</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=XPIC_Features&diff=9890XPIC Features2023-11-28T23:20:05Z<p>Nairnj: /* Eliminated XPIC Commands */</p>
<hr />
<div>XPIC(k)<ref name="XPIC"/> and FMPM(k)<ref name="FMPM"/> are two improved forms of MPM. The page explains how to use XPIC(k) and FMPM(k) features.<br />
<br />
== Introduction ==<br />
<br />
The [[Damping Options#PIC Damping|PIC method]] can be described as applying a projection operator that modifies (and filters) particle velocities before updating them with the grid acceleration. The problem with PIC is that its projection operator filters most problems too heavily resulting in significant dissipation of energy. XPIC(k) is a new method that solves the energy dissipation problem, enhances overall stability of MPM, and reduces noise. XPIC(k) defines a series of new projection operators that can significantly reduce the over damping of PIC simulations. XPIC(k) is defined by an order <tt>k</tt>, where <tt>k=1</tt> is PIC, <tt>k&gt;1</tt> is XPIC, and large <tt>k</tt> approaches amethod with all null-space noise removed.<br />
<br />
After deriving XPIC(k)<ref name="XPIC"/> methods, another improvement was to show that XPIC style calculations are equivalent to implementing an MPM method that approximates the inverse of the full mass matrix. Use this revised interpretation, the XPIC(k) scheme was modifed to derive another method denoted FMPM(k)<ref name="FMPM"/>. FMPM(1) defines and improved form of PIC (compared to XPIC(1)) and higher orders also appear to further reduce dissipation compared to XPIC(k).<br />
<br />
== Performance ==<br />
<br />
The drawback of XPIC(k)/FMPM(k) is that each higher order requires an extra extrapolation. The extra calculations scale with k*N where N is the number of particles in the problem. XPIC and FMPM are therefore less efficient than PIC or FLIP. In many problems, <tt>k=2</tt> already provides much improvement over PIC and reduces undesirable energy dissipation with minimal extra calculations. Larger <tt>k</tt> is often better with <tt>k=4</tt> appearing to provide much benefit without too much extra cost. Very high values of <tt>k</tt> (''e.g.'', <tt>k&gt;40</tt>) are typically unstable (due to too many additional extrapolations or to changes in effective eigenvalues for the equations).<br />
<br />
== XPIC(k) and FMPM(k) Commands ==<br />
<br />
XPIC(k)and FMPM(k) simulations are created by scheduling a [[PeriodicXPIC Custom Task]]. In brief, this task selects the XPIC or FMPM order <tt>k</tt> and the frequency for using the calculations. See help on [[PeriodicXPIC Custom Task]] for more details. The remainder of this section describes prior methods for selecting XPIC(k) (but not FMPM(k)). They are no longer available in the latest code.<br />
<br />
=== Eliminated XPIC Commands ===<br />
<br />
Before the [[PeriodicXPIC Custom Task]] was added, XPIC(m) was selected using [[Damping Options#Damping Commands|damping commands]]. Any old input files you have with this command should change those files to use a [[PeriodicXPIC Custom Task]] instead. The deleted command options are:<br />
<br />
Damping (alphagVsT),<(fractionPIC)>,<(XPICOrder)><br />
PDamping (alphapVsT),<(fractionPIC)>,<(XPICOrder)><br />
<br />
where the relevant paramters for XPIC(m) are:<br />
<br />
* <tt>(fractionPIC)</tt> is the [[Damping Options#PIC Damping|fraction PIC]] to use in the simulation. It can vary from 1 for pure XPIC(m) to 0 for pure FLIP. The default is 0. Note that this option is inefficient and was therefore removed. You can replace a fraction XPIC(m) of &phi; in old calculations with XPIC(m) done every <tt>int(1/</tt>&phi;<tt>)</tt> time steps in the [[PeriodicXPIC Custom Task]].<br />
* <tt>(XPICOrder)</tt> to set the XPIC(m) order or <tt>m</tt>. It must be an integer and values less than 1 are set to 1. Note that this parameter is ignored unless PIC is activated with <tt>(fractionPIC)</tt> &gt; 0. The default is 1, which is standard PIC.<br />
<br />
Although <tt>(fractionPIC)</tt> and <tt>(XPICOrder)</tt> can be set in either the <tt>Damping</tt> or the <tt>PDamping</tt> command, only one setting for each is allowed; a simulation will use whichever setting comes last.<br />
<br />
In <tt>XML</tt> input files, <tt>(fractionPIC)</tt> and <tt>(XPICOrder)</tt> can be set with commands in the [[MPM Input Files#MPM Header|<tt><MPMHeader></tt> element]]:<br />
<br />
<Damping PIC='(fractionPIC)' function='(alphagVsT)'>(alphagNum)</Damping><br />
<XPIC order='(XPICOrder)'/><br />
<br />
Note that <tt>(XPICOrder)</tt> is ignored unless <tt>(fractionPIC)</tt> is greater than zero.<br />
<br />
== References ==<br />
<br />
<references><br />
<br />
<ref name="XPIC">C. C. Hammerquist and J. A. Nairn, "A new method for material point method particle updates that reduces noise and enhances stability," <i>Computer Methods in Applied Mechanics and Engineering</i>, <b>318</b>, 724– 738 (2017). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/XPICPaper.pdf See PDF])</ref><br />
<br />
<ref name="FMPM">J. A. Nairn and C. C. Hammerquist, "Material point method simulations using an approximate full mass matrix inverse," <i>Computer Methods in Applied Mechanics and Engineering</i>, in press (2021). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/FMPMPaper.pdf See PDF])</ref><br />
<br />
</references></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=XPIC_Features&diff=9889XPIC Features2023-11-28T23:19:35Z<p>Nairnj: /* Eliminated XPIC Commands */</p>
<hr />
<div>XPIC(k)<ref name="XPIC"/> and FMPM(k)<ref name="FMPM"/> are two improved forms of MPM. The page explains how to use XPIC(k) and FMPM(k) features.<br />
<br />
== Introduction ==<br />
<br />
The [[Damping Options#PIC Damping|PIC method]] can be described as applying a projection operator that modifies (and filters) particle velocities before updating them with the grid acceleration. The problem with PIC is that its projection operator filters most problems too heavily resulting in significant dissipation of energy. XPIC(k) is a new method that solves the energy dissipation problem, enhances overall stability of MPM, and reduces noise. XPIC(k) defines a series of new projection operators that can significantly reduce the over damping of PIC simulations. XPIC(k) is defined by an order <tt>k</tt>, where <tt>k=1</tt> is PIC, <tt>k&gt;1</tt> is XPIC, and large <tt>k</tt> approaches amethod with all null-space noise removed.<br />
<br />
After deriving XPIC(k)<ref name="XPIC"/> methods, another improvement was to show that XPIC style calculations are equivalent to implementing an MPM method that approximates the inverse of the full mass matrix. Use this revised interpretation, the XPIC(k) scheme was modifed to derive another method denoted FMPM(k)<ref name="FMPM"/>. FMPM(1) defines and improved form of PIC (compared to XPIC(1)) and higher orders also appear to further reduce dissipation compared to XPIC(k).<br />
<br />
== Performance ==<br />
<br />
The drawback of XPIC(k)/FMPM(k) is that each higher order requires an extra extrapolation. The extra calculations scale with k*N where N is the number of particles in the problem. XPIC and FMPM are therefore less efficient than PIC or FLIP. In many problems, <tt>k=2</tt> already provides much improvement over PIC and reduces undesirable energy dissipation with minimal extra calculations. Larger <tt>k</tt> is often better with <tt>k=4</tt> appearing to provide much benefit without too much extra cost. Very high values of <tt>k</tt> (''e.g.'', <tt>k&gt;40</tt>) are typically unstable (due to too many additional extrapolations or to changes in effective eigenvalues for the equations).<br />
<br />
== XPIC(k) and FMPM(k) Commands ==<br />
<br />
XPIC(k)and FMPM(k) simulations are created by scheduling a [[PeriodicXPIC Custom Task]]. In brief, this task selects the XPIC or FMPM order <tt>k</tt> and the frequency for using the calculations. See help on [[PeriodicXPIC Custom Task]] for more details. The remainder of this section describes prior methods for selecting XPIC(k) (but not FMPM(k)). They are no longer available in the latest code.<br />
<br />
=== Eliminated XPIC Commands ===<br />
<br />
Before the [[PeriodicXPIC Custom Task]] was added, XPIC(m) was selected using [[Damping Options#Damping Commands|damping commands]]. Any old input files you have with this command should change those files to use a [[PeriodicXPIC Custom Task]] instead. The deleted command options are:<br />
<br />
Damping (alphagVsT),<(fractionPIC)>,<(XPICOrder)><br />
PDamping (alphapVsT),<(fractionPIC)>,<(XPICOrder)><br />
<br />
where the relevant paramters for XPIC(m) are:<br />
<br />
* <tt>(fractionPIC)</tt> is the [[Damping Options#PIC Damping|fraction PIC]] to use in the simulation. It can vary from 1 for pure XPIC(m) to 0 for pure FLIP. The default is 0. Note that this option is inefficient and was therefore removed. You can replace a fraction XPIC(m) of &phi; in old calculations with XPIC(m) done every <tt>int(1/&phi;)</tt> time steps in the [[PeriodicXPIC Custom Task]].<br />
* <tt>(XPICOrder)</tt> to set the XPIC(m) order or <tt>m</tt>. It must be an integer and values less than 1 are set to 1. Note that this parameter is ignored unless PIC is activated with <tt>(fractionPIC)</tt> &gt; 0. The default is 1, which is standard PIC.<br />
<br />
Although <tt>(fractionPIC)</tt> and <tt>(XPICOrder)</tt> can be set in either the <tt>Damping</tt> or the <tt>PDamping</tt> command, only one setting for each is allowed; a simulation will use whichever setting comes last.<br />
<br />
In <tt>XML</tt> input files, <tt>(fractionPIC)</tt> and <tt>(XPICOrder)</tt> can be set with commands in the [[MPM Input Files#MPM Header|<tt><MPMHeader></tt> element]]:<br />
<br />
<Damping PIC='(fractionPIC)' function='(alphagVsT)'>(alphagNum)</Damping><br />
<XPIC order='(XPICOrder)'/><br />
<br />
Note that <tt>(XPICOrder)</tt> is ignored unless <tt>(fractionPIC)</tt> is greater than zero.<br />
<br />
== References ==<br />
<br />
<references><br />
<br />
<ref name="XPIC">C. C. Hammerquist and J. A. Nairn, "A new method for material point method particle updates that reduces noise and enhances stability," <i>Computer Methods in Applied Mechanics and Engineering</i>, <b>318</b>, 724– 738 (2017). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/XPICPaper.pdf See PDF])</ref><br />
<br />
<ref name="FMPM">J. A. Nairn and C. C. Hammerquist, "Material point method simulations using an approximate full mass matrix inverse," <i>Computer Methods in Applied Mechanics and Engineering</i>, in press (2021). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/FMPMPaper.pdf See PDF])</ref><br />
<br />
</references></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=XPIC_Features&diff=9888XPIC Features2023-11-28T23:18:40Z<p>Nairnj: /* Eliminated XPIC Commands */</p>
<hr />
<div>XPIC(k)<ref name="XPIC"/> and FMPM(k)<ref name="FMPM"/> are two improved forms of MPM. The page explains how to use XPIC(k) and FMPM(k) features.<br />
<br />
== Introduction ==<br />
<br />
The [[Damping Options#PIC Damping|PIC method]] can be described as applying a projection operator that modifies (and filters) particle velocities before updating them with the grid acceleration. The problem with PIC is that its projection operator filters most problems too heavily resulting in significant dissipation of energy. XPIC(k) is a new method that solves the energy dissipation problem, enhances overall stability of MPM, and reduces noise. XPIC(k) defines a series of new projection operators that can significantly reduce the over damping of PIC simulations. XPIC(k) is defined by an order <tt>k</tt>, where <tt>k=1</tt> is PIC, <tt>k&gt;1</tt> is XPIC, and large <tt>k</tt> approaches amethod with all null-space noise removed.<br />
<br />
After deriving XPIC(k)<ref name="XPIC"/> methods, another improvement was to show that XPIC style calculations are equivalent to implementing an MPM method that approximates the inverse of the full mass matrix. Use this revised interpretation, the XPIC(k) scheme was modifed to derive another method denoted FMPM(k)<ref name="FMPM"/>. FMPM(1) defines and improved form of PIC (compared to XPIC(1)) and higher orders also appear to further reduce dissipation compared to XPIC(k).<br />
<br />
== Performance ==<br />
<br />
The drawback of XPIC(k)/FMPM(k) is that each higher order requires an extra extrapolation. The extra calculations scale with k*N where N is the number of particles in the problem. XPIC and FMPM are therefore less efficient than PIC or FLIP. In many problems, <tt>k=2</tt> already provides much improvement over PIC and reduces undesirable energy dissipation with minimal extra calculations. Larger <tt>k</tt> is often better with <tt>k=4</tt> appearing to provide much benefit without too much extra cost. Very high values of <tt>k</tt> (''e.g.'', <tt>k&gt;40</tt>) are typically unstable (due to too many additional extrapolations or to changes in effective eigenvalues for the equations).<br />
<br />
== XPIC(k) and FMPM(k) Commands ==<br />
<br />
XPIC(k)and FMPM(k) simulations are created by scheduling a [[PeriodicXPIC Custom Task]]. In brief, this task selects the XPIC or FMPM order <tt>k</tt> and the frequency for using the calculations. See help on [[PeriodicXPIC Custom Task]] for more details. The remainder of this section describes prior methods for selecting XPIC(k) (but not FMPM(k)). They are no longer available in the latest code.<br />
<br />
=== Eliminated XPIC Commands ===<br />
<br />
Before the [[PeriodicXPIC Custom Task]] was added, XPIC(m) was selected using [[Damping Options#Damping Commands|damping commands]]. Any old input files you have with this command should change those files to use a [[PeriodicXPIC Custom Task]] instead. The deleted command options are:<br />
<br />
Damping (alphagVsT),<(fractionPIC)>,<(XPICOrder)><br />
PDamping (alphapVsT),<(fractionPIC)>,<(XPICOrder)><br />
<br />
where the relevant paramters for XPIC(m) are:<br />
<br />
* <tt>(fractionPIC)</tt> is the [[Damping Options#PIC Damping|fraction PIC]] to use in the simulation. It can vary from 1 for pure XPIC(m) to 0 for pure FLIP. The default is 0. Note that this option is inefficient and is therefore not available in [[PeriodicXPIC Custom Task]]. You can replace a fraction XPIC(m) of &phi; in old calculations with XPIC(m) done every <tt>int(1/&phi;)</tt> time steps in the [[PeriodicXPIC Custom Task]].<br />
* <tt>(XPICOrder)</tt> to set the XPIC(m) order or <tt>m</tt>. It must be an integer and values less than 1 are set to 1. Note that this parameter is ignored unless PIC is activated with <tt>(fractionPIC)</tt> &gt; 0. The default is 1, which is standard PIC.<br />
<br />
Although <tt>(fractionPIC)</tt> and <tt>(XPICOrder)</tt> can be set in either the <tt>Damping</tt> or the <tt>PDamping</tt> command, only one setting for each is allowed; a simulation will use whichever setting comes last.<br />
<br />
In <tt>XML</tt> input files, <tt>(fractionPIC)</tt> and <tt>(XPICOrder)</tt> can be set with commands in the [[MPM Input Files#MPM Header|<tt><MPMHeader></tt> element]]:<br />
<br />
<Damping PIC='(fractionPIC)' function='(alphagVsT)'>(alphagNum)</Damping><br />
<XPIC order='(XPICOrder)'/><br />
<br />
Note that <tt>(XPICOrder)</tt> is ignored unless <tt>(fractionPIC)</tt> is greater than zero.<br />
<br />
== References ==<br />
<br />
<references><br />
<br />
<ref name="XPIC">C. C. Hammerquist and J. A. Nairn, "A new method for material point method particle updates that reduces noise and enhances stability," <i>Computer Methods in Applied Mechanics and Engineering</i>, <b>318</b>, 724– 738 (2017). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/XPICPaper.pdf See PDF])</ref><br />
<br />
<ref name="FMPM">J. A. Nairn and C. C. Hammerquist, "Material point method simulations using an approximate full mass matrix inverse," <i>Computer Methods in Applied Mechanics and Engineering</i>, in press (2021). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/FMPMPaper.pdf See PDF])</ref><br />
<br />
</references></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=XPIC_Features&diff=9887XPIC Features2023-11-28T23:15:52Z<p>Nairnj: /* Eliminated XPIC Commands */</p>
<hr />
<div>XPIC(k)<ref name="XPIC"/> and FMPM(k)<ref name="FMPM"/> are two improved forms of MPM. The page explains how to use XPIC(k) and FMPM(k) features.<br />
<br />
== Introduction ==<br />
<br />
The [[Damping Options#PIC Damping|PIC method]] can be described as applying a projection operator that modifies (and filters) particle velocities before updating them with the grid acceleration. The problem with PIC is that its projection operator filters most problems too heavily resulting in significant dissipation of energy. XPIC(k) is a new method that solves the energy dissipation problem, enhances overall stability of MPM, and reduces noise. XPIC(k) defines a series of new projection operators that can significantly reduce the over damping of PIC simulations. XPIC(k) is defined by an order <tt>k</tt>, where <tt>k=1</tt> is PIC, <tt>k&gt;1</tt> is XPIC, and large <tt>k</tt> approaches amethod with all null-space noise removed.<br />
<br />
After deriving XPIC(k)<ref name="XPIC"/> methods, another improvement was to show that XPIC style calculations are equivalent to implementing an MPM method that approximates the inverse of the full mass matrix. Use this revised interpretation, the XPIC(k) scheme was modifed to derive another method denoted FMPM(k)<ref name="FMPM"/>. FMPM(1) defines and improved form of PIC (compared to XPIC(1)) and higher orders also appear to further reduce dissipation compared to XPIC(k).<br />
<br />
== Performance ==<br />
<br />
The drawback of XPIC(k)/FMPM(k) is that each higher order requires an extra extrapolation. The extra calculations scale with k*N where N is the number of particles in the problem. XPIC and FMPM are therefore less efficient than PIC or FLIP. In many problems, <tt>k=2</tt> already provides much improvement over PIC and reduces undesirable energy dissipation with minimal extra calculations. Larger <tt>k</tt> is often better with <tt>k=4</tt> appearing to provide much benefit without too much extra cost. Very high values of <tt>k</tt> (''e.g.'', <tt>k&gt;40</tt>) are typically unstable (due to too many additional extrapolations or to changes in effective eigenvalues for the equations).<br />
<br />
== XPIC(k) and FMPM(k) Commands ==<br />
<br />
XPIC(k)and FMPM(k) simulations are created by scheduling a [[PeriodicXPIC Custom Task]]. In brief, this task selects the XPIC or FMPM order <tt>k</tt> and the frequency for using the calculations. See help on [[PeriodicXPIC Custom Task]] for more details. The remainder of this section describes prior methods for selecting XPIC(k) (but not FMPM(k)). They are no longer available in the latest code.<br />
<br />
=== Eliminated XPIC Commands ===<br />
<br />
Before the [[PeriodicXPIC Custom Task]] was added, XPIC(m) was selected using [[Damping Options#Damping Commands|damping commands]]. Any old input files you have with this command should change those files to use a [[PeriodicXPIC Custom Task]] instead. The deleted command options are:<br />
<br />
Damping (alphagVsT),<(fractionPIC)>,<(XPICOrder)><br />
PDamping (alphapVsT),<(fractionPIC)>,<(XPICOrder)><br />
<br />
where the relevant paramters for XPIC(m) are:<br />
<br />
* <tt>(fractionPIC)</tt> is the [[Damping Options#PIC Damping|fraction PIC]] to use in the simulation. It can vary from 1 for pure XPIC(m) to 0 for pure FLIP. The default is 0.<br />
* <tt>(XPICOrder)</tt> to set the XPIC(m) order or <tt>m</tt>. It must be an integer and values less than 1 are set to 1. Note that this parameter is ignored unless PIC is activated with <tt>(fractionPIC)</tt> &gt; 0. The default is 1, which is standard PIC.<br />
<br />
Although <tt>(fractionPIC)</tt> and <tt>(XPICOrder)</tt> can be set in either the <tt>Damping</tt> or the <tt>PDamping</tt> command, only one setting for each is allowed; a simulation will use whichever setting comes last.<br />
<br />
In <tt>XML</tt> input files, <tt>(fractionPIC)</tt> and <tt>(XPICOrder)</tt> can be set with commands in the [[MPM Input Files#MPM Header|<tt><MPMHeader></tt> element]]:<br />
<br />
<Damping PIC='(fractionPIC)' function='(alphagVsT)'>(alphagNum)</Damping><br />
<XPIC order='(XPICOrder)'/><br />
<br />
Note that <tt>(XPICOrder)</tt> is ignored unless <tt>(fractionPIC)</tt> is greater than zero.<br />
<br />
== References ==<br />
<br />
<references><br />
<br />
<ref name="XPIC">C. C. Hammerquist and J. A. Nairn, "A new method for material point method particle updates that reduces noise and enhances stability," <i>Computer Methods in Applied Mechanics and Engineering</i>, <b>318</b>, 724– 738 (2017). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/XPICPaper.pdf See PDF])</ref><br />
<br />
<ref name="FMPM">J. A. Nairn and C. C. Hammerquist, "Material point method simulations using an approximate full mass matrix inverse," <i>Computer Methods in Applied Mechanics and Engineering</i>, in press (2021). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/FMPMPaper.pdf See PDF])</ref><br />
<br />
</references></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=XPIC_Features&diff=9886XPIC Features2023-11-28T23:15:41Z<p>Nairnj: /* XPIC(k) and FMPM(k) Commands */</p>
<hr />
<div>XPIC(k)<ref name="XPIC"/> and FMPM(k)<ref name="FMPM"/> are two improved forms of MPM. The page explains how to use XPIC(k) and FMPM(k) features.<br />
<br />
== Introduction ==<br />
<br />
The [[Damping Options#PIC Damping|PIC method]] can be described as applying a projection operator that modifies (and filters) particle velocities before updating them with the grid acceleration. The problem with PIC is that its projection operator filters most problems too heavily resulting in significant dissipation of energy. XPIC(k) is a new method that solves the energy dissipation problem, enhances overall stability of MPM, and reduces noise. XPIC(k) defines a series of new projection operators that can significantly reduce the over damping of PIC simulations. XPIC(k) is defined by an order <tt>k</tt>, where <tt>k=1</tt> is PIC, <tt>k&gt;1</tt> is XPIC, and large <tt>k</tt> approaches amethod with all null-space noise removed.<br />
<br />
After deriving XPIC(k)<ref name="XPIC"/> methods, another improvement was to show that XPIC style calculations are equivalent to implementing an MPM method that approximates the inverse of the full mass matrix. Use this revised interpretation, the XPIC(k) scheme was modifed to derive another method denoted FMPM(k)<ref name="FMPM"/>. FMPM(1) defines and improved form of PIC (compared to XPIC(1)) and higher orders also appear to further reduce dissipation compared to XPIC(k).<br />
<br />
== Performance ==<br />
<br />
The drawback of XPIC(k)/FMPM(k) is that each higher order requires an extra extrapolation. The extra calculations scale with k*N where N is the number of particles in the problem. XPIC and FMPM are therefore less efficient than PIC or FLIP. In many problems, <tt>k=2</tt> already provides much improvement over PIC and reduces undesirable energy dissipation with minimal extra calculations. Larger <tt>k</tt> is often better with <tt>k=4</tt> appearing to provide much benefit without too much extra cost. Very high values of <tt>k</tt> (''e.g.'', <tt>k&gt;40</tt>) are typically unstable (due to too many additional extrapolations or to changes in effective eigenvalues for the equations).<br />
<br />
== XPIC(k) and FMPM(k) Commands ==<br />
<br />
XPIC(k)and FMPM(k) simulations are created by scheduling a [[PeriodicXPIC Custom Task]]. In brief, this task selects the XPIC or FMPM order <tt>k</tt> and the frequency for using the calculations. See help on [[PeriodicXPIC Custom Task]] for more details. The remainder of this section describes prior methods for selecting XPIC(k) (but not FMPM(k)). They are no longer available in the latest code.<br />
<br />
=== Eliminated XPIC Commands ===<br />
<br />
Before the [[PeriodicXPIC Custom Task]] was added, XPIC(m) was selected using [[Damping Options#Damping Commands|damping commands]]. Any old input files you have with this command should change those files to use a [PeriodicXPIC Custom Task]] instead. The deleted command options are:<br />
<br />
Damping (alphagVsT),<(fractionPIC)>,<(XPICOrder)><br />
PDamping (alphapVsT),<(fractionPIC)>,<(XPICOrder)><br />
<br />
where the relevant paramters for XPIC(m) are:<br />
<br />
* <tt>(fractionPIC)</tt> is the [[Damping Options#PIC Damping|fraction PIC]] to use in the simulation. It can vary from 1 for pure XPIC(m) to 0 for pure FLIP. The default is 0.<br />
* <tt>(XPICOrder)</tt> to set the XPIC(m) order or <tt>m</tt>. It must be an integer and values less than 1 are set to 1. Note that this parameter is ignored unless PIC is activated with <tt>(fractionPIC)</tt> &gt; 0. The default is 1, which is standard PIC.<br />
<br />
Although <tt>(fractionPIC)</tt> and <tt>(XPICOrder)</tt> can be set in either the <tt>Damping</tt> or the <tt>PDamping</tt> command, only one setting for each is allowed; a simulation will use whichever setting comes last.<br />
<br />
In <tt>XML</tt> input files, <tt>(fractionPIC)</tt> and <tt>(XPICOrder)</tt> can be set with commands in the [[MPM Input Files#MPM Header|<tt><MPMHeader></tt> element]]:<br />
<br />
<Damping PIC='(fractionPIC)' function='(alphagVsT)'>(alphagNum)</Damping><br />
<XPIC order='(XPICOrder)'/><br />
<br />
Note that <tt>(XPICOrder)</tt> is ignored unless <tt>(fractionPIC)</tt> is greater than zero.<br />
<br />
== References ==<br />
<br />
<references><br />
<br />
<ref name="XPIC">C. C. Hammerquist and J. A. Nairn, "A new method for material point method particle updates that reduces noise and enhances stability," <i>Computer Methods in Applied Mechanics and Engineering</i>, <b>318</b>, 724– 738 (2017). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/XPICPaper.pdf See PDF])</ref><br />
<br />
<ref name="FMPM">J. A. Nairn and C. C. Hammerquist, "Material point method simulations using an approximate full mass matrix inverse," <i>Computer Methods in Applied Mechanics and Engineering</i>, in press (2021). ([http://www.cof.orst.edu/cof/wse/faculty/Nairn/papers/FMPMPaper.pdf See PDF])</ref><br />
<br />
</references></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9885Main Page2023-11-28T23:11:29Z<p>Nairnj: /* Input Files for Calculations */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
<b>Quick Start</b>: If you using Windows, the best way to start is to download the [[NairnFEAMPMViz]] package for Windows. It has all you need to run and visualize calculations. You can run this package without downloading and compiling any code and without installing any third-party software tools. If you want to try more (or are not using Windows), see the next steps for obtaining, compiling, and running code and then visualizing the result.<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* Input Files for [[MPM Input Files|MPM Calculations]]<br />
* Input Files for [[FEA Input Files|FEA Calculations]]<br />
<br />
For convenience, these help topics are listed in the side bar on the left.<br />
<br />
=== Scripted Input Files ===<br />
<br />
The recommended method for writing input files is to use the built-in scripting commands. Scripted input files are comprised of a series of commands. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command. Arguments are separated by commas, spaces, or tabs. If an argument includes a space, enclose that argument in quotes.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
<br />
The main reason to prefer scripted files is their flexibility. Besides a series of command, these input files use a built-in [[Scripting Language Syntax|scripting language]] that can make use of [[Variable Names|variables]] and both numeric and string [[Expression Syntax|expressions]].<br />
<br />
=== XML Input Files ===<br />
<br />
If you are a glutton for punishment and do not mind absence of variables and expressions, input commands can be written directly in <tt>XML</tt> input files comprised of a series of <tt>XML</tt> elements. This documentation will explain all <tt>XML</tt> elements for all features using the style:<br />
<br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the <tt>XML</tt> element name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9884Main Page2023-11-28T23:10:16Z<p>Nairnj: /* Scripted Input Files */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
<b>Quick Start</b>: If you using Windows, the best way to start is to download the [[NairnFEAMPMViz]] package for Windows. It has all you need to run and visualize calculations. You can run this package without downloading and compiling any code and without installing any third-party software tools. If you want to try more (or are not using Windows), see the next steps for obtaining, compiling, and running code and then visualizing the result.<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
=== Creating MPM and FEA Input Files ===<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* Input Files for [[MPM Input Files|MPM Calculations]]<br />
* Input Files for [[FEA Input Files|FEA Calculations]]<br />
<br />
For convenience, these help topics are listed in the side bar on the left.<br />
<br />
==== Scripted Input Files ====<br />
<br />
The recommended method for writing input files is to use the built-in scripting commands. Scripted input files are comprised of a series of commands. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command. Arguments are separated by commas, spaces, or tabs. If an argument includes a space, enclose that argument in quotes.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
<br />
The main reason to prefer scripted files is their flexibility. Besides a series of command, these input files use a built-in [[Scripting Language Syntax|scripting language]] that can make use of [[Variable Names|variables]] and both numeric and string [[Expression Syntax|expressions]].<br />
<br />
==== XML Input Files ====<br />
<br />
If you are a glutton for punishment and do not mind absence of variables and expressions, input commands can be written directly in <tt>XML</tt> input files comprised of a series of <tt>XML</tt> elements. This documentation will explain all <tt>XML</tt> elements for all features using the style:<br />
<br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the <tt>XML</tt> element name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9883Main Page2023-11-28T23:08:40Z<p>Nairnj: /* Input Files for Calculations */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
<b>Quick Start</b>: If you using Windows, the best way to start is to download the [[NairnFEAMPMViz]] package for Windows. It has all you need to run and visualize calculations. You can run this package without downloading and compiling any code and without installing any third-party software tools. If you want to try more (or are not using Windows), see the next steps for obtaining, compiling, and running code and then visualizing the result.<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
=== Creating MPM and FEA Input Files ===<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* Input Files for [[MPM Input Files|MPM Calculations]]<br />
* Input Files for [[FEA Input Files|FEA Calculations]]<br />
<br />
For convenience, these help topics are listed in the side bar on the left.<br />
<br />
==== Scripted Input Files ====<br />
<br />
The recommended method for writing input files is to use the built-in scripting commands. Scripted input files are comprised of a series of commands. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command. Arguments are separated by commas, spaces, or tabs. If an argument includes a space, enclose that argument in quotes.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
<br />
The main reason to prefer scripted files is their flexibility. Besides a series of command, these input files using a built-in [[Scripting Language Syntax|scripting language]] that can make use of [[Variable Names|variables]] and both numeric and string [[Expression Syntax|expressions]].<br />
<br />
==== XML Input Files ====<br />
<br />
If you are a glutton for punishment and do not mind absence of variables and expressions, input commands can be written directly in <tt>XML</tt> input files comprised of a series of <tt>XML</tt> elements. This documentation will explain all <tt>XML</tt> elements for all features using the style:<br />
<br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the <tt>XML</tt> element name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9882Main Page2023-11-28T23:07:35Z<p>Nairnj: /* Creating MPM and FEA Input Files */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
<b>Quick Start</b>: If you using Windows, the best way to start is to download the [[NairnFEAMPMViz]] package for Windows. It has all you need to run and visualize calculations. You can run this package without downloading and compiling any code and without installing any third-party software tools. If you want to try more (or are not using Windows), see the next steps for obtaining, compiling, and running code and then visualizing the result.<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
==== Creating MPM and FEA Input Files ====<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* Input Files for [[MPM Input Files|MPM Calculations]]<br />
* Input Files for [[FEA Input Files|FEA Calculations]]<br />
<br />
For convenience, these help topics are listed in the side bar on the left.<br />
<br />
The recommended method for writing input files is to use the built-in scripting commands. Scripted input files are comprised of a series of commands. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command. Arguments are separated by commas, spaces, or tabs. If an argument includes a space, enclose that argument in quotes.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
<br />
The main reason to prefer scripted files is their flexibility. Besides a series of command, these input files using a built-in [[Scripting Language Syntax|scripting language]] that can make use of [[Variable Names|variables]] and both numeric and string [[Expression Syntax|expressions]].<br />
<br />
If you are a glutton for punishment and do not mind absence of variables and expressions, input commands can be written directly in <tt>XML</tt> input files comprised of a series of <tt>XML</tt> elements. This documentation will explain all <tt>XML</tt> elements for all features using the style:<br />
<br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the <tt>XML</tt> element name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9881Main Page2023-11-28T23:03:10Z<p>Nairnj: /* Input Files for Calculations */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
<b>Quick Start</b>: If you using Windows, the best way to start is to download the [[NairnFEAMPMViz]] package for Windows. It has all you need to run and visualize calculations. You can run this package without downloading and compiling any code and without installing any third-party software tools. If you want to try more (or are not using Windows), see the next steps for obtaining, compiling, and running code and then visualizing the result.<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
==== Creating MPM and FEA Input Files ====<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* Input Files for [[MPM Input Files|MPM Calculations]]<br />
* Input Files for [[FEA Input Files|FEA Calculations]]<br />
<br />
For convenience, these help topics are listed in the side bar on the left.<br />
<br />
The recommended method for writing input files is to use the built-in scripting commands. Scripted input files are comprised of a series of commands. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command. Arguments are separated by commas, spaces, or tabs. If an argument includes a space, enclose that argument in quotes.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
<br />
If you are a glutton for punishment and do not mind a lack of flexibiity, input commands can be written <tt>XML</tt> input files comprised of a series of <tt>XML</tt> elements. This documentation will explain these elements using the style:<br />
<br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the <tt>XML</tt> element name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9880Main Page2023-11-28T23:03:00Z<p>Nairnj: /* Input Files for Calculations */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
<b>Quick Start</b>: If you using Windows, the best way to start is to download the [[NairnFEAMPMViz]] package for Windows. It has all you need to run and visualize calculations. You can run this package without downloading and compiling any code and without installing any third-party software tools. If you want to try more (or are not using Windows), see the next steps for obtaining, compiling, and running code and then visualizing the result.<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
==== Writing MPM and FEA Input Files ====<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* Input Files for [[MPM Input Files|MPM Calculations]]<br />
* Input Files for [[FEA Input Files|FEA Calculations]]<br />
<br />
For convenience, these help topics are listed in the side bar on the left.<br />
<br />
The recommended method for writing input files is to use the built-in scripting commands. Scripted input files are comprised of a series of commands. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command. Arguments are separated by commas, spaces, or tabs. If an argument includes a space, enclose that argument in quotes.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
<br />
If you are a glutton for punishment and do not mind a lack of flexibiity, input commands can be written <tt>XML</tt> input files comprised of a series of <tt>XML</tt> elements. This documentation will explain these elements using the style:<br />
<br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the <tt>XML</tt> element name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9879Main Page2023-11-28T23:02:41Z<p>Nairnj: /* Input Files for Calculations */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
<b>Quick Start</b>: If you using Windows, the best way to start is to download the [[NairnFEAMPMViz]] package for Windows. It has all you need to run and visualize calculations. You can run this package without downloading and compiling any code and without installing any third-party software tools. If you want to try more (or are not using Windows), see the next steps for obtaining, compiling, and running code and then visualizing the result.<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
==== MPM and FEA Input Files ====<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* Input Files for [[MPM Input Files|MPM Calculations]]<br />
* Input Files for [[FEA Input Files|FEA Calculations]]<br />
<br />
For convenience, these help topics are listed in the side bar on the left.<br />
<br />
The recommended method for writing input files is to use the built-in scripting commands. Scripted input files are comprised of a series of commands. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command. Arguments are separated by commas, spaces, or tabs. If an argument includes a space, enclose that argument in quotes.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
<br />
If you are a glutton for punishment and do not mind a lack of flexibiity, input commands can be written <tt>XML</tt> input files comprised of a series of <tt>XML</tt> elements. This documentation will explain these elements using the style:<br />
<br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the <tt>XML</tt> element name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9878Main Page2023-11-28T22:37:16Z<p>Nairnj: /* MPM and FEA Input Files */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
<b>Quick Start</b>: If you using Windows, the best way to start is to download the [[NairnFEAMPMViz]] package for Windows. It has all you need to run and visualize calculations. You can run this package without downloading and compiling any code and without installing any third-party software tools. If you want to try more (or are not using Windows), see the next steps for obtaining, compiling, and running code and then visualizing the result.<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
==== MPM and FEA Input Files ====<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* Input Files for [[MPM Input Files|MPM Calculations]]<br />
* Input Files for [[FEA Input Files|FEA Calculations]]<br />
<br />
For convenience, these help topics are listed in the side bar on the left.<br />
<br />
==== Documentation Notes ====<br />
<br />
To learn how to write input command files see the [[MPM Input Files|MPM Calculations]] and [[FEA Calculations]] help topics (and list in the side bar or all windows). This topics have subtopics to all available calculations options in [[NairnMPM]], [[OSParticulas]], and [[NairnFEA]].<br />
<br />
Scripted input files are comprised of a series of commands and <tt>XML</tt> input files are comprised of a series of <tt>XML</tt> elements. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9877Main Page2023-11-28T22:35:48Z<p>Nairnj: /* Documentation Notes */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
<b>Quick Start</b>: If you using Windows, the best way to start is to download the [[NairnFEAMPMViz]] package for Windows. It has all you need to run and visualize calculations. You can run this package without downloading and compiling any code and without installing any third-party software tools. If you want to try more (or are not using Windows), see the next steps for obtaining, compiling, and running code and then visualizing the result.<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
==== MPM and FEA Input Files ====<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* [[MPM Input Files|Input Files for MPM Calculations]]<br />
* [[FEA Input Files|Input Files for FEA Calculations]]<br />
<br />
==== Documentation Notes ====<br />
<br />
To learn how to write input command files see the [[MPM Input Files|MPM Calculations]] and [[FEA Calculations]] help topics (and list in the side bar or all windows). This topics have subtopics to all available calculations options in [[NairnMPM]], [[OSParticulas]], and [[NairnFEA]].<br />
<br />
Scripted input files are comprised of a series of commands and <tt>XML</tt> input files are comprised of a series of <tt>XML</tt> elements. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9876Main Page2023-11-28T22:35:13Z<p>Nairnj: /* Input File Documentation Notes */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
<b>Quick Start</b>: If you using Windows, the best way to start is to download the [[NairnFEAMPMViz]] package for Windows. It has all you need to run and visualize calculations. You can run this package without downloading and compiling any code and without installing any third-party software tools. If you want to try more (or are not using Windows), see the next steps for obtaining, compiling, and running code and then visualizing the result.<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
==== MPM and FEA Input Files ====<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* [[MPM Input Files|Input Files for MPM Calculations]]<br />
* [[FEA Input Files|Input Files for FEA Calculations]]<br />
<br />
==== Documentation Notes ====<br />
<br />
To learn how to write input command files see the [[MPM Calculations]] and [[FEA Calculations]] help topics (and list in the side bar or all windows). This topics have subtopics to all available calculations options in [[NairnMPM]], [[OSParticulas]], and [[NairnFEA]].<br />
<br />
Scripted input files are comprised of a series of commands and <tt>XML</tt> input files are comprised of a series of <tt>XML</tt> elements. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9875Main Page2023-11-28T22:30:00Z<p>Nairnj: /* Getting Starting */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
<b>Quick Start</b>: If you using Windows, the best way to start is to download the [[NairnFEAMPMViz]] package for Windows. It has all you need to run and visualize calculations. You can run this package without downloading and compiling any code and without installing any third-party software tools. If you want to try more (or are not using Windows), see the next steps for obtaining, compiling, and running code and then visualizing the result.<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
==== MPM and FEA Input Files ====<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* [[MPM Input Files|Input Files for MPM Calculations]]<br />
* [[FEA Input Files|Input Files for FEA Calculations]]<br />
<br />
==== Input File Documentation Notes ====<br />
<br />
Scripted input files are comprised of a series of commands and <tt>XML</tt> input files are comprised of a series of <tt>XML</tt> elements. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9874Main Page2023-11-28T22:28:24Z<p>Nairnj: /* Getting Starting */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
<b>Quick Start</b>: If you using Windows, the best way to start is to download the [[NairnFEAMPMViz]] package for Windows. It has all you need to run and visualize calculations. You can run this package without download and compiling ode and without installing and third-party software tools. If you want to try more (or are not using Windows), see the next steps for obtaining, compiling, and running code and then visualizing the result.<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
==== MPM and FEA Input Files ====<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* [[MPM Input Files|Input Files for MPM Calculations]]<br />
* [[FEA Input Files|Input Files for FEA Calculations]]<br />
<br />
==== Input File Documentation Notes ====<br />
<br />
Scripted input files are comprised of a series of commands and <tt>XML</tt> input files are comprised of a series of <tt>XML</tt> elements. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9873Main Page2023-11-28T22:28:12Z<p>Nairnj: /* Getting Starting */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
<b>Quick Start</b>: If you using Windows, the best way to start is to download the [[NairnFEAMPMViz]] package for windows. It has all you need to run and visualize calculations. You can run this package without download and compiling ode and without installing and third-party software tools. If you want to try more (or are not using Windows), see the next steps for obtaining, compiling, and running code and then visualizing the result.<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
==== MPM and FEA Input Files ====<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* [[MPM Input Files|Input Files for MPM Calculations]]<br />
* [[FEA Input Files|Input Files for FEA Calculations]]<br />
<br />
==== Input File Documentation Notes ====<br />
<br />
Scripted input files are comprised of a series of commands and <tt>XML</tt> input files are comprised of a series of <tt>XML</tt> elements. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9872Main Page2023-11-28T22:24:33Z<p>Nairnj: /* Acknowledgments */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
==== MPM and FEA Input Files ====<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* [[MPM Input Files|Input Files for MPM Calculations]]<br />
* [[FEA Input Files|Input Files for FEA Calculations]]<br />
<br />
==== Input File Documentation Notes ====<br />
<br />
Scripted input files are comprised of a series of commands and <tt>XML</tt> input files are comprised of a series of <tt>XML</tt> elements. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
in the past by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Main_Page&diff=9871Main Page2023-11-28T22:23:46Z<p>Nairnj: /* Visualization */</p>
<hr />
<div>This documentation wiki is for the computational mechanics software from Oregon State University in the research group of [http://www.cof.orst.edu/cof/wse/faculty/Nairn/ Prof. John A. Nairn]. This software package focuses on material point method (MPM) calculations ([[OSParticulas]] and [[NairnMPM]]), but also includes basic finite element analysis (FEA) calculations ([[NairnFEA]]). The user-interface tools for setting up and visualizing calculations are [[NairnFEAMPM]] (for Mac) and [[NairnFEAMPMViz]] (for Windows and Linux).<br />
<br />
== Getting Starting ==<br />
<br />
The calculation engines for material point method (MPM) simulations are called [[OSParticulas]] and [[NairnMPM]]. The calculation engine for finite element analysis (FEA) is called [[NairnFEA]]. These are all object-oriented, C++, platform-independent code engines. The first steps to using these tools are:<br />
<br />
* [[Mac/Windows Requirements]]<br />
* [[Download Source Code]]<br />
* [[Compile the Code Engines]]<br />
* [[Options for Running Calculations]]<br />
<br />
Note that quick-trial packages with compiled binaries for code engines and libraries are available for [[NairnFEAMPM|Mac]] and [[NairnFEAMPMViz|Windows]]. Although you can run these with no additional downloads or compiling tasks, it is better to download the source code, build all needed tools, and use them to run calculations. The download/compile method is also essential for cases when the quick-trial versions do not run on your computer and to get the best versions of the code engines.<br />
<br />
== Input Files for Calculations ==<br />
<br />
MPM simulations using [[OSParticulas]] or [[NairnMPM]] or FEA calculations using [[NairnFEA]] are controlled by input from an <tt>XML</tt> input file. This input file can be created manually by using any text or <tt>XML</tt> editing software. It is usually preferred, however, to use a higher-level [[Scripting Language Syntax|scripting language]] to set up the calculations and then have an interpreter format those commands into the <tt>XML</tt> files needed by the code engines. This scripting method allows for more powerful input files that are much easier to customize for a range of simulations. Scripting calculations can be done by using either the [[NairnFEAMPM]] application (Mac only) or the [[NairnFEAMPMViz]] (Java tool) application. The [[Scripting Language Syntax|scripting languages]] in these two applications are almost identical.<br />
<br />
==== MPM and FEA Input Files ====<br />
<br />
The bulk of the documentation in this wiki is involved with describing the features of the software and explaining the input commands needed to use those features. The features and input commands documentation for MPM or FEA calculations are in the following sections:<br />
<br />
* [[MPM Input Files|Input Files for MPM Calculations]]<br />
* [[FEA Input Files|Input Files for FEA Calculations]]<br />
<br />
==== Input File Documentation Notes ====<br />
<br />
Scripted input files are comprised of a series of commands and <tt>XML</tt> input files are comprised of a series of <tt>XML</tt> elements. This documentation will explain these commands and elements using the style:<br />
<br />
Command (arg1),(arg2),<(arg3)>,<(arg4)><br />
<Command attr1='(arg1)' attr2='(arg2)'>(arg3)</Command><br />
<br />
where<br />
<br />
* <tt>Command</tt> is the command name.<br />
* <tt>(arg1),(arg2)</tt>, ''etc.'', specify arguments whose function will be explained along with the command.<br />
* <tt><(arg3)></tt> - enclosing an argument in angle brackets indicates an optional argument. If the argument is omitted, the code will assume some default value.<br />
* <tt>attr1</tt>, <tt>attr2</tt>, ''etc.'', are attributes to the <tt>XML</tt> element.<br />
<br />
== Visualization ==<br />
<br />
Once you have created input files and run calculations, you will want to visualize and analyze the results. These tasks can be done by a variety of methods:<br />
<br />
* [[NairnFEAMPM]] - this application (which is the preferred choice, but Mac only) can do lots of visualization. For 3D it can visualize some results in particle plots only and time plots, but is more limited than some other 3D graphics tools.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.exe]] - this Windows application can both run and visualize results and is available in a complete package that bundles <tt>exe</tt>s and <tt>dll</tt>s (and Jave runtime environment if needed) to run [[NairnMPM]], [[NairnFEA]], and [[OSParticulas]]. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[NairnFEAMPMViz|NairnFEAMPMViz.jar]] - this Java application (which is bundled into an executable for Window) alternatively can be run as a Java application in Linux, Mac, or Windows. It can run and visualize calculations. It has many options for 2D visualization, but for 3D. it can only plot results version time. See below for 3D visualization options.<br />
* [[ParaView]] or [[VisIt]] - these two free, multi-platform tools, can plot results archived as VTK files by using the [[VTKArchive Custom Task]]) or extracting particle data to VTK files using [[ExtractMPM]]. The custom task options get grid-based plots and particle extraction gets particle plots. It is possible these two types of VTK files could be read by other graphics tools as well. they use a common file format.<br />
* [[ExtractMPM]] - for even visualization options, you can use the [[ExtractMPM]] tool to extract selected data in various formats and input that data to any visualization tool you have available. This tool can extract data to plain text files, tab-delimited spread sheats, <tt>XML</tt> files, and VTK files. You can run [[ExtractMPM]] on a command line or by using the "Extract Particle VTKs..." command in [[NairnFEAMPM]] or in [[NairnFEAMPMViz]] <br />
<br />
The visualization tools in the <tt>nairn-mpm-fea</tt> project ([[NairnFEAMPM]], [[NairnFEAMPMViz]], and [[ExtractMPM]]) automatically support all archive output file formats created by [[NairnMPM]] and [[NairnFEA]] and therefore can read them all. If you need even more customization, you can always write your own software tool to read output files and process the data however you want. To proceed along this task, you need to know the format of the output files:<br />
<br />
* [[Archive File Formats]] - this help topic documents the output files created by [[NairnMPM]] and [[NairnFEA]].<br />
<br />
== Acknowledgments ==<br />
<br />
This project is being developed as part of the author's research program. This program has been supported <br />
by various organizations. Some specific acknowledgments go to:<br />
<br />
<ul><br />
<li><b>Department of Agriculture (USDA)</b><br />
<ul><br />
<li>McIntire-Stennis account #229862, project #OREZ-WSE-849-U</li><br />
<li>National Institute of Food and Agriculture (NIFA), #2013-34638-21483</li><br />
<li>Forest Products Lab, #11-JV-11111129-137</li><br />
<li>Cooperative Research, Education and Extension Service (CREES), #2006-35504-17444<br />
</ul><br />
</li><br />
<br />
<li><b>National Science Foundation (NSF)</b><br />
<ul><br />
<li>CMMI 1161305<br />
<li>Industry/University Cooperative Research Center for Wood Based Composites #IIP-1034975</li><br />
<li>Mechanics of Materials program: CMS-9713356</li><br />
<li>Mechanics of Materials program: CMS-940177</li><br />
</ul><br />
</li><br />
<br />
<li><b>Small Business Grants</b><br />
<ul><br />
<li>Small Business Technology Transfer (STTR) contract with Eglin Air Base #FA8651-15-M-0298</li><br />
</ul><br />
</li><br />
<br />
<li><b>Department of Energy (DOE)</b> <br />
<ul><br />
<li>Nanotechnology Grant Subcontract 2103050</li><br />
<li>Center for the Simulation of Accidental Fires and Explosions (C-SAFE), Lawrence <br />
Livermore National Laboratory, under Subcontract B341493</li><br />
</ul><br />
</li><br />
<br />
<br />
</ul></div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Options_for_Running_Calculations&diff=9870Options for Running Calculations2023-11-28T22:20:48Z<p>Nairnj: /* Running Using NairnFEAMPMViz Java Application (any platform) */</p>
<hr />
<div>This page has information on running [[NairnFEA]] finite element calculations and [[NairnMPM]] material point method calculations. If you just compiled the code, it includes information on doing test calculations.<br />
<br />
== Running Using NairnFEAMPM (Macintosh OS X only) ==<br />
<br />
If you are using a Mac, you can go to the [[NairnFEAMPM|<tt>NairnFEAMPM</tt> page]] and download a complete package that lets you create input files using a scripting language or raw <tt>XML</tt> commands, run calculations, and visualize the results. If you are working directly with the source code, you can still run calculations using [[NairnFEAMPM]], but first you have to configure it to use to new compiled code engines in place of the embedded code engines. To make that change consult the "Code Engine Development" topic in the help window.<br />
<br />
To do a test calculation, choose the "FEA Commands File", "MPM Commands File" and any example options in the "File &rarr; New" submenu. Save the input commands to a folder on your computer and then choose the "Analyze &rarr; Run FEA/MPM Analysis" menu command. The text output will stream to a window. When it is done you can use built-in tools to visualize the results. For all the details on running calculations and on visualizing results, you can consult the help window within [[NairnFEAMPM]].<br />
<br />
== Running Using NairnFEAMPMViz Java Application (any platform) ==<br />
<br />
If you are using Windows, you can go to the [[NairnFEAMPMViz|<tt>NairnFEAMPMViz</tt> page]] and download a complete package that lets you create input files using a scripting language or raw <tt>XML</tt> commands, run calculations, and visualize the results. This stand-alone package works without needed to download and compile and code engines to third-party software tools. If you later decide to work directly with the source code, you can still run calculations using [[NairnFEAMPMViz]], but first you have to configure it to use your newly compiled code engines in place of the bundled code engines in the package. To make that change consult the "Running Calculations" section in the help window.<br />
<br />
In Linux, Mac, or Windows, you can alternatively run the <tt>NairnFEAMPMViz.jar</tt> Java app in the downloaded package. It runs directly in Java (which must be installed on your computer) and will need be configured to run your compiled code engines. For more details consult the "Running Calculations" section in the help window. Note that Mac users should use [[NairnFEAMPM]] instead because it has more features than the [[NairnFEAMPMViz]] Java application.<br />
<br />
To do a test calculation, choose the "New FEA Commands Document", "New MPM Commands Document" or pick any option from the "Examples" submenu in the "File" menu. Save the input commands file to a folder on your computer and then choose the "Analyze &rarr; Run FEA/MPM Analysis" menu command. The text output will stream to a window. When it is done you can use built-in tools to visualize the results. For all the details on running calculations and on visualizing results, you can consult the help window within [[NairnFEAMPMViz]].<br />
<br />
== Command-Line Execution ==<br />
<br />
You can run calculations on any platform using a command line window in Mac or Linux. If Windows when [[Compiling in Windows#Using Visual Studio|compiled using Visual Studio]], you can use these same methods (substituting Window's file paths as needed) in a DOS command window. The following sections give brief instructions.<br />
<br />
=== Running NairnFEA ===<br />
<br />
You can run [[NairnFEA]] from a Unix or Linux or DOS command line using:<br />
<br />
NairnFEA [options] input > output<br />
<br />
where<br />
<br />
* <tt>[options]</tt> are the options may be one or more of the following:<br />
*; -v :Validate the input <tt>XML</tt> using the <tt>DTD</tt> file specified in the <tt>!DOCTYPE</tt> line in the preamble of the input file. If the specified <tt>DTD</tt> cannot be found, the code will exit with an error message. If the input file has no <tt>!DOCTYPE</tt>, the validation will be skipped. The required <tt>DTD</tt> file can be found in the <tt>NairnFEA/input</tt> and <tt>NairnMPM/input</tt> directories of the <tt>nairn-mpm-fea</tt> project. As explained below, this option should always be used when running from a command line.<br />
*; -np 4 : Set the number of processors to use for parallel execution (required compilation of the parallel version of [[NairnFEA]].<br />
*; -a : Read the input file, set up the mesh and all boundary conditions and then abort before any calculations. This option is useful to check that all commands have created the mesh and boundary conditions correctly before actually doing the analysis in a subsequent run.<br />
*; -w : When this option is not used, relative file names for output files and for input of BMP files are resolved as being relative to the input file. When this option is used, relative file names are resolved instead to the current working directory.<br />
*; -H (or -h): Display brief help message and then exit.<br />
* <tt>input</tt> is the path name of the input <tt>XML</tt> file. The preferred extension for the input files is <tt>.fmcmd</tt>.<br />
* <tt>output</tt> is the name of the output text file. The output of [[NairnFEA]] is to standard output and redirection should be used to save the output to a file. The preferred extension for the output file is <tt>.fea</tt>.<br />
<br />
Note that [[NairnFEA]] checks many command options, but not all. Most commonly, a typo in an <tt>XML</tt> command name or attribute or use of an invalid attribute may or may not trigger an error. If you have such errors, the resulting FEA analysis may be very different than the one you expected. For this reason, when using command-line execution, you should always include the <tt>-v</tt> option to validate the input file. <br />
<br />
See the [[Sample FEA Input Command File#Trial Run with XML FEA Input|sample FEA input <tt>XML</tt> file]] for a method to do a trial command line execution for FEA calculations.<br />
<br />
=== Running NairnMPM ===<br />
<br />
You can run [[NairnMPM]] from a Unix or Linux or DOS command line using:<br />
<br />
NairnMPM [options] input > output<br />
<br />
where<br />
<br />
* <tt>[options]</tt> are the options may be one or more of the following:<br />
*; -v :Validate the input <tt>XML</tt> using the <tt>DTD</tt> file specified in the <tt>!DOCTYPE</tt> line in the preamble of the input file. If the specified <tt>DTD</tt> cannot be found, the code will exit with an error message. If the input file has no <tt>!DOCTYPE</tt>, the validation will be skipped. The required <tt>DTD</tt> file can be found in the <tt>NairnMPM/input</tt> directory of the <tt>nairn-mpm-fea</tt> project. As explained below, this option should always be used when running from a command line.<br />
*; -np 4 : Set the number of processors to use for parallel execution (requires compilation of the parallel version of code engine).<br />
*; -r : Reverse the bytes when writing results to archive files. This option can be useful when you are running calculations on one computer, but visualizing them on a different computer which uses a different byte order. For example. old Macintosh computers and computers with Intel chips use opposite byte orders. This option can be omitted if you analyze on the same computer where you run the calculations or if you have analysis software that works with any byte order (such as [[NairnFEAMPM]] and [[NairnFEAMPMViz]]<br />
*; -a : Start the analysis, archive the initial conditions, and then abort the calculations. This option is useful to check that all commands have created the mesh, assigned material points, and created boundary conditions correctly before actually doing the analysis in a subsequent run.<br />
*; -w : When this option is not used, relative file names for output files and for input of bmp files are resolved as being relative to the input file. When this option is used, relative file names are resolved instead to the current working directory.<br />
*; -H (or -h): Display brief help message and then exit.<br />
* <tt>input</tt> is the path name of the input <tt>XML</tt> file. The preferred extension for the input files is <tt>.fmcmd</tt>.<br />
* <tt>output</tt> is the name of the output text file. The output of [[NairnMPM]] is to standard output and redirection should be used to save the output to a file. To insure correct relative paths between the output file and the archive files, the output file should be saved in the same folder as the input file or if option <tt>-w</tt> is used, it should be saved in the current working directory. The preferred extension for the output file is <code>.mpm</code>.<br />
<br />
Note that [[NairnMPM]] checks many command options, but not all. Most commonly, a typo in an <tt>XML</tt> command name or attribute or use of an invalid attribute may or may not trigger an error. If you have such errors, the resulting MPM simulation may be very different than the one you expected. For this reason, when using command-line execution, you should always include the <tt>-v</tt> option to validate the input file. <br />
<br />
See the [[Sample MPM Input Command File#Trial Run with XML MPM Input|sample MPM input <tt>XML</tt> file]] for a method to do a trial command line execution for MPM calculations.</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Options_for_Running_Calculations&diff=9869Options for Running Calculations2023-11-28T22:20:20Z<p>Nairnj: /* Running Using NairnFEAMPMViz Java Application (any platform) */</p>
<hr />
<div>This page has information on running [[NairnFEA]] finite element calculations and [[NairnMPM]] material point method calculations. If you just compiled the code, it includes information on doing test calculations.<br />
<br />
== Running Using NairnFEAMPM (Macintosh OS X only) ==<br />
<br />
If you are using a Mac, you can go to the [[NairnFEAMPM|<tt>NairnFEAMPM</tt> page]] and download a complete package that lets you create input files using a scripting language or raw <tt>XML</tt> commands, run calculations, and visualize the results. If you are working directly with the source code, you can still run calculations using [[NairnFEAMPM]], but first you have to configure it to use to new compiled code engines in place of the embedded code engines. To make that change consult the "Code Engine Development" topic in the help window.<br />
<br />
To do a test calculation, choose the "FEA Commands File", "MPM Commands File" and any example options in the "File &rarr; New" submenu. Save the input commands to a folder on your computer and then choose the "Analyze &rarr; Run FEA/MPM Analysis" menu command. The text output will stream to a window. When it is done you can use built-in tools to visualize the results. For all the details on running calculations and on visualizing results, you can consult the help window within [[NairnFEAMPM]].<br />
<br />
== Running Using NairnFEAMPMViz Java Application (any platform) ==<br />
<br />
If you are using Windows, you can go to the [[NairnFEAMPMViz|<tt>NairnFEAMPMViz</tt> page]] and download a complete package that lets you create input files using a scripting language or raw <tt>XML</tt> commands, run calculations, and visualize the results. This stand-alone package works without needed to download and compile and code engines to third-party software tools. If you later decide to work directly with the source code, you can still run calculations using [[NairnFEAMPMViz]], but first you have to configure it to use your newly compiled code engines in place of the bundled code engines in the package. To make that change consult the "Running Calculations" section in the help window.<br />
<br />
In Linux, Mac, or Windows, you can alternatively run the <tt>NairnFEAMPMViz.jar</tt> Java app in the downloaded package. It runs directly in Java (which must be installed on your computer) and will need be configured to run your compiled code engines. For more details consult the "Code Engine Development" item in the help window. Note that Mac users should use [[NairnFEAMPM]] instead because it has more features than the [[NairnFEAMPMViz]] Java application.<br />
<br />
To do a test calculation, choose the "New FEA Commands Document", "New MPM Commands Document" or pick any option from the "Examples" submenu in the "File" menu. Save the input commands file to a folder on your computer and then choose the "Analyze &rarr; Run FEA/MPM Analysis" menu command. The text output will stream to a window. When it is done you can use built-in tools to visualize the results. For all the details on running calculations and on visualizing results, you can consult the help window within [[NairnFEAMPMViz]].<br />
<br />
== Command-Line Execution ==<br />
<br />
You can run calculations on any platform using a command line window in Mac or Linux. If Windows when [[Compiling in Windows#Using Visual Studio|compiled using Visual Studio]], you can use these same methods (substituting Window's file paths as needed) in a DOS command window. The following sections give brief instructions.<br />
<br />
=== Running NairnFEA ===<br />
<br />
You can run [[NairnFEA]] from a Unix or Linux or DOS command line using:<br />
<br />
NairnFEA [options] input > output<br />
<br />
where<br />
<br />
* <tt>[options]</tt> are the options may be one or more of the following:<br />
*; -v :Validate the input <tt>XML</tt> using the <tt>DTD</tt> file specified in the <tt>!DOCTYPE</tt> line in the preamble of the input file. If the specified <tt>DTD</tt> cannot be found, the code will exit with an error message. If the input file has no <tt>!DOCTYPE</tt>, the validation will be skipped. The required <tt>DTD</tt> file can be found in the <tt>NairnFEA/input</tt> and <tt>NairnMPM/input</tt> directories of the <tt>nairn-mpm-fea</tt> project. As explained below, this option should always be used when running from a command line.<br />
*; -np 4 : Set the number of processors to use for parallel execution (required compilation of the parallel version of [[NairnFEA]].<br />
*; -a : Read the input file, set up the mesh and all boundary conditions and then abort before any calculations. This option is useful to check that all commands have created the mesh and boundary conditions correctly before actually doing the analysis in a subsequent run.<br />
*; -w : When this option is not used, relative file names for output files and for input of BMP files are resolved as being relative to the input file. When this option is used, relative file names are resolved instead to the current working directory.<br />
*; -H (or -h): Display brief help message and then exit.<br />
* <tt>input</tt> is the path name of the input <tt>XML</tt> file. The preferred extension for the input files is <tt>.fmcmd</tt>.<br />
* <tt>output</tt> is the name of the output text file. The output of [[NairnFEA]] is to standard output and redirection should be used to save the output to a file. The preferred extension for the output file is <tt>.fea</tt>.<br />
<br />
Note that [[NairnFEA]] checks many command options, but not all. Most commonly, a typo in an <tt>XML</tt> command name or attribute or use of an invalid attribute may or may not trigger an error. If you have such errors, the resulting FEA analysis may be very different than the one you expected. For this reason, when using command-line execution, you should always include the <tt>-v</tt> option to validate the input file. <br />
<br />
See the [[Sample FEA Input Command File#Trial Run with XML FEA Input|sample FEA input <tt>XML</tt> file]] for a method to do a trial command line execution for FEA calculations.<br />
<br />
=== Running NairnMPM ===<br />
<br />
You can run [[NairnMPM]] from a Unix or Linux or DOS command line using:<br />
<br />
NairnMPM [options] input > output<br />
<br />
where<br />
<br />
* <tt>[options]</tt> are the options may be one or more of the following:<br />
*; -v :Validate the input <tt>XML</tt> using the <tt>DTD</tt> file specified in the <tt>!DOCTYPE</tt> line in the preamble of the input file. If the specified <tt>DTD</tt> cannot be found, the code will exit with an error message. If the input file has no <tt>!DOCTYPE</tt>, the validation will be skipped. The required <tt>DTD</tt> file can be found in the <tt>NairnMPM/input</tt> directory of the <tt>nairn-mpm-fea</tt> project. As explained below, this option should always be used when running from a command line.<br />
*; -np 4 : Set the number of processors to use for parallel execution (requires compilation of the parallel version of code engine).<br />
*; -r : Reverse the bytes when writing results to archive files. This option can be useful when you are running calculations on one computer, but visualizing them on a different computer which uses a different byte order. For example. old Macintosh computers and computers with Intel chips use opposite byte orders. This option can be omitted if you analyze on the same computer where you run the calculations or if you have analysis software that works with any byte order (such as [[NairnFEAMPM]] and [[NairnFEAMPMViz]]<br />
*; -a : Start the analysis, archive the initial conditions, and then abort the calculations. This option is useful to check that all commands have created the mesh, assigned material points, and created boundary conditions correctly before actually doing the analysis in a subsequent run.<br />
*; -w : When this option is not used, relative file names for output files and for input of bmp files are resolved as being relative to the input file. When this option is used, relative file names are resolved instead to the current working directory.<br />
*; -H (or -h): Display brief help message and then exit.<br />
* <tt>input</tt> is the path name of the input <tt>XML</tt> file. The preferred extension for the input files is <tt>.fmcmd</tt>.<br />
* <tt>output</tt> is the name of the output text file. The output of [[NairnMPM]] is to standard output and redirection should be used to save the output to a file. To insure correct relative paths between the output file and the archive files, the output file should be saved in the same folder as the input file or if option <tt>-w</tt> is used, it should be saved in the current working directory. The preferred extension for the output file is <code>.mpm</code>.<br />
<br />
Note that [[NairnMPM]] checks many command options, but not all. Most commonly, a typo in an <tt>XML</tt> command name or attribute or use of an invalid attribute may or may not trigger an error. If you have such errors, the resulting MPM simulation may be very different than the one you expected. For this reason, when using command-line execution, you should always include the <tt>-v</tt> option to validate the input file. <br />
<br />
See the [[Sample MPM Input Command File#Trial Run with XML MPM Input|sample MPM input <tt>XML</tt> file]] for a method to do a trial command line execution for MPM calculations.</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Options_for_Running_Calculations&diff=9868Options for Running Calculations2023-11-28T22:17:39Z<p>Nairnj: /* Running Using NairnFEAMPMViz Java Application (any platform) */</p>
<hr />
<div>This page has information on running [[NairnFEA]] finite element calculations and [[NairnMPM]] material point method calculations. If you just compiled the code, it includes information on doing test calculations.<br />
<br />
== Running Using NairnFEAMPM (Macintosh OS X only) ==<br />
<br />
If you are using a Mac, you can go to the [[NairnFEAMPM|<tt>NairnFEAMPM</tt> page]] and download a complete package that lets you create input files using a scripting language or raw <tt>XML</tt> commands, run calculations, and visualize the results. If you are working directly with the source code, you can still run calculations using [[NairnFEAMPM]], but first you have to configure it to use to new compiled code engines in place of the embedded code engines. To make that change consult the "Code Engine Development" topic in the help window.<br />
<br />
To do a test calculation, choose the "FEA Commands File", "MPM Commands File" and any example options in the "File &rarr; New" submenu. Save the input commands to a folder on your computer and then choose the "Analyze &rarr; Run FEA/MPM Analysis" menu command. The text output will stream to a window. When it is done you can use built-in tools to visualize the results. For all the details on running calculations and on visualizing results, you can consult the help window within [[NairnFEAMPM]].<br />
<br />
== Running Using NairnFEAMPMViz Java Application (any platform) ==<br />
<br />
If you are using Windows, you can go to the [[NairnFEAMPMViz|<tt>NairnFEAMPMViz</tt> page]] and download a complete package that lets you create input files using a scripting language or raw <tt>XML</tt> commands, run calculations, and visualize the results. This stand-alone package works without needed to download and compile and code engines to third-party software tools. If you later decide to work directly with the source code, you can still run calculations using [[NairnFEAMPMViz]], but first you have to configure it to use your newly compiled code engines in place of the bundled code engines in the package. To make that change consult the "Code Engine Development" item in the help window.<br />
<br />
In Linux, Mac, or Windows, you can alternatively run the <tt>NairnFEAMPMViz.jar</tt> Java app in the downloaded package. It runs directly in Java (which must be installed on your computer) and will need be configured to run your compiled code engines. For more details consult the "Code Engine Development" item in the help window. Note that Mac users should use [[NairnFEAMPM]] instead because it has more features than the [[NairnFEAMPMViz]] Java application.<br />
<br />
To do a test calculation, choose the "New FEA Commands Document", "New MPM Commands Document" or pick any option from the "Examples" submenu in the "File" menu. Save the input commands file to a folder on your computer and then choose the "Analyze &rarr; Run FEA/MPM Analysis" menu command. The text output will stream to a window. When it is done you can use built-in tools to visualize the results. For all the details on running calculations and on visualizing results, you can consult the help window within [[NairnFEAMPMViz]].<br />
<br />
== Command-Line Execution ==<br />
<br />
You can run calculations on any platform using a command line window in Mac or Linux. If Windows when [[Compiling in Windows#Using Visual Studio|compiled using Visual Studio]], you can use these same methods (substituting Window's file paths as needed) in a DOS command window. The following sections give brief instructions.<br />
<br />
=== Running NairnFEA ===<br />
<br />
You can run [[NairnFEA]] from a Unix or Linux or DOS command line using:<br />
<br />
NairnFEA [options] input > output<br />
<br />
where<br />
<br />
* <tt>[options]</tt> are the options may be one or more of the following:<br />
*; -v :Validate the input <tt>XML</tt> using the <tt>DTD</tt> file specified in the <tt>!DOCTYPE</tt> line in the preamble of the input file. If the specified <tt>DTD</tt> cannot be found, the code will exit with an error message. If the input file has no <tt>!DOCTYPE</tt>, the validation will be skipped. The required <tt>DTD</tt> file can be found in the <tt>NairnFEA/input</tt> and <tt>NairnMPM/input</tt> directories of the <tt>nairn-mpm-fea</tt> project. As explained below, this option should always be used when running from a command line.<br />
*; -np 4 : Set the number of processors to use for parallel execution (required compilation of the parallel version of [[NairnFEA]].<br />
*; -a : Read the input file, set up the mesh and all boundary conditions and then abort before any calculations. This option is useful to check that all commands have created the mesh and boundary conditions correctly before actually doing the analysis in a subsequent run.<br />
*; -w : When this option is not used, relative file names for output files and for input of BMP files are resolved as being relative to the input file. When this option is used, relative file names are resolved instead to the current working directory.<br />
*; -H (or -h): Display brief help message and then exit.<br />
* <tt>input</tt> is the path name of the input <tt>XML</tt> file. The preferred extension for the input files is <tt>.fmcmd</tt>.<br />
* <tt>output</tt> is the name of the output text file. The output of [[NairnFEA]] is to standard output and redirection should be used to save the output to a file. The preferred extension for the output file is <tt>.fea</tt>.<br />
<br />
Note that [[NairnFEA]] checks many command options, but not all. Most commonly, a typo in an <tt>XML</tt> command name or attribute or use of an invalid attribute may or may not trigger an error. If you have such errors, the resulting FEA analysis may be very different than the one you expected. For this reason, when using command-line execution, you should always include the <tt>-v</tt> option to validate the input file. <br />
<br />
See the [[Sample FEA Input Command File#Trial Run with XML FEA Input|sample FEA input <tt>XML</tt> file]] for a method to do a trial command line execution for FEA calculations.<br />
<br />
=== Running NairnMPM ===<br />
<br />
You can run [[NairnMPM]] from a Unix or Linux or DOS command line using:<br />
<br />
NairnMPM [options] input > output<br />
<br />
where<br />
<br />
* <tt>[options]</tt> are the options may be one or more of the following:<br />
*; -v :Validate the input <tt>XML</tt> using the <tt>DTD</tt> file specified in the <tt>!DOCTYPE</tt> line in the preamble of the input file. If the specified <tt>DTD</tt> cannot be found, the code will exit with an error message. If the input file has no <tt>!DOCTYPE</tt>, the validation will be skipped. The required <tt>DTD</tt> file can be found in the <tt>NairnMPM/input</tt> directory of the <tt>nairn-mpm-fea</tt> project. As explained below, this option should always be used when running from a command line.<br />
*; -np 4 : Set the number of processors to use for parallel execution (requires compilation of the parallel version of code engine).<br />
*; -r : Reverse the bytes when writing results to archive files. This option can be useful when you are running calculations on one computer, but visualizing them on a different computer which uses a different byte order. For example. old Macintosh computers and computers with Intel chips use opposite byte orders. This option can be omitted if you analyze on the same computer where you run the calculations or if you have analysis software that works with any byte order (such as [[NairnFEAMPM]] and [[NairnFEAMPMViz]]<br />
*; -a : Start the analysis, archive the initial conditions, and then abort the calculations. This option is useful to check that all commands have created the mesh, assigned material points, and created boundary conditions correctly before actually doing the analysis in a subsequent run.<br />
*; -w : When this option is not used, relative file names for output files and for input of bmp files are resolved as being relative to the input file. When this option is used, relative file names are resolved instead to the current working directory.<br />
*; -H (or -h): Display brief help message and then exit.<br />
* <tt>input</tt> is the path name of the input <tt>XML</tt> file. The preferred extension for the input files is <tt>.fmcmd</tt>.<br />
* <tt>output</tt> is the name of the output text file. The output of [[NairnMPM]] is to standard output and redirection should be used to save the output to a file. To insure correct relative paths between the output file and the archive files, the output file should be saved in the same folder as the input file or if option <tt>-w</tt> is used, it should be saved in the current working directory. The preferred extension for the output file is <code>.mpm</code>.<br />
<br />
Note that [[NairnMPM]] checks many command options, but not all. Most commonly, a typo in an <tt>XML</tt> command name or attribute or use of an invalid attribute may or may not trigger an error. If you have such errors, the resulting MPM simulation may be very different than the one you expected. For this reason, when using command-line execution, you should always include the <tt>-v</tt> option to validate the input file. <br />
<br />
See the [[Sample MPM Input Command File#Trial Run with XML MPM Input|sample MPM input <tt>XML</tt> file]] for a method to do a trial command line execution for MPM calculations.</div>Nairnjhttp://osupdocs.forestry.oregonstate.edu/index.php?title=Options_for_Running_Calculations&diff=9867Options for Running Calculations2023-11-28T22:15:10Z<p>Nairnj: /* Running Using NairnFEAMPMViz Java Application (any platform) */</p>
<hr />
<div>This page has information on running [[NairnFEA]] finite element calculations and [[NairnMPM]] material point method calculations. If you just compiled the code, it includes information on doing test calculations.<br />
<br />
== Running Using NairnFEAMPM (Macintosh OS X only) ==<br />
<br />
If you are using a Mac, you can go to the [[NairnFEAMPM|<tt>NairnFEAMPM</tt> page]] and download a complete package that lets you create input files using a scripting language or raw <tt>XML</tt> commands, run calculations, and visualize the results. If you are working directly with the source code, you can still run calculations using [[NairnFEAMPM]], but first you have to configure it to use to new compiled code engines in place of the embedded code engines. To make that change consult the "Code Engine Development" topic in the help window.<br />
<br />
To do a test calculation, choose the "FEA Commands File", "MPM Commands File" and any example options in the "File &rarr; New" submenu. Save the input commands to a folder on your computer and then choose the "Analyze &rarr; Run FEA/MPM Analysis" menu command. The text output will stream to a window. When it is done you can use built-in tools to visualize the results. For all the details on running calculations and on visualizing results, you can consult the help window within [[NairnFEAMPM]].<br />
<br />
== Running Using NairnFEAMPMViz Java Application (any platform) ==<br />
<br />
If you are using Windows, you can go to the [[NairnFEAMPMViz|<tt>NairnFEAMPMViz</tt> page]] and download a complete package that lets you create input files using a scripting language or raw <tt>XML</tt> commands, run calculations, and visualize the results. If you are working directly with the source code, you can still run calculations using [[NairnFEAMPMViz]], but first you have to configure it to use your newly compiled code engines in place of the bundled code engines in the package. To make that change consult the "Code Engine Development" item in the help window.<br />
<br />
In Linux, Mac, or Windows, you can alternatively run the <tt>NairnFEAMPMViz.jar</tt> Java app in the downloaded package. It runs directly in Java (which must be installed on your computer) and will need be configured to run your compiled code engines. For more details consult the "Code Engine Development" item in the help window. Note that Mac users should use [[NairnFEAMPM]] instead because it has more features than the [[NairnFEAMPMViz]] Java application.<br />
<br />
To do a test calculation, choose the "New FEA Commands Document", "New MPM Commands Document" or pick any option from the "Examples" submenu in the "File" menu. Save the input commands file to a folder on your computer and then choose the "Analyze &rarr; Run FEA/MPM Analysis" menu command. The text output will stream to a window. When it is done you can use built-in tools to visualize the results. For all the details on running calculations and on visualizing results, you can consult the help window within [[NairnFEAMPMViz]].<br />
<br />
== Command-Line Execution ==<br />
<br />
You can run calculations on any platform using a command line window in Mac or Linux. If Windows when [[Compiling in Windows#Using Visual Studio|compiled using Visual Studio]], you can use these same methods (substituting Window's file paths as needed) in a DOS command window. The following sections give brief instructions.<br />
<br />
=== Running NairnFEA ===<br />
<br />
You can run [[NairnFEA]] from a Unix or Linux or DOS command line using:<br />
<br />
NairnFEA [options] input > output<br />
<br />
where<br />
<br />
* <tt>[options]</tt> are the options may be one or more of the following:<br />
*; -v :Validate the input <tt>XML</tt> using the <tt>DTD</tt> file specified in the <tt>!DOCTYPE</tt> line in the preamble of the input file. If the specified <tt>DTD</tt> cannot be found, the code will exit with an error message. If the input file has no <tt>!DOCTYPE</tt>, the validation will be skipped. The required <tt>DTD</tt> file can be found in the <tt>NairnFEA/input</tt> and <tt>NairnMPM/input</tt> directories of the <tt>nairn-mpm-fea</tt> project. As explained below, this option should always be used when running from a command line.<br />
*; -np 4 : Set the number of processors to use for parallel execution (required compilation of the parallel version of [[NairnFEA]].<br />
*; -a : Read the input file, set up the mesh and all boundary conditions and then abort before any calculations. This option is useful to check that all commands have created the mesh and boundary conditions correctly before actually doing the analysis in a subsequent run.<br />
*; -w : When this option is not used, relative file names for output files and for input of BMP files are resolved as being relative to the input file. When this option is used, relative file names are resolved instead to the current working directory.<br />
*; -H (or -h): Display brief help message and then exit.<br />
* <tt>input</tt> is the path name of the input <tt>XML</tt> file. The preferred extension for the input files is <tt>.fmcmd</tt>.<br />
* <tt>output</tt> is the name of the output text file. The output of [[NairnFEA]] is to standard output and redirection should be used to save the output to a file. The preferred extension for the output file is <tt>.fea</tt>.<br />
<br />
Note that [[NairnFEA]] checks many command options, but not all. Most commonly, a typo in an <tt>XML</tt> command name or attribute or use of an invalid attribute may or may not trigger an error. If you have such errors, the resulting FEA analysis may be very different than the one you expected. For this reason, when using command-line execution, you should always include the <tt>-v</tt> option to validate the input file. <br />
<br />
See the [[Sample FEA Input Command File#Trial Run with XML FEA Input|sample FEA input <tt>XML</tt> file]] for a method to do a trial command line execution for FEA calculations.<br />
<br />
=== Running NairnMPM ===<br />
<br />
You can run [[NairnMPM]] from a Unix or Linux or DOS command line using:<br />
<br />
NairnMPM [options] input > output<br />
<br />
where<br />
<br />
* <tt>[options]</tt> are the options may be one or more of the following:<br />
*; -v :Validate the input <tt>XML</tt> using the <tt>DTD</tt> file specified in the <tt>!DOCTYPE</tt> line in the preamble of the input file. If the specified <tt>DTD</tt> cannot be found, the code will exit with an error message. If the input file has no <tt>!DOCTYPE</tt>, the validation will be skipped. The required <tt>DTD</tt> file can be found in the <tt>NairnMPM/input</tt> directory of the <tt>nairn-mpm-fea</tt> project. As explained below, this option should always be used when running from a command line.<br />
*; -np 4 : Set the number of processors to use for parallel execution (requires compilation of the parallel version of code engine).<br />
*; -r : Reverse the bytes when writing results to archive files. This option can be useful when you are running calculations on one computer, but visualizing them on a different computer which uses a different byte order. For example. old Macintosh computers and computers with Intel chips use opposite byte orders. This option can be omitted if you analyze on the same computer where you run the calculations or if you have analysis software that works with any byte order (such as [[NairnFEAMPM]] and [[NairnFEAMPMViz]]<br />
*; -a : Start the analysis, archive the initial conditions, and then abort the calculations. This option is useful to check that all commands have created the mesh, assigned material points, and created boundary conditions correctly before actually doing the analysis in a subsequent run.<br />
*; -w : When this option is not used, relative file names for output files and for input of bmp files are resolved as being relative to the input file. When this option is used, relative file names are resolved instead to the current working directory.<br />
*; -H (or -h): Display brief help message and then exit.<br />
* <tt>input</tt> is the path name of the input <tt>XML</tt> file. The preferred extension for the input files is <tt>.fmcmd</tt>.<br />
* <tt>output</tt> is the name of the output text file. The output of [[NairnMPM]] is to standard output and redirection should be used to save the output to a file. To insure correct relative paths between the output file and the archive files, the output file should be saved in the same folder as the input file or if option <tt>-w</tt> is used, it should be saved in the current working directory. The preferred extension for the output file is <code>.mpm</code>.<br />
<br />
Note that [[NairnMPM]] checks many command options, but not all. Most commonly, a typo in an <tt>XML</tt> command name or attribute or use of an invalid attribute may or may not trigger an error. If you have such errors, the resulting MPM simulation may be very different than the one you expected. For this reason, when using command-line execution, you should always include the <tt>-v</tt> option to validate the input file. <br />
<br />
See the [[Sample MPM Input Command File#Trial Run with XML MPM Input|sample MPM input <tt>XML</tt> file]] for a method to do a trial command line execution for MPM calculations.</div>Nairnj