Symbolic Strain Notebook

[1]:
import sympy as sp

from mechpy.core.symbolic.strain import (
    SymbolicStrainTensor,
)

Symbolic Strain

Init Method

[2]:
e1, e2, e3, e4, e5, e6 = sp.symbols("epsilon_1 epsilon_2 epsilon_3 epsilon_4 epsilon_5 epsilon_6")
data = sp.NDimArray([e1, e2, e3, e4, e5, e6])
strain_tensor = SymbolicStrainTensor(data)
display(strain_tensor.data)

$\displaystyle \left[\begin{matrix}\epsilon_{1} & \epsilon_{2} & \epsilon_{3} & \epsilon_{4} & \epsilon_{5} & \epsilon_{6}\end{matrix}\right]$

Create Method

Default Notation

[3]:
strain_tensor = SymbolicStrainTensor.create()
display(strain_tensor.data)
display(strain_tensor.notation)
display(strain_tensor.to_general().data)
$\displaystyle \left[\begin{matrix}\epsilon_{1} & \epsilon_{2} & \epsilon_{3} & \epsilon_{4} & \epsilon_{5} & \epsilon_{6}\end{matrix}\right]$
'standard'
$\displaystyle \left[\begin{matrix}\epsilon_{11} & \epsilon_{22} & \epsilon_{33}\\\epsilon_{22} & \epsilon_{23} & \epsilon_{13}\\\epsilon_{33} & \epsilon_{13} & \epsilon_{12}\end{matrix}\right]$

Voigt notation

[4]:
strain_tensor = SymbolicStrainTensor.create(notation="voigt")
display(strain_tensor.data)
display(strain_tensor.notation)
display(strain_tensor.to_general().data)
$\displaystyle \left[\begin{matrix}\epsilon_{11} & \epsilon_{22} & \epsilon_{33} & 2 \epsilon_{23} & 2 \epsilon_{13} & 2 \epsilon_{12}\end{matrix}\right]$
'voigt'
$\displaystyle \left[\begin{matrix}\epsilon_{11} & \epsilon_{22} & \epsilon_{33}\\\epsilon_{22} & \epsilon_{23} & \epsilon_{13}\\\epsilon_{33} & \epsilon_{13} & \epsilon_{12}\end{matrix}\right]$

Custom name

[5]:
strain_tensor = SymbolicStrainTensor.create(name="\epsilon^1", notation="voigt")
display(strain_tensor.data)
display(strain_tensor.notation)
display(strain_tensor.to_general().data)
$\displaystyle \left[\begin{matrix}\epsilon^{1}_{11} & \epsilon^{1}_{22} & \epsilon^{1}_{33} & 2 \epsilon^{1}_{23} & 2 \epsilon^{1}_{13} & 2 \epsilon^{1}_{12}\end{matrix}\right]$
'voigt'
$\displaystyle \left[\begin{matrix}\epsilon^{1}_{11} & \epsilon^{1}_{22} & \epsilon^{1}_{33}\\\epsilon^{1}_{22} & \epsilon^{1}_{23} & \epsilon^{1}_{13}\\\epsilon^{1}_{33} & \epsilon^{1}_{13} & \epsilon^{1}_{12}\end{matrix}\right]$
[6]:
display(strain_tensor.normal_components())
display(strain_tensor.shear_components())
display(strain_tensor.volumetric_strain())
$\displaystyle \left[\begin{matrix}\epsilon^{1}_{11} & \epsilon^{1}_{22} & \epsilon^{1}_{33}\end{matrix}\right]$
$\displaystyle \left[\begin{matrix}2 \epsilon^{1}_{23} & 2 \epsilon^{1}_{13} & 2 \epsilon^{1}_{12}\end{matrix}\right]$
$\displaystyle \epsilon^{1}_{11} + \epsilon^{1}_{22} + \epsilon^{1}_{33}$
[ ]: