Elasticipy.Plasticity module

class Elasticipy.Plasticity.JohnsonCook(A, B, n, C=None, eps_dot_ref=1.0, m=None, T0=25, Tm=None)[source]

Bases: object

Constructor for a Jonhson-Cook (JC) model.

The JC model is an exponential-law strain hardening model, which can take into account strain-rate sensibility and temperature-dependence (although they are not mandatory). See notes for details.

Parameters:
  • A (float) – Yield stress

  • B (float) – Work hardening coefficient

  • n (float) – Work hardening exponent

  • C (float, optional) – Strain-rate sensitivity coefficient

  • eps_dot_ref (float, optional) – Reference strain-rate

  • m (float, optional) – Temperature sensitivity exponent

  • T0 (float, optional) – Reference temperature

  • Tm (float, optional) – Melting temperature (at which the flow stress is zero)

Notes

The flow stress (\(\sigma\)) depends on the strain (\(\varepsilon\)), the strain rate \(\dot{\varepsilon}\) and the temperature (\(T\)) so that:

\[\sigma = \left(A + B\varepsilon^n\right) \left(1 + C\log\left(\frac{\varepsilon}{\dot{\varepsilon}_0}\right)\right) \left(1-\theta^m\right)\]

with

\[\begin{split}\theta = \begin{cases} \frac{T-T_0}{T_m-T_0} & \text{if } T<T_m\\ 1 & \text{otherwise} \end{cases}\end{split}\]
compute_strain(stress, T=None)[source]

Given the equivalent stress, compute the strain

Parameters:
  • stress (float or numpy.ndarray) – Equivalent stress tom compute the stress from

  • T (float or list or tuple or numpy.ndarray) – Temperature

Returns:

Equivalent strain

Return type:

numpy.ndarray

flow_stress(eps_p, eps_dot=None, T=None)[source]

Compute the flow stress from the Johnson-Cook model

Parameters:
  • eps_p (float or list or tuple or numpy.ndarray) – Equivalent plastic strain

  • eps_dot (float or list or tuple or numpy.ndarray, optional) – Equivalent plastic strain rate. If float, the strain-rate is supposed to be homogeneous for every value of eps_p.

  • T (float or list or tuple or np.ndarray) – Temperature. If float, the temperature is supposed to be homogeneous for every value of eps_p.

Returns:

Flow stress

Return type:

numpy.ndarray