<POTENTIAL> delobelle#

Description#

Delobelle’s potential implements a special form of kinematic hardening evolution using multiple tensorial variables 1explicit forms of this model are available in the ZebFront files Edf_modif.z and Lma_cwsr.z. The implementation is based on the work described in [M25].

The class allows any CRITERION, FLOW, object to be used, and uses the ISOTROPIC object in a somewhat different manner than the gen_evp based potentials. There is a limitation on the ISOTROPIC objects which can be used, such that no additional integrated variables are added.

The inelastic flow is controlled using a scalar CRITERION value for the “overstress:”

(456)#\[f = f(\ten \sigma-\ten x) \hskip2cm \ten n = \pder{f}{\ten \sigma}\]

where the function \(f\) is selected with the *criterion option below. The tensor \(\ten x\) is the current back stress (not sum of back stresses as in other models).

The scalar flow magnitude \(\dot{\lambda}\) is a function defined in terms of \(f\) using the *flow option as in other potential models. The inelastic strain rate tensor is also defined as in other models using the normality principle so \(\dot{\boldsymbol{\varepsilon}}_{in} = \dot{\lambda}:\ten n\).

The initial hardening slope for kinematic variables follows a flow normal which is modified from the inelastic strain by scalar hardening and a 4th order tensorial orientation matrix:

(457)#\[\bf m = \dfrac{2}{3}(R(\lambda)+Y_\theta)\bf T_1:\ten n\]

The isotropic function \(R(\lambda)\) (\(\lambda\) is the cumulated equivalent inelastic strain) is chosen using the *isotropic option below. Note that only ISOTROPIC objects which have no integrated variables may be used (e.g. no recovery). The \(\bf T_1\) matrix is entered using the *T1 command (required).

The tensorial back stress evolves with the following three coupled state variables:

(458)#\[\begin{split}\begin{aligned} \dot{\bf \alpha}_2 &= \dot{\lambda}\left[\bf m - \bf T_2\ten x_2\right]\\ \ten x_2 & = {\tt p2}~\bf \alpha_2 \end{aligned}\end{split}\]
(459)#\[\begin{split}\begin{aligned} \dot{\bf \alpha}_1 &= \dot{\lambda}\left[\bf m - \bf T_2(\ten x_1-\ten x_2)\right] \\ \ten x_1 &= {\tt p1}~\bf \alpha_1 \end{aligned}\end{split}\]
(460)#\[\begin{split}\begin{aligned} \dot{\bf \alpha} & = \dot{\lambda}\left[\bf m - \bf T_2(\ten x - \ten x_1)\right] - \dot{\lambda}_r(g)T_1:\pder{g}{\ten x} \\ \ten x & = {\tt p}~\bf \alpha \end{aligned}\end{split}\]

The last term is a static (time based) recovery mechanism in the \(\ten x\) variable. It uses a separate recovery potential (CRITERION) object for \(g\) and a flow rate magnitude to find \(\dot{\lambda}_r\). These are selected with the *g_function and *recovery_flow options for \(g\) and \(\dot{\lambda}_r\) respectively. In these evolutions, the matrix \(\bf T_2\) is entered similarly to the \(\bf T_1\) matrix, but using the *T2 command.

An additional isotropic hardening component can be added to handle supplemental hardening in the case of non-radial loading. The variable is integrated using the following evolution:

(461)#\[\dot{Y_\theta} = \dot{\lambda}\left[{\tt Yt\_inf}f_\theta - Y_\theta\right]\hskip1cm f_\theta = 1 - {\tt abs}\left[\frac{\ten x}{g(\ten x)} \pder{h(\dot{\ten x})}{\dot{\ten x}}\right]\hskip1cm Y_\theta = {\tt bt}y_\theta \hskip1cm\]

The potential function \(h\) is a CRITERION object which can be entered using the optional *h_function command. If it is not entered, the \(g\) function will be used.

Hardening variables will be stored in the following order:

(462)#\[{\bf h} = [\bf \alpha_1~~\bf \alpha_2~~\bf \alpha_3~~y_{\theta} ]\]

while \(y_{\theta}\) is only included when the coefficient bt is given.

Syntax#

The syntax understood by this potential is summarized below:

**potential delobelle [ name ] [ *flow <FLOW> ] [ *criterion <CRITERION> ] [ *isotropic <ISOTROPIC> ] [ *T1 ] [ *T2 ] [ *g_function ] [ *recovery_flow ] [ *model_coef ] \(~\,~\,\) p p1 p2 bt Yt_inf [ *h_function ]

Stored Variables

Internal variables added by a delobelle potential instance are the following:

prefix

size

description

default

pnvi

T-2

inelastic strain tensor

yes

pncum

S

cumulated value of the \(\dot{\lambda}\)

yes

pn_alpha2

T-2

kinematic strain variable \(\bf \alpha_2\)

no

pn_alpha1

T-2

kinematic strain variable \(\bf \alpha_1\)

no

pn_alpha

T-2

kinematic strain variable \(\bf \alpha\)

no

yt

S

non-radial hardening variable

no

Note that the program does not normalize the value of \(\ten n\) such that \(\ten n:\ten n = 1\) which could affect the meaning of the behavior and the influence of the anisotropic coefficients.

Compatibility/limitations#

This potential is not valid for the reduced integration behavior. It also does not implement the copy mechanism required for use in the polycrystal. It may not be reasonable to make kinematic state variable coupling, but it should work (in the p coefficients). This model should be valid with the damage mechanics **damage or other similar gen_evp modifiers. Coefficients should not be allowed to vary with VINT or VAUX variables. The use of \(Y_{\theta}\) is not exceptionally tested.

Example#

***behavior gen_evp
 **elasticity isotropic
     young 80000.0
     poisson 0.32
 **potential delobelle ev
  *flow hyperbolic
      K 22.3       m  1.44
      eps0 .202e-8
  *isotropic constant
      R0    99.5
  *criterion anisotropic orthotropic
     c11 .44667    c22 .58    c33  .666
     c44 0.        c55 1.7    c66 0.
     c12 -.18      c23 -.4    c31 -.26667
  *T1 orthotropic
     c11  .1266667 c22  .338  c33  .666
     c44 0.        c55 .66    c66 0.
     c12  .101     c23 -.439  c31 -.2276667
  *T2 orthotropic
     c11 .1021667  c22 .3235  c33 .6666666
     c44 0.        c55 1.     c66 0.
     c12 .1205     c23 -.444  c31 -.2226667
  *g_function anisotropic orthotropic
     c11 3.346000  c22 3.346  c33 .666
     c44 0.        c55 1.375  c66 0.
     c12 -3.012667 c23 -.333333 c31 -.3333333
  *recovery_flow hyperbolic
     K    331.69   n   3.569
     eps0 0.00000019831932773108 % .00354/11900.*2.0/3.0
  *model_coef p 11900.0 p1 1656.0 p2 325.5
***return