TMM4175 Polymer Composites

Home About Python Links Next Previous Table of Contents

Questions and problems

Basic concepts: stress, strain and Hooke’s law

1) Explain the concept static equilibrium

2) Explain the concept principal stresses

3) Define: orthotropic materials

4) Define: transversely isotropic materials

5) Define: isotropic materials

6) Explain the meaning of a strain component $\gamma_{ij}$

7) Explain the meaning of a stress component $\tau_{ij}$

8) Explain why $\mathbf{T}_{\sigma z}^{-1}(\theta) = \mathbf{T}_{\sigma z}(-\theta)$

9) Discuss the relation between $\mathbf{T}_{\sigma z}^{T}$ and $\mathbf{T}_{\varepsilon z}^{-1}$

10) If the stiffness matrix in the global system is $\mathbf{C{'}} = \mathbf{T}_{\sigma z}^{-1}\mathbf{C} \mathbf{T}_{\epsilon z}$ , what does $\mathbf{T}_{\sigma z}\mathbf{C} \mathbf{T}_{\epsilon z}^{-1}$ represent?

11) The coefficients of thermal expansion are transformed using the same relations as those used for strains. Explain why.

12) Define Creep in viscoelastic context

13) Define Relaxation in viscoelastic context

14) Is the von Mises criterion useful for unidirectional fiber composites? Explain.

Computational problems and procedures

15) Interpret the following code and results:

In [1]:
import numpy as np

S1=np.array ( [ [  100.0,  50.0,  15.0 ],
              [     50.0,  75.0,   0.0 ],
              [     15.0,   0.0,  25.0 ]  ])

I=np.identity(3)

for L in range(-200,200,1):
    for i in range(10000):
        ev= -1.0 + 2.0*np.random.random(3)
        ev = ev/np.linalg.norm(ev)
        res=np.dot( (S1-I*L) , ev )
        if max(np.abs(res)) < 2:
            print(L, res, ev)
            break
17 [-0.73128007  1.50942081  1.26445147] [-0.3740672   0.34849622  0.85943244]
18 [-0.29877662  0.91425019  0.51929381] [-0.36907465  0.33978917  0.86505908]
19 [ 0.70197663 -0.98797949  0.81267104] [ 0.39162937 -0.36731157 -0.84362826]
20 [ 0.97023784 -1.28591938 -0.43682581] [-0.32997445  0.27659642  0.90255819]
21 [-0.67104033  0.73375646  1.90360646] [ 0.36052246 -0.32022901 -0.87605761]
39 [ 0.40788353  1.92824394 -1.44664719] [-0.5008811   0.74923052 -0.43332638]
40 [1.40914322 1.02874461 1.98139383] [ 0.53785253 -0.73896806  0.40575961]
41 [ 0.93472402  0.01773367 -0.71660154] [-0.50722891  0.74644645 -0.43073951]
42 [ 0.18978213  0.43302808 -1.89763462] [ 0.47336824 -0.70410254  0.52930343]
43 [ 1.83772943 -0.96777849  1.0544574 ] [-0.49027221  0.73580725 -0.46714114]
138 [-1.76265491 -1.34535866 -0.53108853] [-0.78964155 -0.60534474 -0.10011978]
139 [-1.40005208 -0.4667903   1.24275337] [-0.78637866 -0.60706473 -0.11437222]
140 [-0.39145034  1.23425908 -1.7262665 ] [0.79609235 0.59339013 0.11884915]
141 [ 0.37195178 -1.5933443  -0.67583143] [0.78076578 0.61563081 0.10678722]

16) Consider the stress state: ${\sigma _1} = 100,{\rm{ }}{\sigma _2} = 50,{\rm{ }}{\sigma _3} = {\tau _{12}} = {\tau _{13}} = {\tau _{23}} = 0$ a) Find the eigenvalues, eigenvectors and principal stresses by manual means, and b) verify your solution using Python (or other numerical tools) c) Compute the maximum shear stress

17) Consider the stress state: ${\sigma _1} = {\sigma _2} = {\sigma _3} = {\tau _{12}} = {\tau _{13}} = 0,{\tau _{23}} = 100$ a) Find the eigenvalues, eigenvectors and principal stresses by manual means, and b) verify your solution using Python (or other numerical tools)

