TMM4175 Polymer Composites

Home About Python Links Table of Contents

CASE STUDY: Orientation and transformation of solid elements

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:

In [1]:
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:

In [2]:
from compositelib import C3D

C=C3D(m1)

import numpy as np
print(np.array2string(C, precision=0, suppress_small=True, separator='  ', floatmode='maxprec_equal') )
[[155448.    9475.    6514.       0.       0.       0.]
 [  9475.   23435.    6111.       0.       0.       0.]
 [  6514.    6111.   11702.       0.       0.       0.]
 [     0.       0.       0.    3000.       0.       0.]
 [     0.       0.       0.       0.    4000.       0.]
 [     0.       0.       0.       0.       0.    5000.]]

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}
In [3]:
strainXYZ = [0.01, 0, 0, 0, 0, 0]

Computing strains and stresses in the material coordinate system:

In [4]:
from compositelib import T3Dez

strain123 = np.dot(T3Dez(30),strainXYZ)
print(np.array2string(strain123, precision=4, suppress_small=True, separator='   ', floatmode='maxprec_equal') )
[ 0.0075    0.0025    0.0000    0.0000    0.0000   -0.0087]
In [5]:
stress123 = np.dot(C, strain123)
print(np.array2string(stress123, precision=1, suppress_small=True, separator='   ', floatmode='maxprec_equal') )
[1189.5    129.6     64.1      0.0      0.0    -43.3]

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:

In [6]:
print(np.array2string(stress123, precision=1, suppress_small=True, separator='   ', floatmode='maxprec_equal') )
[1189.5    129.6     64.1      0.0      0.0    -43.3]

Conclusion: OK!

Disclaimer:This site is about polymer composites, designed for educational purposes. Consumption and use of any sort & kind is solely at your own risk.
Fair use: I spent some time making all the pages, and even the figures and illustrations are my own creations. Obviously, you may steal whatever you find useful here, but please show decency and give some acknowledgment if or when copying. Thanks! Contact me: nils.p.vedvik@ntnu.no www.ntnu.edu/employees/nils.p.vedvik

Copyright 2021, All right reserved, I guess.