autopdex.models.linear_elasticity_fos

autopdex.models.linear_elasticity_fos(youngs_mod_fun, poisson_ratio_fun, mode, spacing, volume_load_fun=None)[source]

Constructs the first order system (FOS) of linear elasticity in Voigt notation, displacement based.

This function supports 2D plain strain and 3D elasticity problems. The formulation is based on the first order system described in https://doi.org/10.1137/S0036142902418357 with additional asymmetry penalization.

Parameters:
  • youngs_mod_fun (function) – Function to compute Young’s modulus given spatial coordinates (and optional settings).

  • poisson_ratio_fun (function) – Function to compute Poisson’s ratio given spatial coordinates (and optional settings).

  • mode (str) – Specifies the mode of the elasticity problem. It can be ‘plain strain’ or ‘3d’.

  • spacing (float) – The spatial spacing parameter used to scale the augmented conditions.

  • volume_load_fun (function, optional) – Function to compute volume load given spatial coordinates. Default is None.

Returns:

A function that evaluates the first order system of PDEs for linear elasticity.

Return type:

function

The returned function computes the following:
  • The kinematic strain based on the displacement gradient.

  • The constitutive relation using the specified Young’s modulus and Poisson’s ratio.

  • The internal force balance equation, optionally including volume loads.

  • Weak enforcement of symmetry of the Cauchy stress tensor.

Notes

  • In 2D, the number of fields is 2 (displacement) + 4 (stress) = 6.

  • In 3D, the number of fields is 3 (displacement) + 9 (stress) = 12.

  • This function only supports ‘plain strain’ and ‘3d’ modes.

  • This models works for DOFs as a jnp.ndarray.