Recovery of Elastic Properties

simcoon.simmit.check_symetries(input: Annotated[numpy.typing.ArrayLike, numpy.float64], tol: SupportsFloat) dict

Check material symmetries and recover elastic properties from a stiffness tensor.

Parameters:
  • input (pybind11::array_t<double>) – A 6x6 stiffness matrix in Voigt notation.

  • tol (float, optional) – Tolerance used when testing symmetry conditions. Defaults to 0.0.

Returns:

A python dictionary with keys: - “umat_type”: str, short code for symmetry (e.g. ‘ELISO’,’ELIST’,’ELCUB’,’ELORTO’) - “axis”: int, principal axis index (1,2 or 3) when relevant, 0 otherwise - “maj_sym”: int, 1 if major symmetry (L = L^T) holds within tolerance, 0 otherwise - “props”: numpy.ndarray, column vector of recovered material properties (size depends on symmetry)

Return type:

dict

Notes

The function uses rotation/reflection checks and value-equality checks to classify the stiffness tensor symmetry (triclinic, monoclinic, orthotropic, cubic, transversely isotropic, isotropic).

Examples

import numpy as np
import simcoon as sim

L = sim.L_iso(np.array([210000, 0.3]), "Enu")
info = sim.check_symetries(L, tol=1e-8)
print(info["umat_type"], info["props"])
simcoon.simmit.L_iso_props(input: Annotated[numpy.typing.ArrayLike, numpy.float64]) numpy.typing.NDArray[numpy.float64]

Recover isotropic elastic properties (E, nu) from a stiffness tensor.

Parameters:

input (pybind11::array_t<double>) – A 6x6 stiffness matrix in Voigt notation.

Returns:

A length-2 array [\(E\), \(\nu\)] where \(E\) is Young’s modulus and \(\nu\) is Poisson’s ratio.

Return type:

numpy.ndarray

Notes

Uses averaged shear and Lame-like combinations of the stiffness components to compute \(E\) and \(\nu\).

Examples

import simcoon as sim
props = sim.L_iso_props(L)
E, nu = props
simcoon.simmit.M_iso_props(input: Annotated[numpy.typing.ArrayLike, numpy.float64]) numpy.typing.NDArray[numpy.float64]

Recover isotropic elastic properties (E, nu) from a compliance tensor.

Parameters:

input (pybind11::array_t<double>) – A 6x6 compliance matrix in Voigt notation.

Returns:

A length-2 array [\(E\), \(\nu\)] where \(E\) is Young’s modulus and \(\nu\) is Poisson’s ratio.

Return type:

numpy.ndarray

Examples

import simcoon as sim
props = sim.M_iso_props(M)
simcoon.simmit.L_isotrans_props(input: Annotated[numpy.typing.ArrayLike, numpy.float64], axis: SupportsInt) numpy.typing.NDArray[numpy.float64]

Recover transversely isotropic elastic properties from a stiffness tensor.

Parameters:
  • input (pybind11::array_t<double>) – A 6x6 stiffness matrix in Voigt notation.

  • axis (int) – Axis of transverse isotropy (1, 2 or 3).

Returns:

A length-5 array [\(E_{L}\), \(E_{T}\), \(\nu_{TL}\), \(\nu_{TT}\), \(G_{LT}\)].

Return type:

numpy.ndarray

Notes

The returned properties follow the ordering used by the C++ implementation.

Examples

props = sim.L_isotrans_props(L, axis=3)
simcoon.simmit.M_isotrans_props(input: Annotated[numpy.typing.ArrayLike, numpy.float64], axis: SupportsInt) numpy.typing.NDArray[numpy.float64]

Recover transversely isotropic elastic properties from a compliance tensor.

Parameters:
  • input (pybind11::array_t<double>) – A 6x6 compliance matrix in Voigt notation.

  • axis (int) – Axis of transverse isotropy (1, 2 or 3).

Returns:

A length-5 array [\(E_{L}\), \(E_{T}\), \(\nu_{TL}\), \(\nu_{TT}\), \(G_{LT}\)].

Return type:

numpy.ndarray

simcoon.simmit.L_cubic_props(input: Annotated[numpy.typing.ArrayLike, numpy.float64]) numpy.typing.NDArray[numpy.float64]

Recover cubic elastic properties (E, nu, G) from a stiffness tensor.

Parameters:

input (pybind11::array_t<double>) – A 6x6 stiffness matrix in Voigt notation.

Returns:

A length-3 array [\(E\), \(\nu\), \(G\)].

Return type:

numpy.ndarray

simcoon.simmit.M_cubic_props(input: Annotated[numpy.typing.ArrayLike, numpy.float64]) numpy.typing.NDArray[numpy.float64]

Recover cubic elastic properties (E, nu, G) from a compliance tensor.

Parameters:

input (pybind11::array_t<double>) – A 6x6 compliance matrix in Voigt notation.

Returns:

A length-3 array [\(E\), \(\nu\), \(G\)].

Return type:

numpy.ndarray

simcoon.simmit.L_ortho_props(input: Annotated[numpy.typing.ArrayLike, numpy.float64]) numpy.typing.NDArray[numpy.float64]

Recover orthotropic elastic properties from a stiffness tensor.

Parameters:

input (pybind11::array_t<double>) – A 6x6 stiffness matrix in Voigt notation.

Returns:

A length-9 array [\(E_{1}\), \(E_{2}\), \(E_{3}\), \(\nu_{12}\), \(\nu_{13}\), \(\nu_{23}\), \(G_{12}\), \(G_{13}\), \(G_{23}\)].

Return type:

numpy.ndarray

simcoon.simmit.M_ortho_props(input: Annotated[numpy.typing.ArrayLike, numpy.float64]) numpy.typing.NDArray[numpy.float64]

Recover orthotropic elastic properties from a compliance tensor.

Parameters:

input (pybind11::array_t<double>) – A 6x6 compliance matrix in Voigt notation.

Returns:

A length-9 array [\(E_{1}\), \(E_{2}\), \(E_{3}\), \(\nu_{12}\), \(\nu_{13}\), \(\nu_{23}\), \(G_{12}\), \(G_{13}\), \(G_{23}\)].

Return type:

numpy.ndarray

simcoon.simmit.M_aniso_props(input: Annotated[numpy.typing.ArrayLike, numpy.float64]) numpy.typing.NDArray[numpy.float64]

Recover a full set of anisotropic elastic properties from a compliance tensor.

Parameters:

input (pybind11::array_t<double>) – A 6x6 compliance matrix in Voigt notation.

Returns:

A length-21 array [E1, E2, E3, nu12, nu13, nu23, G12, G13, G23, \(\eta_{14}\), \(\eta_{15}\), \(\eta_{16}\), \(\eta_{24}\), \(\eta_{25}\), \(\eta_{26}\), \(\eta_{34}\), \(\eta_{35}\), \(\eta_{36}\), \(\eta_{45}\), \(\eta_{46}\), \(\eta_{56}\)].

Return type:

numpy.ndarray

Notes

The \(\eta_{ij}\) parameters are coupling coefficients that appear for a general anisotropic compliance description and are returned in the order used by the C++ implementation.