The Constitutive Library
- simcoon.simmit.Ireal(copy: bool = True) numpy.typing.NDArray[numpy.float64]
Returns the fourth order identity tensor \(I_{real}\) written in Voigt notation.
- Parameters:
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The fourth order identity tensor \(I_{real}\) in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The tensor is defined as:
\[\begin{split}I_{real} = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0.5 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0.5 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0.5 \end{bmatrix}\end{split}\]Examples
import numpy as np import simcoon as sim # Example for real Ireal = sim.Ireal() print(Ireal)
- simcoon.simmit.Ivol(copy: bool = True) numpy.typing.NDArray[numpy.float64]
Returns the volumetric part of the identity tensor \(I_{vol}\) written in Voigt notation.
- Parameters:
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The volumetric part of the identity tensor \(I_{vol}\) in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The tensor is defined as:
\[\begin{split}I_{vol} = \begin{bmatrix} \frac{1}{3} & \frac{1}{3} & \frac{1}{3} & 0 & 0 & 0 \\ \frac{1}{3} & \frac{1}{3} & \frac{1}{3} & 0 & 0 & 0 \\ \frac{1}{3} & \frac{1}{3} & \frac{1}{3} & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}\end{split}\]Examples
import numpy as np import simcoon as sim # Example for Ivol Ivol = sim.Ivol() print(Ivol)
- simcoon.simmit.Idev(copy: bool = True) numpy.typing.NDArray[numpy.float64]
Returns the deviatoric part of the identity tensor \(I_{dev}\) written in Voigt notation.
- Parameters:
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The deviatoric part of the identity tensor \(I_{dev}\) in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The tensor is defined as:
\[\begin{split}I_{dev} = \begin{bmatrix} \frac{2}{3} & -\frac{1}{3} & -\frac{1}{3} & 0 & 0 & 0 \\ -\frac{1}{3} & \frac{2}{3} & -\frac{1}{3} & 0 & 0 & 0 \\ -\frac{1}{3} & -\frac{1}{3} & \frac{2}{3} & 0 & 0 & 0 \\ 0 & 0 & 0 & 0.5 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0.5 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0.5 \end{bmatrix}\end{split}\]Examples
import numpy as np import simcoon as sim # Example for Idev Idev = sim.Idev() print(Idev)
- simcoon.simmit.Ireal2(copy: bool = True) numpy.typing.NDArray[numpy.float64]
Returns the fourth order identity tensor \(\widehat{I}\) written in Voigt notation.
- Parameters:
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The fourth order identity tensor \(\widehat{I}\) in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The tensor is defined as:
\[\begin{split}\widehat{I} = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 2 & 0 & 0 \\ 0 & 0 & 0 & 0 & 2 & 0 \\ 0 & 0 & 0 & 0 & 0 & 2 \end{bmatrix}\end{split}\]Examples
import numpy as np import simcoon as sim # Example for Ireal2 Ireal2 = sim.Ireal2() print(Ireal2)
- simcoon.simmit.Idev2(copy: bool = True) numpy.typing.NDArray[numpy.float64]
Returns the deviatoric part of the identity tensor \(\widehat{I}_{dev}\) written in Voigt notation.
- Parameters:
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The deviatoric part of the identity tensor \(\widehat{I}_{dev}\) in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The tensor is defined as:
\[\begin{split}\widehat{I}_{dev} = \begin{bmatrix} \frac{2}{3} & -\frac{1}{3} & -\frac{1}{3} & 0 & 0 & 0 \\ -\frac{1}{3} & \frac{2}{3} & -\frac{1}{3} & 0 & 0 & 0 \\ -\frac{1}{3} & -\frac{1}{3} & \frac{2}{3} & 0 & 0 & 0 \\ 0 & 0 & 0 & 2 & 0 & 0 \\ 0 & 0 & 0 & 0 & 2 & 0 \\ 0 & 0 & 0 & 0 & 0 & 2 \end{bmatrix}\end{split}\]Examples
import numpy as np import simcoon as sim # Example for Idev2 Idev2 = sim.Idev2() print(Idev2)
- simcoon.simmit.Ith(copy: bool = True) numpy.typing.NDArray[numpy.float64]
Returns the expansion vector \(I_{th}\).
- Parameters:
copy (bool, optional) – If true, a copy of the vector is returned. Default is true.
- Returns:
The expansion vector \(I_{th}\).
- Return type:
pybind11::array_t<double>
Notes
The vector is defined as:
\[\begin{split}I_{th} = \begin{bmatrix} 1 \\ 1 \\ 1 \\ 0 \\ 0 \\ 0 \end{bmatrix}\end{split}\]Examples
import numpy as np import simcoon as sim # Example for Ith Ith = sim.Ith() print(Ith)
- simcoon.simmit.Ir2(copy: bool = True) numpy.typing.NDArray[numpy.float64]
Returns the operator from stress to strain in Voigt notation \(I_{r2}\).
- Parameters:
copy (bool, optional) – If true, a copy of the operator is returned. Default is true.
- Returns:
The operator \(I_{r2}\) in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The operator is defined as:
\[\begin{split}I_{r2} = \begin{bmatrix} 1 \\ 1 \\ 1 \\ 2 \\ 2 \\ 2 \end{bmatrix}\end{split}\]Examples
import numpy as np import simcoon as sim # Example for Ir2 Ir2 = sim.Ir2() print(Ir2)
- simcoon.simmit.Ir05(copy: bool = True) numpy.typing.NDArray[numpy.float64]
Returns the operator from strain to stress in Voigt notation \(I_{r05}\).
- Parameters:
copy (bool, optional) – If true, a copy of the operator is returned. Default is true.
- Returns:
The operator \(I_{r05}\) in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The operator is defined as:
\[\begin{split}I_{r05} = \begin{bmatrix} 1 \\ 1 \\ 1 \\ 0.5 \\ 0.5 \\ 0.5 \end{bmatrix}\end{split}\]Examples
import numpy as np import simcoon as sim # Example for Ir05 Ir05 = sim.Ir05() print(Ir05)
- simcoon.simmit.L_iso(props: Annotated[numpy.typing.ArrayLike, numpy.float64], conv: str, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Provides the elastic stiffness tensor for an isotropic material.
- Parameters:
props (pybind11::array_t<double>) – A 1D array containing the material properties (e.g., Lamé coefficients).
conv (str) – A string specifying the convention used for the material properties. Possible values include: ‘Enu’, ‘nuE’, ‘Kmu’, ‘muK’, ‘KG’, ‘GK’, ‘lambdamu’, ‘mulambda’, ‘lambdaG’, ‘Glambda’.
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The 6x6 stiffness matrix in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The stiffness tensor is computed based on the provided material properties and convention.
Examples
import numpy as np import simcoon as sim # Example for L_iso props = np.array([210000, 0.3]) L_iso = sim.L_iso(props, "Enu") print(L_iso)
- simcoon.simmit.M_iso(props: Annotated[numpy.typing.ArrayLike, numpy.float64], conv: str, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Provides the elastic compliance tensor for an isotropic material.
- Parameters:
props (pybind11::array_t<double>) – A 1D array containing the material properties (e.g., Lamé coefficients).
conv (str) – A string specifying the convention used for the material properties. Possible values include: ‘Enu’, ‘nuE’, ‘Kmu’, ‘muK’, ‘KG’, ‘GK’, ‘lambdamu’, ‘mulambda’, ‘lambdaG’, ‘Glambda’.
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The 6x6 compliance matrix in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The compliance tensor is computed based on the provided material properties and convention.
Examples
import numpy as np import simcoon as sim # Example for M_iso props = np.array([210000, 0.3]) M_iso = sim.M_iso(props, "Enu") print(M_iso)
- simcoon.simmit.L_cubic(props: Annotated[numpy.typing.ArrayLike, numpy.float64], conv: str, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Provides the elastic stiffness tensor for a cubic material.
- Parameters:
props (pybind11::array_t<double>) – A 1D array containing the stiffness coefficients (C11, C12, C44).
conv (str) – A string specifying the convention used for the material properties. Possible values include: ‘Cii’.
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The 6x6 stiffness matrix in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The stiffness tensor is computed based on the provided stiffness coefficients and convention.
Examples
import numpy as np import simcoon as sim # Example for L_cubic props_cubic = np.array([100000, 50000, 30000]) L_cubic = sim.L_cubic(props_cubic, "Cii") print(L_cubic)
- simcoon.simmit.M_cubic(props: Annotated[numpy.typing.ArrayLike, numpy.float64], conv: str, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Provides the elastic compliance tensor for a cubic material.
- Parameters:
props (pybind11::array_t<double>) – A 1D array containing the stiffness coefficients (C11, C12, C44).
conv (str) – A string specifying the convention used for the material properties. Possible values include: ‘Cii’.
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The 6x6 compliance matrix in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The compliance tensor is computed based on the provided stiffness coefficients and convention.
Examples
import numpy as np import simcoon as sim # Example for M_cubic props_cubic = np.array([100000, 50000, 30000]) M_cubic = sim.M_cubic(props_cubic, "Cii") print(M_cubic)
- simcoon.simmit.L_ortho(props: Annotated[numpy.typing.ArrayLike, numpy.float64], conv: str, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Provides the elastic stiffness tensor for an orthotropic material.
- Parameters:
props (pybind11::array_t<double>) – A 1D array containing the stiffness coefficients or material parameters.
conv (str) – A string specifying the convention used for the material properties. Possible values include: ‘Cii’, ‘EnuG’.
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The 6x6 stiffness matrix in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The stiffness tensor is computed based on the provided coefficients or material parameters and convention.
Examples
import numpy as np import simcoon as sim # Example for L_ortho props_ortho = np.array([100000, 50000, 30000, 0.3, 0.3, 0.3, 40000, 40000, 40000]) L_ortho = sim.L_ortho(props_ortho, "EnuG") print(L_ortho)
- simcoon.simmit.M_ortho(props: Annotated[numpy.typing.ArrayLike, numpy.float64], conv: str, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Provides the elastic compliance tensor for an orthotropic material.
- Parameters:
props (pybind11::array_t<double>) – A 1D array containing the stiffness coefficients or material parameters.
conv (str) – A string specifying the convention used for the material properties. Possible values include: ‘Cii’, ‘EnuG’.
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The 6x6 compliance matrix in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The compliance tensor is computed based on the provided coefficients or material parameters and convention.
Examples
import numpy as np import simcoon as sim # Example for M_ortho props_ortho = np.array([100000, 50000, 30000, 0.3, 0.3, 0.3, 40000, 40000, 40000]) M_ortho = sim.M_ortho(props_ortho, "EnuG") print(M_ortho)
- simcoon.simmit.L_isotrans(props: Annotated[numpy.typing.ArrayLike, numpy.float64], axis: SupportsInt, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Provides the elastic stiffness tensor for an isotropic transverse material.
- Parameters:
props (pybind11::array_t<double>) – A 1D array containing the material properties (e.g., EL, ET, nuTL, nuTT, GLT).
axis (int) – The axis of symmetry.
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The 6x6 stiffness matrix in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The stiffness tensor is computed based on the provided material properties and axis of symmetry.
Examples
import numpy as np import simcoon as sim # Example for L_isotrans props_isotrans = np.array([210000, 70000, 0.3, 0.3, 50000]) axis = 1 L_isotrans = sim.L_isotrans(props_isotrans, axis) print(L_isotrans)
- simcoon.simmit.M_isotrans(props: Annotated[numpy.typing.ArrayLike, numpy.float64], axis: SupportsInt, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Provides the elastic compliance tensor for an isotropic transverse material.
- Parameters:
props (pybind11::array_t<double>) – A 1D array containing the material properties (e.g., EL, ET, nuTL, nuTT, GLT).
axis (int) – The axis of symmetry.
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The 6x6 compliance matrix in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The compliance tensor is computed based on the provided material properties and axis of symmetry.
Examples
import numpy as np import simcoon as sim # Example for M_isotrans props_isotrans = np.array([210000, 70000, 0.3, 0.3, 50000]) axis = 1 M_isotrans = sim.M_isotrans(props_isotrans, axis) print(M_isotrans)
- simcoon.simmit.H_iso(props: Annotated[numpy.typing.ArrayLike, numpy.float64], copy: bool = True) numpy.typing.NDArray[numpy.float64]
Provides the viscous tensor for an isotropic material.
- Parameters:
props_py (pybind11::array_t<double>) – A 1D array containing the viscous coefficients (bulk and shear).
copy (bool, optional) – If true, a copy of the tensor is returned. Default is true.
- Returns:
The 6x6 viscous matrix in Voigt notation.
- Return type:
pybind11::array_t<double>
Notes
The viscous tensor is computed based on the provided bulk and shear coefficients.
Examples
import numpy as np import simcoon as sim # Example for H_iso props_viscous = np.array([0.1, 0.05]) H_iso = sim.H_iso(props_viscous) print(H_iso)