18) Consider a linear displacement field given by: \begin{array}{l} u(x,y,z) = {a_1}x + {a_2}y + {a_3}z\\ v(x,y,z) = {b_1}x + {b_2}y + {b_3}z\\ w(x,y,z) = {c_1}x + {c_2}y + {c_3}z \end{array} The boundary conditions are \begin{array}{l} u(0,0,0) = 0\\ u(0,y,0) = 0\\ v(0,0,0) = 0\\ w(0,0,0) = 0\\ w(x,0,0) = 0\\ w(0,y,0) = 0 \end{array} Compute the strain components expressed by the variables $a_i, b_i, c_i$

19) Find the values for the nine engineering constants when The stiffness matrix of an orthotropic material has been computed as:

 106.26    9.16    8.77    0.00    0.00    0.00
   9.16   19.54    8.26    0.00    0.00    0.00
   8.77    8.26   15.72    0.00    0.00    0.00
   0.00    0.00    0.00    2.00    0.00    0.00
   0.00    0.00    0.00    0.00    3.00    0.00
   0.00    0.00    0.00    0.00    0.00    4.00

20) Derive the relation $G_{23}=\frac{E_2}{2(1+\nu_{23})}$ on the page Hookes law for transversely isotropic material using the following procedure: Assume a stress state $\sigma_z = -\sigma_y$. Find the strains $\varepsilon_y$ and $\varepsilon_z$ through Hooke's law. Then consider a coordinate system 123 rotatet 45 degrees about the x-axis. Use the transformation of stresses and strains (bottom of the page on transformation) to show that $\tau_{23}=-\sigma_{y}$ and $\gamma_{23}=-2\varepsilon_y$. Use the results so far to find $G_{23}$ as the ratio of $\tau_{23}/\gamma_{23}$. Remember: since the plane y-z is a plane of isotropy, the plane 2-3 must be so as well and therefore $E_2=E_3=E_y=E_z$, $G_{23}=G_{yz}$ and $\nu_{yz}=\nu_{23}$.

21) Derive equation (8) on the page Micromechanical models.

22) Derive equation (14) on the page Micromechanical models.

23) Derive a simple model for the coefficient of thermal expansion in the fiber direction of a UD composite where you assume that the longitudinal strain of the fiber and the longitudinal strain of the matrix are identical.

24) An epoxy specimen was subjected to creep testing where the constant tensile stress was 25 MPa. The instantaneous strain was 0.010. After one hour, the strain was 0.020, after five hours it was 0.025 and after 24 hours, the strain was 0.030. Experimental data along with a prony series having n = 1 is shown below:

In [2]:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
D0= 0.01/25.0  # Compliance at t=0
n = 1       # number of terms in the summation
Di=(0.02/25.0,)  # Compliance components in the summation
Ti=(60*60*3, )        # time constants (tau)
t=np.linspace(start= 0,stop=24*60*60,num=100)
Dt=D0  # initial value before summation
for i in range(0,n):
    Dt = Dt + Di[i]*(1-np.exp(-t/Ti[i]))   
fig,ax=plt.subplots(nrows=1,ncols=1,figsize=(12,6))    
ax.plot(t,Dt,label='Creep compliance, model')
ax.plot([0, 60*60, 60*60*5, 60*60*24],[0.01/25.0, 0.02/25.0, 0.025/25.0, 0.03/25.0],'o',color='red',label='Experimental')
ax.set_xlim(0, )
ax.set_ylim(0, )
ax.set_xlabel('time')
ax.set_ylabel('D(t)')
ax.set_title('Creep, linear time scale')
ax.legend(loc='lower right')
ax.grid(True)
plt.tight_layout()
plt.show()

The prony series above fits perfect at time = 0 and 24 hours while significant deviations are found at intermediate times.

Modify the code using n = 2 and find a set of constants that fits better. A template is give below:

In [ ]:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
D0= 0.01/25.0  # Compliance at t=0
n = 2       # number of terms in the summation
Di=(???, ???)  # Compliance components in the summation
Ti=(???, ???)        # time constants (tau)
t=np.linspace(start= 0,stop=24*60*60,num=100)
Dt=D0  # initial value before summation
for i in range(0,n):
    Dt = Dt + Di[i]*(1-np.exp(-t/Ti[i]))   
