Softening Law Implementation

From OSUPDOCS
Revision as of 11:05, 8 July 2021 by Nairnj (talk | contribs) (Created page with "=== Softening Law Implementation === It is easy to add new softening laws, although not clear if that change would be much different then using the softening laws already ava...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Softening Law Implementation

It is easy to add new softening laws, although not clear if that change would be much different then using the softening laws already available. As explained in Ref. [1], the addition of a softening only requires code to return:

      [math]\displaystyle{ f(\delta,s), \quad f'(\delta,s), \quad A(\delta,s), \quad{\rm and}\quad\max\bigl(-f'(\delta,s)\bigr) }[/math]

One internal calculation is to evolve damage. That calculation can be done from the above softening law properties by solving the discrete differential equation[1]

      [math]\displaystyle{ d\varepsilon = d\delta + \varepsilon_0 \bigl(f(\delta+d\delta,s) - f(\delta,s)\bigr) }[/math]

where [math]\displaystyle{ d\delta }[/math] is a maximum cracking strain increment associated with strain increment [math]\displaystyle{ d\varepsilon }[/math] during damage evolution. The task is to solve for [math]\displaystyle{ d\delta }[/math], which represents the evolution of damage in the current time step. The generic softening law code solves this equation using Newton's method with bracketing. The initial brackets are:

      [math]\displaystyle{ d\varepsilon \le d\delta \le d\varepsilon + \varepsilon_0f(\delta,s) }[/math]

The lower limit is found because the second term is less than or equal to zero for monotonic softening. The upper limit is if failure occurs such that [math]\displaystyle{ f(\delta+d\delta,s)=0 }[/math]. If [math]\displaystyle{ d\delta_n }[/math] is the Newton's method sequence approaching the solution, the next increment by Newton's method is derived to be:

      [math]\displaystyle{ d\delta_{n+1} = d\delta - {{d\delta-d\varepsilon\over \varepsilon_0f(\delta,s)} + {f(\delta+d\delta,s)\over f(\delta,s)}-1\over {1\over \varepsilon_0f(\delta,s)} + {f'(\delta+d\delta,s)\over f(\delta,s)}} }[/math]

When the next increment is outside the current brackets, a custom bracketing calculation is used to make the solution always stable. Although generic code can solve this differential equation for any softening law with provided properties listed above, some softening laws may have more efficient solutions. For example Linear Softening can exactly solve the differential equation without needing Newton's method and Exponential Softening can express the solution in terms of branch zero of the Lambert W function for real arguments (although evaluation of that function needs a numerical method). Any new softening laws can override generic functions for Newton's method if they have a more efficient approach.

  1. 1.0 1.1 J. A. Nairn, C. Hammerquist, and Y. E. Aimene (2017), Numerical Implementation of Anisotropic Damage Mechanics, Int. J. for Numerical Methods in Engineering, 112(12), 1846-1868.