The Kinematics Library
- simcoon.simmit.ER_to_F(E: Annotated[numpy.typing.ArrayLike, numpy.float64], R: Annotated[numpy.typing.ArrayLike, numpy.float64], copy: bool = True) numpy.typing.NDArray[numpy.float64]
Provides the transformation gradient from the Green-Lagrange strain and the rotation.
- Parameters:
E (pybind11::array_t<double>) – Green-Lagrange strain tensor (3x3 matrix).
R (pybind11::array_t<double>) – Rotation tensor (3x3 matrix).
- Returns:
Transformation gradient (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim E = np.random.rand(3, 3) R = np.eye(3) F = sim.ER_to_F(E, R) print(F)
- simcoon.simmit.eR_to_F(e: Annotated[numpy.typing.ArrayLike, numpy.float64], R: Annotated[numpy.typing.ArrayLike, numpy.float64], copy: bool = True) numpy.typing.NDArray[numpy.float64]
Provides the transformation gradient from the logarithmic strain and the rotation.
- Parameters:
e (pybind11::array_t<double>) – Logarithmic strain tensor (3x3 matrix).
R (pybind11::array_t<double>) – Rotation tensor (3x3 matrix).
- Returns:
Transformation gradient (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim e = np.random.rand(3, 3) R = np.eye(3) F = sim.eR_to_F(e, R) print(F)
- simcoon.simmit.G_UdX(F: Annotated[numpy.typing.ArrayLike, numpy.float64], copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the gradient of displacement (Lagrangian) from the transformation gradient.
- Parameters:
F (pybind11::array_t<double>) – Transformation gradient (3x3 matrix).
- Returns:
Gradient of displacement (Lagrangian) (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim F = np.random.rand(3, 3) GradU = sim.G_UdX(F) print(GradU)
- simcoon.simmit.G_Udx(F: Annotated[numpy.typing.ArrayLike, numpy.float64], copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the gradient of displacement (Eulerian) from the transformation gradient.
- Parameters:
F (pybind11::array_t<double>) – Transformation gradient (3x3 matrix).
- Returns:
Gradient of displacement (Eulerian) (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim F = np.random.rand(3, 3) gradU = sim.G_Udx(F) print(gradU)
- simcoon.simmit.R_Cauchy_Green(F: Annotated[numpy.typing.ArrayLike, numpy.float64], copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the Right Cauchy-Green tensor from the transformation gradient.
- Parameters:
F (pybind11::array_t<double>) – Transformation gradient (3x3 matrix).
- Returns:
Right Cauchy-Green tensor (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim F = np.random.rand(3, 3) C = sim.R_Cauchy_Green(F) print(C)
- simcoon.simmit.L_Cauchy_Green(F: Annotated[numpy.typing.ArrayLike, numpy.float64], copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the Left Cauchy-Green tensor from the transformation gradient.
- Parameters:
F (pybind11::array_t<double>) – Transformation gradient (3x3 matrix).
- Returns:
Left Cauchy-Green tensor (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim F = np.random.rand(3, 3) B = sim.L_Cauchy_Green(F) print(B)
- simcoon.simmit.RU_decomposition(F: Annotated[numpy.typing.ArrayLike, numpy.float64], copy: bool = True) tuple
Computes the RU decomposition of the transformation gradient.
- Parameters:
F (pybind11::array_t<double>) – Transformation gradient (3x3 matrix).
- Returns:
Rotation matrix (3x3) and right stretch tensor (3x3).
- Return type:
tuple
Examples
import numpy as np import simcoon as sim F = np.random.rand(3, 3) R, U = sim.RU_decomposition(F) print(R, U)
- simcoon.simmit.VR_decomposition(F: Annotated[numpy.typing.ArrayLike, numpy.float64], copy: bool = True) tuple
Computes the VR decomposition of the transformation gradient.
- Parameters:
F (pybind11::array_t<double>) – Transformation gradient (3x3 matrix).
- Returns:
Left stretch tensor (3x3) and rotation matrix (3x3).
- Return type:
tuple
Examples
import numpy as np import simcoon as sim F = np.random.rand(3, 3) V, R = sim.VR_decomposition(F) print(V, R)
- simcoon.simmit.Inv_X(input: Annotated[numpy.typing.ArrayLike, numpy.float64], copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the invariants of a symmetric tensor.
- Parameters:
X (pybind11::array_t<double>) – Symmetric tensor (3x3 matrix).
- Returns:
Vector containing the three invariants of the tensor.
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim X = np.random.rand(3, 3) invariants = sim.Inv_X(X) print(invariants)
- simcoon.simmit.Cauchy(F: Annotated[numpy.typing.ArrayLike, numpy.float64], copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the Cauchy tensor from the transformation gradient.
- Parameters:
F (pybind11::array_t<double>) – Transformation gradient (3x3 matrix).
- Returns:
Cauchy tensor (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim F = np.random.rand(3, 3) b = sim.Cauchy(F) print(b)
- simcoon.simmit.Green_Lagrange(F: Annotated[numpy.typing.ArrayLike, numpy.float64], copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the Green-Lagrange tensor from the transformation gradient.
- Parameters:
F (pybind11::array_t<double>) – Transformation gradient (3x3 matrix).
- Returns:
Green-Lagrange tensor (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim F = np.random.rand(3, 3) E = sim.Green_Lagrange(F) print(E)
- simcoon.simmit.Euler_Almansi(F: Annotated[numpy.typing.ArrayLike, numpy.float64], copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the Euler-Almansi tensor from the transformation gradient.
- Parameters:
F (pybind11::array_t<double>) – Transformation gradient (3x3 matrix).
- Returns:
Euler-Almansi tensor (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim F = np.random.rand(3, 3) A = sim.Euler_Almansi(F) print(A)
- simcoon.simmit.Log_strain(F: Annotated[numpy.typing.ArrayLike, numpy.float64], voigt_form: bool = False, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the logarithmic strain tensor from the transformation gradient.
- Parameters:
F (pybind11::array_t<double>) – Transformation gradient (3x3 matrix).
- Returns:
Logarithmic strain tensor (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim F = np.random.rand(3, 3) e = sim.Log_strain(F) print(e)
- simcoon.simmit.finite_L(F0: Annotated[numpy.typing.ArrayLike, numpy.float64], F1: Annotated[numpy.typing.ArrayLike, numpy.float64], DTime: SupportsFloat, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the Eulerian velocity tensor from the transformation gradient at two different times.
- Parameters:
F0 (pybind11::array_t<double>) – Transformation gradient at time t0 (3x3 matrix).
F1 (pybind11::array_t<double>) – Transformation gradient at time t1 (3x3 matrix).
DTime (double) – Time difference (t1 - t0).
- Returns:
Eulerian velocity tensor (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim F0 = np.random.rand(3, 3) F1 = np.random.rand(3, 3) DTime = 0.1 L = sim.finite_L(F0, F1, DTime) print(L)
- simcoon.simmit.finite_D(F0: Annotated[numpy.typing.ArrayLike, numpy.float64], F1: Annotated[numpy.typing.ArrayLike, numpy.float64], DTime: SupportsFloat, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the Eulerian symmetric rate tensor from the transformation gradient at two different times.
- Parameters:
F0 (pybind11::array_t<double>) – Transformation gradient at time t0 (3x3 matrix).
F1 (pybind11::array_t<double>) – Transformation gradient at time t1 (3x3 matrix).
DTime (double) – Time difference (t1 - t0).
- Returns:
Eulerian symmetric rate tensor (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim F0 = np.random.rand(3, 3) F1 = np.random.rand(3, 3) DTime = 0.1 D = sim.finite_D(F0, F1, DTime) print(D)
- simcoon.simmit.finite_W(F0: Annotated[numpy.typing.ArrayLike, numpy.float64], F1: Annotated[numpy.typing.ArrayLike, numpy.float64], DTime: SupportsFloat, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the Eulerian antisymmetric spin tensor from the transformation gradient at two different times.
- Parameters:
F0 (pybind11::array_t<double>) – Transformation gradient at time t0 (3x3 matrix).
F1 (pybind11::array_t<double>) – Transformation gradient at time t1 (3x3 matrix).
DTime (double) – Time difference (t1 - t0).
- Returns:
Eulerian antisymmetric spin tensor (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim F0 = np.random.rand(3, 3) F1 = np.random.rand(3, 3) DTime = 0.1 W = sim.finite_W(F0, F1, DTime) print(W)
- simcoon.simmit.finite_Omega(F0: Annotated[numpy.typing.ArrayLike, numpy.float64], F1: Annotated[numpy.typing.ArrayLike, numpy.float64], DTime: SupportsFloat, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the rigid-body rotation spin tensor from the transformation gradient at two different times.
- Parameters:
F0 (pybind11::array_t<double>) – Transformation gradient at time t0 (3x3 matrix).
F1 (pybind11::array_t<double>) – Transformation gradient at time t1 (3x3 matrix).
DTime (double) – Time difference (t1 - t0).
- Returns:
Rigid-body rotation spin tensor (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim F0 = np.random.rand(3, 3) F1 = np.random.rand(3, 3) DTime = 0.1 Omega = sim.finite_Omega(F0, F1, DTime) print(Omega)
- simcoon.simmit.finite_DQ(Omega0: Annotated[numpy.typing.ArrayLike, numpy.float64], Omega1: Annotated[numpy.typing.ArrayLike, numpy.float64], DTime: SupportsFloat, copy: bool = True) numpy.typing.NDArray[numpy.float64]
Computes the Hughes-Winget approximation of the increment of rotation or transformation.
- Parameters:
Omega0 (pybind11::array_t<double>) – Spin/velocity at time t0 (3x3 matrix).
Omega1 (pybind11::array_t<double>) – Spin/velocity at time t1 (3x3 matrix).
DTime (double) – Time difference (t1 - t0).
- Returns:
Increment of rotation or transformation (3x3 matrix).
- Return type:
pybind11::array_t<double>
Examples
import numpy as np import simcoon as sim Omega0 = np.random.rand(3, 3) Omega1 = np.random.rand(3, 3) DTime = 0.1 DQ = sim.finite_DQ(Omega0, Omega1, DTime) print(DQ)