elaston.elastic_constants module

elaston.elastic_constants.check_is_tensor(**kwargs: float | ndarray | None) bool[source]

Check if the elastic constants are given as a tensor or as Young’s modulus, Poisson’s ratio, and/or shear modulus

Parameters:

**kwargs – elastic constants or Young’s modulus, Poisson’s ratio, and/or shear modulus

elaston.elastic_constants.get_C_11_indices() tuple[list[int], list[int]][source]
elaston.elastic_constants.get_C_12_indices() tuple[list[int], list[int]][source]
elaston.elastic_constants.get_C_44_indices() tuple[list[int], list[int]][source]
elaston.elastic_constants.get_elastic_moduli(C: ndarray) dict[str, float][source]
elaston.elastic_constants.get_elastic_tensor_from_moduli(E: float | None = None, nu: float | None = None, mu: float | None = None) ndarray[source]

Get the elastic tensor from Young’s modulus, Poisson’s ratio, and/or shear modulus

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

  • nu (float) – Poisson’s ratio

  • mu (float) – shear modulus

Returns:

Elastic tensor in Voigt notation

Return type:

np.ndarray

elaston.elastic_constants.get_elastic_tensor_from_tensor(C_tensor: ndarray | None = None, C_11: float | None = None, C_12: float | None = None, C_13: float | None = None, C_22: float | None = None, C_23: float | None = None, C_33: float | None = None, C_44: float | None = None, C_55: float | None = None, C_66: float | None = None) ndarray[source]

Get the elastic tensor from the elastic constants

Parameters:
  • C_tensor (np.ndarray) – Elastic tensor in Voigt notation or full tensor

  • C_11 (float) – Elastic constant

  • C_12 (float) – Elastic constant

  • C_13 (float) – Elastic constant

  • C_22 (float) – Elastic constant

  • C_23 (float) – Elastic constant

  • C_33 (float) – Elastic constant

  • C_44 (float) – Elastic constant

  • C_55 (float) – Elastic constant

  • C_66 (float) – Elastic constant

Returns:

Elastic tensor in Voigt notation

Return type:

np.ndarray

elaston.elastic_constants.get_reuss_average(C: ndarray) dict[str, float][source]

Get the Reuss average of the elastic constants

Parameters:

C (np.ndarray) – Elastic constants

Returns:

Reuss average

Return type:

dict

elaston.elastic_constants.get_unique_elastic_constants(C: ndarray) dict[str, float][source]
elaston.elastic_constants.get_voigt_average(C: ndarray) dict[str, float][source]

Get the Voigt average of the elastic constants

Parameters:

C (np.ndarray) – Elastic constants

Returns:

Voigt average

Return type:

dict

elaston.elastic_constants.get_zener_ratio(C: ndarray) float[source]

Get the Zener anisotropy ratio

Parameters:

C (np.ndarray) – Elastic constants in Voigt notation

Returns:

Zener anisotropy ratio

Return type:

float

elaston.elastic_constants.initialize_elastic_tensor(C_tensor: ndarray | None = None, C_11: float | None = None, C_12: float | None = None, C_13: float | None = None, C_22: float | None = None, C_33: float | None = None, C_44: float | None = None, C_55: float | None = None, C_66: float | None = None, youngs_modulus: float | None = None, poissons_ratio: float | None = None, shear_modulus: float | None = None) ndarray[source]

Initialize the elastic tensor

Parameters:
  • C_tensor (np.ndarray) – Elastic tensor in Voigt notation or full tensor

  • C_11 (float) – Elastic constant

  • C_12 (float) – Elastic constant

  • C_13 (float) – Elastic constant

  • C_22 (float) – Elastic constant

  • C_33 (float) – Elastic constant

  • C_44 (float) – Elastic constant

  • C_55 (float) – Elastic constant

  • C_66 (float) – Elastic constant

  • youngs_modulus (float) – Young’s modulus

  • poissons_ratio (float) – Poisson’s ratio

  • shear_modulus (float) – Shear modulus

Returns:

Elastic tensor in Voigt notation

Return type:

np.ndarray

You can define either the full elastic tensor via C_tensor, some components of the elastic tensor or the elastic moduli. If you define the elastic moduli, the elastic tensor will be calculated from them. When two components of the elastic tensor are given, the resulting tensor will be isotropic. If at least three components are given, there must be at least C_11, C_12, and C_44.

elaston.elastic_constants.is_cubic(C: ndarray) bool[source]

Check if the material is cubic

Parameters:

C (np.ndarray) – Elastic constants in Voigt notation or full tensor

Returns:

True if the material is cubic

Return type:

bool

elaston.elastic_constants.is_isotropic(C: ndarray) bool[source]

Check if the material is isotropic

Parameters:

C (np.ndarray) – Elastic constants in Voigt notation or full tensor

Returns:

True if the material is isotropic

Return type:

bool