Skip to content

Isotropic Plasticity 1D

Bases: IsotropicElasticity1D

Isotropic elastoplastic material in 1D.

This class extends IsotropicElasticity1D with isotropic hardening plasticity using a return-mapping algorithm.

Parameters:

  • E (Tensor | float) –

    Young's modulus. Shape: () for a scalar or (N,) for a batch of materials.

  • sigma_f (Callable) –

    Yield stress function \(\sigma_f(q)\).

  • sigma_f_prime (Callable) –

    Derivative \(\sigma_f'(q)\).

  • tolerance (float, default: 1e-05 ) –

    Convergence tolerance. Default is 1e-5.

  • max_iter (int, default: 10 ) –

    Maximum Newton iterations. Default is 10.

  • rho (Tensor | float, default: 1.0 ) –

    Mass density. Default is 1.0.

Notes
  • One internal state variable (n_state = 1): equivalent plastic strain \(q\).

vectorize(n_elem)

Returns a vectorized copy of the material for n_elem elements.

Parameters:

  • n_elem (int) –

    Number of elements to vectorize the material for.

Returns:

  • IsotropicPlasticity1D ( IsotropicPlasticity1D ) –

    A new material instance with vectorized properties.

step(H_inc, F, stress, state, de0, cl, iter)

Performs a strain increment with the 1D return-mapping algorithm.

A trial stress is computed as \(\sigma_{\text{trial}} = \sigma_n + E \, \Delta\varepsilon\). The yield condition is \(|\sigma_{\text{trial}}| \le \sigma_f(q)\).

If yielding occurs, the plastic multiplier \(\Delta\gamma\) is found by Newton's method on $$ |\sigma_{\text{trial}}| - E \, \Delta\gamma - \sigma_f(q) = 0 $$ and the stress is updated as $$ \sigma_{n+1} = \left(1 - \frac{E \, \Delta\gamma} {|\sigma_{\text{trial}}|}\right) \sigma_{\text{trial}}, \quad q_{n+1} = q_n + \Delta\gamma. $$ The algorithmic tangent in the plastic regime is \(\frac{E \, \sigma_f'}{E + \sigma_f'}\).

Parameters:

  • H_inc (Tensor) –

    Incremental displacement gradient. Shape: (..., 1, 1).

  • F (Tensor) –

    Current deformation gradient. Shape: (..., 1, 1).

  • stress (Tensor) –

    Current stress tensor. Shape: (..., 1, 1).

  • state (Tensor) –

    Internal state variables (equivalent plastic strain \(q\)). Shape: (..., 1).

  • de0 (Tensor) –

    External strain increment (e.g., thermal). Shape: (..., 1, 1).

  • cl (Tensor) –

    Characteristic lengths. Shape: (..., 1).

  • iter (int) –

    Current iteration number.

Returns:

  • stress_new ( Tensor ) –

    Updated stress tensor. Shape: (..., 1, 1).

  • state_new ( Tensor ) –

    Updated internal state with updated plastic strain. Shape: (..., 1).

  • ddsdde ( Tensor ) –

    Algorithmic tangent stiffness tensor. Shape: (..., 1, 1, 1, 1).