Difference between revisions of "Clamped Neo-Hookean Material"

From OSUPDOCS
Jump to navigation Jump to search
 
(32 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Constitutive Law ==
== Constitutive Law ==


This  [[Material Models|MPM Material]] is an isotropic, elastic-plastic material in large strains using a hyperelastic formulation. The elastic part is a neo-Hookean material. Plasticity occurs when the elongation in either tensile of compressive elongation reaches a critical value. This material is based on similar material using in a paper to animate snow mechanics<ref name="DIZ">A. Stomakhin, C. Schroeder, L. Chai, J. Teran, and A. Selle, "A material point method for snow simulation," ACM Trans. Graph., Vol. 32, No. 4, Article 102, July 2013.</ref>. Although the model was based on engineering analysis of snow, it was simplified for efficiency in animation and for ease it creating a variety of responses.
This  [[Material Models|MPM Material]] is an isotropic, elastic-plastic material in large strains using a hyperelastic formulation. The elastic part is a neo-Hookean material. Plasticity occurs when the elongation in either tensile of compressive elongation reaches a critical value. This material is based on the material modeling used in a paper to animate snow mechanics<ref name="DIZ">A. Stomakhin, C. Schroeder, L. Chai, J. Teran, and A. Selle, "A material point method for snow simulation," ACM Trans. Graph., Vol. 32, No. 4, Article 102, July 2013.</ref>. Although that model was based on engineering analysis of snow, it was simplified for efficiency in animation and for ease it creating a variety of responses.


The elastic regime of the material using a neo-Hookean material:
The elastic regime of the material uses an isotropic, neo-Hookean material potential energy:


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<math>W = \Phi\bigl(\mathbf{F}_E,G(J_P),\lambda(J_P)\bigr) </math>
<math>W= \Phi\bigl(\mathbf{F}_E,G(J_P),\lambda(J_P)\bigr)</math>


where <math>\Phi()</math> is a neo-Hookean potential energy function that depends on the current elastic deformation gradient (<math>\mathbf{F}_E</math>) and shear and Lamé moduli <math>G(J_P)</math> and <math>\lambda(J_P)</math>. The implementation hear allows two different neo-Hookean law. The first uses the law proposed in Stomakhin ''et al.''<ref name="DIZ"/>. The second use the law defined for the standard [[Neo-Hookean Material|neo-Hookean material]].
where <math>\Phi()</math> is a neo-Hookean potential energy function that depends on the current elastic deformation gradient (<math>\mathbf{F}_E</math>) and shear and Lamé moduli <math>G(J_P)</math> and <math>\lambda(J_P)</math>. The implementation here allows two different neo-Hookean laws. The first uses the law defined for the standard [[Neo-Hookean Material|neo-Hookean material]].  The second uses a modified corotated elasticity law proposed in Stomakhin ''et al.''<ref name="DIZ"/>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<math>\Phi\bigl(\mathbf{F}_E,G(J_P),\lambda(J_P)\bigr) = G(J_P)\sum_k (\lambda_k-1)^2 + {\lambda(J_P)\over 2}(J_E-1)^2</math>
 
where <math>\lambda_k</math> are the principal elongations and J<sub>E</sub> is the determinant of <math>\mathbf{F}_E</math>. This potential is a modified, co-rotated energy function; the modification changed the Lamé term for improved stability at large deformation.<ref name="MCR">A. Stomakhin, R. Howes,C. Schroeder, and J.M. Teran (2012). "Energetically consistent invertible elasticity." In Eurographics/ACM SIGGRAPH Symposium on Computer Animation.</ref> The Cauchy stress by this law is
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<math>\mathbf{\sigma} = \sum_k  \left( {2G(J_P)\over J_E} \lambda_k(\lambda_k-1)+ \lambda(J_p)(J_E-1)\right) \vec b_k\otimes\vec b_k</math>
 
where <math>\vec b_k</math> are the eigenvectors of the elastic left Cauchy-Green strain tensor (<math>\mathbf{B}</math>).
 
The neo-Hookean mechanical properties are assumed to depend on the amount of plastic volume change using
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<math>G(J_P)= G(1)e^{\xi(1-J_P)} \qquad {\rm and} \qquad \lambda(J_P)= \lambda(1)e^{\xi(1-J_P)}</math>
 
where <math>\xi</math> is a hardening parameter and <math>G(1)</math> and <math>\lambda(1)</math> are the initial shear and Lamé moduli (''i.e''., before any plasticity). Note that in tension, the material softens, which can emulate damage propagation and failure. In compression, the material hardens.
 
The plasticity is implemented as follows:
 
# On each time step, a trial, updated deformation gradient is calculated and decomposed into its principle stretches.
# If any stretch is greater then (1+&theta;<sub>t</sub>), it is set to (1+&theta;<sub>t</sub>), where &theta;<sub>t</sub> is the critical tensile strain before tensile failure. If any stretch is less then (1-&theta;<sub>c</sub>), it is set to (1-&theta;<sub>c</sub>), where &theta;<sub>c</sub> is the critical compressive strain before compressive failure. In other words, all elongations are "clamped" to be with the interval [1-&theta;<sub>c</sub>,1+&theta;<sub>t</sub>]
# Once the elongations are clamped, the final elastic deformation is found. The total J is divided into elastic J<sub>E</sub> and plastic J<sub>P</sub> = J/J<sub>E</sub>. The new mechanical properties are found from J<sub>P</sub> and the stress is found from these properties and the elastic deformation.
 
=== Dissipated Energy ===
 
Note that deformation within the clamped region may maintain constant J<sub>E</sub> meaning that J<sub>P</sub> will increase or decrease as J increases or decreases. Because a decrease in J<sub>P</sub> corresponds to an increase in energy, the material is a non-physical implementation of plasticity methods. As a result, no attempt was made to track dissipated energy. The only consequence of this fact is that you cannot use this material to simulate heating caused by plastic deformation (<i>i.e.</i>, calculations in [[Thermal Calculations#Conduction|"Adiabatic" mode]] will not result in particle temperature changes). Except for this simulation option, the dissipated energy plays no role in MPM results.
 
In brief, this material was developed for animation simunlations and likely should be limited to such simulations.
 
=== Residual Stress ===
 
In the presence of temperature or concentration changes, this material accounts for residual stresses by the process described for the [[Mooney Material#Residual Stress|Mooney-Rivlin material]]. This change only requires that the stress calculation replace <math>J_E</math> by <math>J_{eff} = J_E/J_{res}</math> and replace <math>\lambda_k</math> by <math>\lambda_k/\lambda_{res}</math>


== Material Properties ==
== Material Properties ==
Line 18: Line 51:
! Property !! Description !! Units !! Default
! Property !! Description !! Units !! Default
|-
|-
| CritComp || Critical compression extension || none || 0.025
| CritComp || Critical compression extension &theta;<sub>c</sub>. If less then 0, the material will not clamp stains and therefore be a [[#Neo-Hookean Option|elastic, Neo-Hookean material]]. || none || 0.025
|-
|-
| CritComp || Critical tensile extension || none || 0.0075
| CritTens || Critical tensile extension &theta;<sub>t</sub> If less then 0, the material will not clamp stains and therefore be a [[#Neo-Hookean Option|elastic, Neo-Hookean material]]. || none || 0.0075
|-
|-
| xihard || Hardening coefficient || none || 10
| xihard || Hardening coefficient &xi; || none || 10
|-
|-
| Elastic || Enter 0 to basic elastic stresses on the model in Ref. <ref name="DIZ"/>. Enter 1 to base elastic stresses on the [[Neo-Hookean Material|neo-Hookean material]]. || none || 0
| Elastic || Enter 0 to find elastic stresses on the model in Stomakhin ''et al.''<ref name="DIZ"/> (and described above). Enter 1 to find elastic stresses using an alternative [[Neo-Hookean Material|neo-Hookean material]]. || none || 0
|-
|-
| ([[Neo-Hookean Material#Material Properties|other]]) || Properties to define underlying neo-Hookean material (note that UJOption is always 1 when Elastic is 0, but can be any option when Elastic is 1) || varies || varies
| ([[Neo-Hookean Material#Material Properties|other]]) || Properties to define underlying neo-Hookean material (note that UJOption is always 1 when Elastic is 0, but can be any option when Elastic is 1) || varies || varies
|-
|-
|}
|}
Note that any simulation that includes compression may get significantly stiffer as the analysis proceeds. To avoid instability due to lack of convergence, this material should always be use the the [[AdjustTimeStep Custom Task]] to change the time step when needed due to stiffening.
=== Neo-Hookean Option ===
If either <tt> CritComp</tt> or <tt> CritTens</tt> are less than zero, the elongation will never be clamped. As a consequence, the material will be a hyperlastic, Neo-hookean material. This mode is normally used when <tt>Elastic</tt> is 0 to use the modified, corotated elasticity model described above. There is no point to using this mode when <tt>Elastic</tt> is 1 because that material is better done by using the regular [[Neo-Hookean Material|neo-Hookean material]]. See [[Comparison of Neo-Hookean Materials]] for details on available neo-Hookean materials.
== History Data ==
This material uses history #1 to store the volumetric strain (''i.e.'', the determinant of the deformation gradient or J) and history #2 to store the plastic volumetric strain (''i.e.'', J<sub>P</sub>). The total strain, which is elastic, is stored in the elastic strain variable, while the plastic strain stores the left Cauchy Green strain tensor.


== Examples ==
== Examples ==


These commands model snow:
These commands are suggested by Stomakin ''et. al''.<ref name="DIZ"/> as reference material properties for animating snow:


Material "Snow","Snow Animation Material","ClampedNeohookean"
  E 0.14
  nu 0.2
  rho 0.4
  alpha 0
  CritComp .025
  CritTens .0074
  xihard 10
  Elastic 0
  Color 0.84,0.91,1
Done


== References ==
== References ==


<references/>
<references/>

Latest revision as of 13:42, 3 December 2020

Constitutive Law

This MPM Material is an isotropic, elastic-plastic material in large strains using a hyperelastic formulation. The elastic part is a neo-Hookean material. Plasticity occurs when the elongation in either tensile of compressive elongation reaches a critical value. This material is based on the material modeling used in a paper to animate snow mechanics[1]. Although that model was based on engineering analysis of snow, it was simplified for efficiency in animation and for ease it creating a variety of responses.

The elastic regime of the material uses an isotropic, neo-Hookean material potential energy:

      [math]\displaystyle{ W= \Phi\bigl(\mathbf{F}_E,G(J_P),\lambda(J_P)\bigr) }[/math]

where [math]\displaystyle{ \Phi() }[/math] is a neo-Hookean potential energy function that depends on the current elastic deformation gradient ([math]\displaystyle{ \mathbf{F}_E }[/math]) and shear and Lamé moduli [math]\displaystyle{ G(J_P) }[/math] and [math]\displaystyle{ \lambda(J_P) }[/math]. The implementation here allows two different neo-Hookean laws. The first uses the law defined for the standard neo-Hookean material. The second uses a modified corotated elasticity law proposed in Stomakhin et al.[1]:

      [math]\displaystyle{ \Phi\bigl(\mathbf{F}_E,G(J_P),\lambda(J_P)\bigr) = G(J_P)\sum_k (\lambda_k-1)^2 + {\lambda(J_P)\over 2}(J_E-1)^2 }[/math]

where [math]\displaystyle{ \lambda_k }[/math] are the principal elongations and JE is the determinant of [math]\displaystyle{ \mathbf{F}_E }[/math]. This potential is a modified, co-rotated energy function; the modification changed the Lamé term for improved stability at large deformation.[2] The Cauchy stress by this law is

      [math]\displaystyle{ \mathbf{\sigma} = \sum_k \left( {2G(J_P)\over J_E} \lambda_k(\lambda_k-1)+ \lambda(J_p)(J_E-1)\right) \vec b_k\otimes\vec b_k }[/math]

where [math]\displaystyle{ \vec b_k }[/math] are the eigenvectors of the elastic left Cauchy-Green strain tensor ([math]\displaystyle{ \mathbf{B} }[/math]).

The neo-Hookean mechanical properties are assumed to depend on the amount of plastic volume change using

      [math]\displaystyle{ G(J_P)= G(1)e^{\xi(1-J_P)} \qquad {\rm and} \qquad \lambda(J_P)= \lambda(1)e^{\xi(1-J_P)} }[/math]

where [math]\displaystyle{ \xi }[/math] is a hardening parameter and [math]\displaystyle{ G(1) }[/math] and [math]\displaystyle{ \lambda(1) }[/math] are the initial shear and Lamé moduli (i.e., before any plasticity). Note that in tension, the material softens, which can emulate damage propagation and failure. In compression, the material hardens.

The plasticity is implemented as follows:

  1. On each time step, a trial, updated deformation gradient is calculated and decomposed into its principle stretches.
  2. If any stretch is greater then (1+θt), it is set to (1+θt), where θt is the critical tensile strain before tensile failure. If any stretch is less then (1-θc), it is set to (1-θc), where θc is the critical compressive strain before compressive failure. In other words, all elongations are "clamped" to be with the interval [1-θc,1+θt]
  3. Once the elongations are clamped, the final elastic deformation is found. The total J is divided into elastic JE and plastic JP = J/JE. The new mechanical properties are found from JP and the stress is found from these properties and the elastic deformation.

Dissipated Energy

Note that deformation within the clamped region may maintain constant JE meaning that JP will increase or decrease as J increases or decreases. Because a decrease in JP corresponds to an increase in energy, the material is a non-physical implementation of plasticity methods. As a result, no attempt was made to track dissipated energy. The only consequence of this fact is that you cannot use this material to simulate heating caused by plastic deformation (i.e., calculations in "Adiabatic" mode will not result in particle temperature changes). Except for this simulation option, the dissipated energy plays no role in MPM results.

In brief, this material was developed for animation simunlations and likely should be limited to such simulations.

Residual Stress

In the presence of temperature or concentration changes, this material accounts for residual stresses by the process described for the Mooney-Rivlin material. This change only requires that the stress calculation replace [math]\displaystyle{ J_E }[/math] by [math]\displaystyle{ J_{eff} = J_E/J_{res} }[/math] and replace [math]\displaystyle{ \lambda_k }[/math] by [math]\displaystyle{ \lambda_k/\lambda_{res} }[/math]

Material Properties

The material properties are given in the following table.

Property Description Units Default
CritComp Critical compression extension θc. If less then 0, the material will not clamp stains and therefore be a elastic, Neo-Hookean material. none 0.025
CritTens Critical tensile extension θt If less then 0, the material will not clamp stains and therefore be a elastic, Neo-Hookean material. none 0.0075
xihard Hardening coefficient ξ none 10
Elastic Enter 0 to find elastic stresses on the model in Stomakhin et al.[1] (and described above). Enter 1 to find elastic stresses using an alternative neo-Hookean material. none 0
(other) Properties to define underlying neo-Hookean material (note that UJOption is always 1 when Elastic is 0, but can be any option when Elastic is 1) varies varies

Note that any simulation that includes compression may get significantly stiffer as the analysis proceeds. To avoid instability due to lack of convergence, this material should always be use the the AdjustTimeStep Custom Task to change the time step when needed due to stiffening.

Neo-Hookean Option

If either CritComp or CritTens are less than zero, the elongation will never be clamped. As a consequence, the material will be a hyperlastic, Neo-hookean material. This mode is normally used when Elastic is 0 to use the modified, corotated elasticity model described above. There is no point to using this mode when Elastic is 1 because that material is better done by using the regular neo-Hookean material. See Comparison of Neo-Hookean Materials for details on available neo-Hookean materials.

History Data

This material uses history #1 to store the volumetric strain (i.e., the determinant of the deformation gradient or J) and history #2 to store the plastic volumetric strain (i.e., JP). The total strain, which is elastic, is stored in the elastic strain variable, while the plastic strain stores the left Cauchy Green strain tensor.

Examples

These commands are suggested by Stomakin et. al.[1] as reference material properties for animating snow:

Material "Snow","Snow Animation Material","ClampedNeohookean"
  E 0.14
  nu 0.2
  rho 0.4
  alpha 0
  CritComp .025
  CritTens .0074
  xihard 10
  Elastic 0
  Color 0.84,0.91,1
Done

References

  1. 1.0 1.1 1.2 1.3 A. Stomakhin, C. Schroeder, L. Chai, J. Teran, and A. Selle, "A material point method for snow simulation," ACM Trans. Graph., Vol. 32, No. 4, Article 102, July 2013.
  2. A. Stomakhin, R. Howes,C. Schroeder, and J.M. Teran (2012). "Energetically consistent invertible elasticity." In Eurographics/ACM SIGGRAPH Symposium on Computer Animation.