topoptlab.stiffness_tensors module

topoptlab.stiffness_tensors.compute_elastic_properties_3d(E: None | float = None, nu: None | float = None, G: None | float = None, K: None | float = None, lam: None | float = None, M: None | float = None) Tuple[float, float, float, float, float, float][source]

Compute all 3D isotropic elastic properties from any 2 given elast. properties.

Parameters:
  • E (None or float) – Young’s modulus.

  • nu (None or float) – Poisson’s ratio.

  • G (None or float) – shear modulus.

  • K (None or float) – bulk modulus.

  • lam (None or float) – Lamé’s first parameter.

  • M (None or float) – P-wave modulus.

Returns:

  • E (float) – Young’s modulus.

  • nu (float) – Poisson’s ratio.

  • G (float) – shear modulus.

  • K (float) – bulk modulus.

  • lam (float) – Lamé’s first parameter.

  • M (float) – P-wave modulus.

topoptlab.stiffness_tensors.isotropic_2d(E: float = 1.0, nu: float = 0.3, plane_stress: bool = True) ndarray[source]

2D stiffness tensor for isotropic material in engineering Voigt convention (strain shear component corresponds to engineering shear strain, so the shear entry equals G).

Parameters:
  • E (float) – Young’s modulus.

  • nu (float) – Poisson’s ratio.

  • plane_stress (bool) – if True, return stiffness tensor for plane stress, otherwise return stiffness tensor for plane strain

Returns:

c – stiffness tensor.

Return type:

np.ndarray, shape (3,3)

topoptlab.stiffness_tensors.isotropic_3d(E: float = 1.0, nu: float = 0.3) ndarray[source]

3D stiffness tensor for isotropic material in engineering Voigt convention (strain shear component corresponds to engineering shear strain, so the shear entry equals G).

Parameters:
  • E (float) – Young’s modulus.

  • nu (float) – Poisson’s ratio.

Returns:

c – stiffness tensor.

Return type:

np.ndarray, shape (6,6)

topoptlab.stiffness_tensors.octet_trusslattice(E: float, rho: float) ndarray[source]

Octet truss structure from

“Deshpande, Vikram S., Norman A. Fleck, and Michael F. Ashby. “Effective properties of the octet-truss lattice material.” Journal of the Mechanics and Physics of Solids 49.8 (2001): 1747-1769.”.

Parameters:
  • E (float) – Young’s modulus.

  • rho (float) – relative density.

Returns:

c – stiffness tensor.

Return type:

np.ndarray, shape (6,6)

topoptlab.stiffness_tensors.orthotropic_2d(Ex: float, Ey: float, nu_xy: float, G_xy: float, Ez: None | float = None, nu_xz: None | float = None, nu_yz: None | float = None, plane_stress: bool = True) ndarray[source]

2D stiffness tensor for orthotropic material. The indices of the Poisson ratios nu_ij are defined as the direction with the applied strain (i) and the direction of contraction/expansion j. (strain shear component corresponds to engineering shear strain, so the shear entry equals G).

Parameters:
  • Ex (float) – Young’s modulus in x direction.

  • Ey (float) – Young’s modulus in y direction.

  • G_xy (float) – shear modulus in xy plane.

  • nu_xy (float) – Poisson’s ratio for tension in x and contraction/expansion y direction.

  • Ez (float or None) – Young’s modulus in z direction. Only needed for plain strain.

  • nu_xz (float or None) – Poisson’s ratio for tension in x and contraction/expansion z direction. Only needed for plain strain.

  • nu_yz (float or None) – Poisson’s ratio for tension in y and contraction/expansion z direction. Only needed for plane strain.

Returns:

c – stiffness tensor.

Return type:

np.ndarray, shape (3,3)

topoptlab.stiffness_tensors.orthotropic_3d(Ex: float, Ey: float, Ez: float, nu_xy: float, nu_xz: float, nu_yz: float, G_xy: float, G_xz: float, G_yz: float) ndarray[source]

3D stiffness tensor for orthotropic material. The indices of the Poisson ratios nu_ij are defined as the direction with the applied strain (i) and the direction of contraction/expansion j. (strain shear component corresponds to engineering shear strain, so the shear entry equals G).

Parameters:
  • Ex (float) – Young’s modulus in x direction.

  • Ey (float) – Young’s modulus in y direction.

  • Ez (float) – Young’s modulus in z direction.

  • nu_xy (float) – Poisson’s ratio for tension in x and contraction/expansion y direction.

  • nu_xz (float) – Poisson’s ratio for tension in x and contraction/expansion z direction.

  • nu_yz (float) – Poisson’s ratio for tension in y and contraction/expansion z direction.

  • G_xy (float) – shear modulus in xy plane.

  • G_xz (float) – shear modulus in xz plane.

  • G_yz (float) – shear modulus in yz plane.

Returns:

c – stiffness tensor.

Return type:

np.ndarray, shape (6,6)

topoptlab.stiffness_tensors.rank2_2d(mu1: float, mu2: float, nu: float, E: float) ndarray[source]

Stiffness tensor for rank2 laminate in 2D taken from

“Wu, Jun, Ole Sigmund, and Jeroen P. Groen. “Topology optimization of multi-scale structures: a review.” Structural and Multidisciplinary Optimization 63 (2021): 1455-1480.”.

Parameters:
  • mu1 (float) – layer width first (bigger) layer.

  • mu2 (float) – layer width second (smaller) layer.

  • nu (float) – Poisson’s ratio.

  • E (float) – Young’s modulus.

Returns:

c – stiffness tensor.

Return type:

np.ndarray, shape (3,3)