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.