In [1]:
%matplotlib inline
import numpy as np
from numpy.linalg import inv
import pandas as pd
import matplotlib.pyplot as plt
from simmit import smartplus as sim
from simmit import identify as iden
import os
import itertools
dir = os.path.dirname(os.path.realpath('__file__'))
Consider a 2-phase composite, with an Al matrix containing Al2O3 spherical inhomogeneities, with the following elastic constants for each phase:
$E_{Al} = 70000 \quad \nu_{Al} = 0.33$
$E_{Al2O3} = 370000 \quad \nu_{Al2O3} = 0.22$
The volume fraction of the Alumina phase is 0.1
In [2]:
E_Al = 70000
nu_Al = 0.33
E_Al2O3 = 370000
nu_Al2O3 = 0.22
## Volume fraction of particles
c = 0.1
L_Al = sim.L_iso(E_Al,nu_Al,'Enu')
M_Al = sim.M_iso(E_Al,nu_Al,'Enu')
L_Al2O3 = sim.L_iso(E_Al2O3,nu_Al2O3,'Enu')
S = sim.Eshelby_sphere(nu_Al)
#S_num = sim.Eshelby(L_Al,1,1,1,50,50)
I = np.eye(6)
In [16]:
T_Al2O3 = inv(I+np.dot(S,np.dot(M_Al,L_Al2O3-L_Al)))
sumT = c*T_Al2O3+(1-c)*I;
invsumT = inv(sumT);
A_Al = np.dot(I,invsumT)
A_Al2O3= np.dot(T_Al2O3,invsumT)
print np.array_str(A_Al2O3, precision=4)
In [41]:
L_eff = (1-c)*np.dot(L_Al,A_Al) + c*np.dot(L_Al2O3,A_Al2O3)
print np.array_str(L_eff, precision=2)
In [30]:
d = sim.check_symetries(L_eff)
print d
print 'Young modulus =',d['props'][0]
print 'Poisson ratio =',d['props'][1]
In [47]:
path_data = dir + '/data'
nstatev = 0
psi_rve = 0.
theta_rve = 0.
phi_rve = 0.
umat_name = 'MIMTN'
#Props
nphases = 2 #The number of phases
num_file = 0 #The num of the file that contains the subphases
int1 = 50
int2 = 50
n_matrix = 0
props = np.array([nphases, num_file, int1, int2, n_matrix])
L_eff = sim.L_eff(umat_name, props, nstatev, psi_rve, theta_rve, phi_rve, path_data)
print np.array_str(L_eff, precision=3)
d = sim.L_iso_props(L_eff)
print d[0]
print d[1]
In [ ]: