The model is a simple cube with dimensions 1x1x1. The mesh contains only one single element of type C3D8R.
An orthotropic material with the following enginnering constants is assigned to the cube:
m1 = {'name': 'orth-demo', 'units':'MPa-mm-Mg',
'E1':150000, 'E2':20000, 'E3':10000,
'v12':0.3, 'v13':0.4, 'v23':0.5,
'G12':5000, 'G13':4000, 'G23':3000 }
Computing the stiffness matrix of the material:
from compositelib import C3D
C=C3D(m1)
import numpy as np
print(np.array2string(C, precision=0, suppress_small=True, separator=' ', floatmode='maxprec_equal') )
Material orientation of the FEA model by a 30 degree rotation about the z-axis:
Consider the following state of strains in the global coordinate system:
\begin{equation} \begin{bmatrix} \varepsilon_x \\ \varepsilon_y \\ \varepsilon_z \\ \gamma_{yz} \\ \gamma_{xz} \\ \gamma_{xy} \end{bmatrix}= \begin{bmatrix} 0.01 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \end{bmatrix} \end{equation}strainXYZ = [0.01, 0, 0, 0, 0, 0]
Computing strains and stresses in the material coordinate system:
from compositelib import T3Dez
strain123 = np.dot(T3Dez(30),strainXYZ)
print(np.array2string(strain123, precision=4, suppress_small=True, separator=' ', floatmode='maxprec_equal') )
stress123 = np.dot(C, strain123)
print(np.array2string(stress123, precision=1, suppress_small=True, separator=' ', floatmode='maxprec_equal') )
Imposing boundary conditions (displacements) on the FEA model corresponding to the global strains, creating a job and solve:
By default, Abaqus/CAE displays element-based field output results of element with explicit orientation in the material coordinate system. Hence, we compare the stress output results from the FEA model with the previous stress123
variable:
print(np.array2string(stress123, precision=1, suppress_small=True, separator=' ', floatmode='maxprec_equal') )
Conclusion: OK!