fig,ax=plt.subplots(nrows=1,ncols=1,figsize=(12,6))    
ax.plot(t,Dt,label='Creep compliance, model')
ax.plot([0, 60*60, 60*60*5, 60*60*24],[0.01/25.0, 0.02/25.0, 0.025/25.0, 0.03/25.0],'o',color='red',label='Experimental')
ax.set_xlim(0, )
ax.set_ylim(0, )
ax.set_xlabel('time')
ax.set_ylabel('D(t)')
ax.set_title('Creep, linear time scale')
ax.legend(loc='lower right')
ax.grid(True)
plt.tight_layout()
plt.show()

25) The tensile yield strength of a polymer was found to be 31 MPa while the compressive yield strength was measured to 34 MPa. Find the parameters a and b in the Drucker-Prager yield criterion, equation (5) on the page Plastic behavior

26) Interpret and explain the the following segments of code:

In [3]:
from compositelib import T3Dsx,T3Dsy,T3Dsz
import numpy as np
sxyz = [100,50,0,20,80,0]
for a1 in np.linspace(-90,90,91):
    for a2 in np.linspace(-90,90,91):
        for a3 in np.linspace(-90,90,91):
            s123= np.dot(T3Dsx(a1), np.dot(T3Dsy(a2), np.dot(T3Dsz(a3),sxyz) ) )
            if abs(s123[3]) < 2 and abs(s123[4]) < 2 and abs(s123[5]) < 2:
                print(a1,a2,a3,np.array2string(s123, precision=1, suppress_small=True, separator='  ', floatmode='maxprec'))
-84.0 -30.0 8.0 [145.3  -47.5   52.2   -0.6   -1.8    1.7]
-78.0 60.0 20.0 [-47.5  145.3   52.2   -0.8   -0.7    0.1]
-78.0 60.0 22.0 [-47.5  145.3   52.2    2.     1.1    0.8]
-76.0 60.0 22.0 [-47.5  145.3   52.2   -1.3    1.     0.8]
-60.0 6.0 -80.0 [ 52.2  -47.5  145.3    1.6   -0.2    0.2]
6.0 -30.0 8.0 [145.3   52.2  -47.5    0.6   -1.7   -1.8]
12.0 60.0 20.0 [-47.5   52.2  145.3    0.8   -0.1   -0.7]
12.0 60.0 22.0 [-47.5   52.2  145.3   -2.    -0.8    1.1]
14.0 60.0 22.0 [-47.5   52.2  145.3    1.3   -0.8    1. ]
30.0 6.0 -80.0 [ 52.2  145.3  -47.5   -1.6   -0.2   -0.2]
In [4]:
for a1 in np.linspace(-85,-80,51):
    for a2 in np.linspace(-30,-25,51):
        for a3 in np.linspace(5,10,51):
            s123= np.dot(T3Dsx(a1), np.dot(T3Dsy(a2), np.dot(T3Dsz(a3),sxyz) ) )
            if abs(s123[3]) < 0.1 and abs(s123[4]) < 0.1 and abs(s123[5]) < 0.1:
                print(a1,a2,a3,np.array2string(s123, precision=1, suppress_small=True, separator='  ', floatmode='maxprec'))
-83.1 -29.4 6.8 [145.3  -47.5   52.2   -0.1   -0.     0.1]
In [5]:
for a1 in np.linspace(-80,-75,51):
    for a2 in np.linspace(57,62,51):
        for a3 in np.linspace(17,22,51):
            s123= np.dot(T3Dsx(a1), np.dot(T3Dsy(a2), np.dot(T3Dsz(a3),sxyz) ) )
            if abs(s123[3]) < 0.1 and abs(s123[4]) < 0.1 and abs(s123[5]) < 0.1:
                print(a1,a2,a3,np.array2string(s123, precision=1, suppress_small=True, separator='  ', floatmode='maxprec'))
-77.9 59.9 20.7 [-47.5  145.3   52.2    0.    -0.     0. ]
-77.8 59.9 20.8 [-47.5  145.3   52.2   -0.     0.1    0.1]

Numerical answers

16a) eignevalues are 100,50 and 0 16c) Maximum shear stress is 50 17a) 100, 0 and -100, |0,0.707,0.707|, |0, 0.707, -0.707|, |1,0,0| 19) E1=100, v13=0.4, G13=3, etc

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.