54 s11,s22,s33,s12,s23,s13,numnp,nstart,nend,numcstet,numat_vol,&
55 coeffexp,temperature,temperature0)
72 REAL*8,
DIMENSION(1:3,1:numnp) :: coor
74 REAL*8,
DIMENSION(1:9,1:numat_vol) :: ci
76 REAL*8,
DIMENSION(1:numat_vol) :: coeffexp
77 REAL*8,
DIMENSION(1:NumNP) :: temperature
78 REAL*8 :: temperaturegauss,temperature0
81 REAL*8,
DIMENSION(1:3*numnp) :: r_in
83 REAL*8,
DIMENSION(1:3*numnp) ::
d
85 REAL*8,
DIMENSION(1:numcstet) :: s11, s22, s33, s12, s23, s13
87 INTEGER,
DIMENSION(1:4,1:numcstet) :: lmcstet
89 INTEGER,
DIMENSION(1:numcstet) :: matcstet
92 INTEGER :: n1,n2,n3,n4
94 REAL*8 :: u1,u2,u3,u4,v1,v2,v3,v4,w1,w2,w3,w4
96 REAL*8 :: vx6, vx6inv, vol
98 REAL*8 :: b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12
100 REAL*8 :: e11,e22,e33,e12,e23,e13
102 REAL*8 :: x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
104 REAL*8 :: x14, x24, x34, y14, y24, y34, z14, z24, z34
106 REAL*8 :: x12, x13, y12, y13, z12, z13
108 REAL*8 :: c11, c21, c31
110 INTEGER ::
i,
j,nstart,nend
111 INTEGER :: k1n1,k1n2,k1n3,k1n4,k2n1,k2n2,k2n3,k2n4
112 INTEGER :: k3n1,k3n2,k3n3,k3n4
179 c11 = y24*z34 - z24*y34
180 c21 = -( x24*z34 - z24*x34 )
181 c31 = x24*y34 - y24*x34
183 vx6 = -( x14*c11 + y14*c21 + z14*c31 )
190 b1 = (y34*z24 - y24*z34) * vx6inv
191 b2 = (z34*x24 - z24*x34) * vx6inv
192 b3 = (x34*y24 - x24*y34) * vx6inv
193 b4 = (y13*z14 - y14*z13) * vx6inv
194 b5 = (z13*x14 - z14*x13) * vx6inv
195 b6 = (x13*y14 - x14*y13) * vx6inv
196 b7 = (y14*z12 - y12*z14) * vx6inv
197 b8 = (z14*x12 - z12*x14) * vx6inv
198 b9 = (x14*y12 - x12*y14) * vx6inv
199 b10 = (y12*z13 - y13*z12) * vx6inv
200 b11 = (z12*x13 - z13*x12) * vx6inv
201 b12 = (x12*y13 - x13*y12) * vx6inv
206 e11 = b1*u1 + b4*u2 + b7*u3 + b10*u4
207 e22 = b2*v1 + b5*v2 + b8*v3 + b11*v4
208 e33 = b3*w1 + b6*w2 + b9*w3 + b12*w4
209 e12 = b2*u1 + b1*v1 + b5*u2 + b4*v2 + b8*u3 + b7*v3 + b11*u4 + b10*v4
210 e23 = b3*v1 + b2*w1 + b6*v2 + b5*w2 + b9*v3 + b8*w3 + b12*v4 + b11*w4
211 e13 = b3*u1 + b1*w1 + b6*u2 + b4*w2 + b9*u3 + b7*w3 + b12*u4 + b10*w4
215 temperaturegauss = ( temperature(n1) + &
218 temperature(n4) )*0.25d0
220 e11 = e11 - coeffexp(
j)*( temperaturegauss - temperature0 )
221 e22 = e22 - coeffexp(
j)*( temperaturegauss - temperature0 )
222 e33 = e33 - coeffexp(
j)*( temperaturegauss - temperature0 )
228 s11(
i) = e11*ci(1,
j) + e22*ci(2,
j) + e33*ci(4,
j)
229 s22(
i) = e11*ci(2,
j) + e22*ci(3,
j) + e33*ci(5,
j)
230 s33(
i) = e11*ci(4,
j) + e22*ci(5,
j) + e33*ci(6,
j)
242 r_in(k1n1) = r_in(k1n1) - (s11(
i)*b1 + s12(
i)*b2 + s13(
i)*b3)*vol
243 r_in(k2n1) = r_in(k2n1) - (s22(
i)*b2 + s12(
i)*b1 + s23(
i)*b3)*vol
244 r_in(k3n1) = r_in(k3n1) - (s33(
i)*b3 + s23(
i)*b2 + s13(
i)*b1)*vol
246 r_in(k1n2) = r_in(k1n2) - (s11(
i)*b4 + s12(
i)*b5 + s13(
i)*b6)*vol
247 r_in(k2n2) = r_in(k2n2) - (s22(
i)*b5 + s12(
i)*b4 + s23(
i)*b6)*vol
248 r_in(k3n2) = r_in(k3n2) - (s33(
i)*b6 + s23(
i)*b5 + s13(
i)*b4)*vol
250 r_in(k1n3) = r_in(k1n3) - (s11(
i)*b7 + s12(
i)*b8 + s13(
i)*b9 )*vol
251 r_in(k2n3) = r_in(k2n3) - (s22(
i)*b8 + s12(
i)*b7 + s23(
i)*b9 )*vol
252 r_in(k3n3) = r_in(k3n3) - (s33(
i)*b9 + s23(
i)*b8 + s13(
i)*b7 )*vol
254 r_in(k1n4) = r_in(k1n4) - (s11(
i)*b10 + s12(
i)*b11 + s13(
i)*b12 )*vol
255 r_in(k2n4) = r_in(k2n4) - (s22(
i)*b11 + s12(
i)*b10 + s23(
i)*b12 )*vol
256 r_in(k3n4) = r_in(k3n4) - (s33(
i)*b12 + s23(
i)*b11 + s13(
i)*b10 )*vol
281 c11 = y24*z34 - z24*y34
282 c21 = -( x24*z34 - z24*x34 )
283 c31 = x24*y34 - y24*x34
285 vx6 = -( x14*c11 + y14*c21 + z14*c31 )
288 print*,
'DEFORMED VOLUME TURNED NEGATIVE'
subroutine v3d4_thermalexp2(coor, matcstet, lmcstet, R_in, d, ci, S11, S22, S33, S12, S23, S13, numnp, nstart, nend, numcstet, numat_vol, CoeffExp, Temperature, Temperature0)