61 REAL*8 :: em, gm, prm, ep,prp, gp
69 INTEGER,
parameter :: numatv = 2
71 REAL*8,
DIMENSION(1:6,1:6,1:numatv) :: l_tensor, m_tensor
74 REAL*8,
DIMENSION(1:6,1:6) :: l_bar, m_bar, lo
76 REAL*8,
parameter :: alpha1=1.0, alpha2= 0.0
84 gm = em/(2.d0*(1.d0+prm))
85 gp = ep/(2.d0*(1.d0+prp))
87 m_tensor(1,1,1) = 1.d0 / em
88 m_tensor(1,2,1) = - prm / em
89 m_tensor(1,3,1) = - prm / em
90 m_tensor(2,1,1) = m_tensor(1,2,1)
91 m_tensor(2,2,1) = 1.d0 / em
92 m_tensor(2,3,1) = - prm / em
93 m_tensor(3,1,1) = m_tensor(1,3,1)
94 m_tensor(3,2,1) = m_tensor(2,3,1)
95 m_tensor(3,3,1) = 1.d0 /em
96 m_tensor(4,4,1) = 1.d0/gm
97 m_tensor(5,5,1) = 1.d0/gm
98 m_tensor(6,6,1) = 1.d0/gm
100 m_tensor(1,1,2) = 1.d0 / ep
101 m_tensor(1,2,2) = - prp / ep
102 m_tensor(1,3,2) = - prp / ep
103 m_tensor(2,1,2) = m_tensor(1,2,2)
104 m_tensor(2,2,2) = 1.d0 / ep
105 m_tensor(2,3,2) = - prp / ep
106 m_tensor(3,1,2) = m_tensor(1,3,2)
107 m_tensor(3,2,2) = m_tensor(2,3,2)
108 m_tensor(3,3,2) = 1.d0 /ep
109 m_tensor(4,4,2) = 1.d0/gp
110 m_tensor(5,5,2) = 1.d0/gp
111 m_tensor(6,6,2) = 1.d0/gp
113 CALL
invert2(m_tensor(:,:,1), l_tensor(:,:,1), 6)
114 CALL
invert2(m_tensor(:,:,2), l_tensor(:,:,2), 6)
117 CALL
compositestiffnes(l_tensor(1:6,1:6,1), l_tensor(1:6,1:6,2), m_tensor(1:6,1:6,1), m_tensor(1:6,1:6,2), cm, c2, &
118 alpha1, alpha2, l_bar, m_bar, lo)
121 e_homog = 1.d0/m_bar(1,1)
122 pr_homog = -m_bar(1,2)*1./m_bar(1,1)
125 print*,
'Homogenized Stiffness =', e_homog
126 print*,
'Homogenized Poisson'//
"'"//
's ratio',pr_homog
129 cd_fastest =
max( cd_fastest, &
130 sqrt(e_homog*(1.d0-pr_homog)/density/(1.d0+pr_homog)/(1.d0-2.d0*pr_homog )) )
135 SUBROUTINE compositestiffnes(Lm, L2, Mm, M2, cm, c2, alpha1, alpha2, L_bar, M_bar, Lo)
140 REAL*8 :: alpha1, alpha2, cm, c2
142 REAL*8,
DIMENSION(1:6,1:6) :: lm, l2, mm, m2
143 REAL*8,
DIMENSION(1:6,1:6) :: l_bar, m_bar
145 REAL*8,
DIMENSION(1:6,1:6) :: dident = reshape( &
146 (/1.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, &
147 0.d0, 1.d0, 0.d0, 0.d0, 0.d0, 0.d0, &
148 0.d0, 0.d0, 1.d0, 0.d0, 0.d0, 0.d0, &
149 0.d0, 0.d0, 0.d0, 1.d0, 0.d0, 0.d0, &
150 0.d0, 0.d0, 0.d0, 0.d0, 1.d0, 0.d0, &
151 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 1.d0 /),(/6,6/) )
153 REAL*8,
DIMENSION(1:6,1:6) :: lo, mo
154 REAL*8,
DIMENSION(1:6,1:6) :: p
155 REAL*8,
DIMENSION(1:6,1:6) ::
s, sinv
156 REAL*8,
DIMENSION(1:6,1:6) :: am, a2,
a,
b,
c, lst, a3
164 lo = alpha1*lm + alpha2*l2
234 c(
i,
j) = cm*am(
i,
j) + c2*a2(
i,
j)
235 IF (
i .EQ.
j .AND. (
c(
i,
j) <= 0.9999 .OR.
c(
i,
j) >= 1.0001))
THEN
236 print*,
'a) Incorrect Concentration tensors Am, A2'
239 IF (
i.NE.
j .AND.(
c(
i,
j) >= 1.e-10 .OR.
c(
i,
j) <= -1.e-10))
THEN
240 print*,
'b) Incorrect Concentration tensors Am, A2'
253 REAL*8,
DIMENSION(1:6,1:6) :: mo, lo
254 REAL*8,
DIMENSION(1:6,1:6) :: p
256 REAL*8,
DIMENSION(1:6,1:6) ::
s
259 REAL*8 :: e,
g, nu,
k, si, th
273 k = e/(3.d0*(1.d0 - 2.d0*nu))
274 si = (1.d0 + nu)/(3.d0*(1.d0 - nu))
275 th = 2.d0*(4.d0 - 5.d0*nu)/(15.d0*(1.d0 - nu))
277 p(1,1) = 1.d0/3.d0*(si/3.d0/
k + th/
g)
278 p(1,2) = 1.d0/3.d0*(si/3.d0/
k - th/2.d0/
g)
279 p(1,3) = 1.d0/3.d0*(si/3.d0/
k - th/2.d0/
g)
280 p(2,1) = 1.d0/3.d0*(si/3.d0/
k - th/2.d0/
g)
281 p(2,2) = 1.d0/3.d0*(si/3.d0/
k + th/
g)
282 p(2,3) = 1.d0/3.d0*(si/3.d0/
k - th/2.d0/
g)
283 p(3,1) = 1.d0/3.d0*(si/3.d0/
k - th/2.d0/
g)
284 p(3,2) = 1.d0/3.d0*(si/3.d0/
k - th/2.d0/
g)
285 p(3,3) = 1.d0/3.d0*(si/3.d0/
k + th/
g)
292 print*,
"Non existing shape of inclusion"
318 REAL*8,
DIMENSION(1:nrow,1:nrow) ::
a, inv_in
334 IF(
a(
k,
k) .EQ. 0.d0 )
THEN
336 print*,
' Matrix is singular for inversion'
Vector_n max(const Array_n_const &v1, const Array_n_const &v2)
subroutine eshelby(Shape, Mo, Lo, P, S)
subroutine compositestiffnes(Lm, L2, Mm, M2, cm, c2, alpha1, alpha2, L_bar, M_bar, Lo)
subroutine invert2(Inv_in, a, nrow)
subroutine homogenizedmat(Density, Em, PRm, Ep, PRp, cm, cd_fastest)