53 SUBROUTINE v3d4_nl(coor,matcstet,lmcstet,R_in,d,ci, &
54 s11,s22,s33,s12,s23,s13,numnp,nstart,nend,numcstet,numat_vol,xmu,xlambda)
72 REAL*8,
DIMENSION(1:3,1:numnp) :: coor,
x
74 REAL*8,
DIMENSION(1:9,1:numat_vol) :: ci
76 REAL*8,
DIMENSION(1:3*numnp) :: r_in
78 REAL*8,
DIMENSION(1:3*numnp) ::
d
80 REAL*8,
DIMENSION(1:numcstet) :: s11, s22, s33, s12, s23, s13
82 REAL*8 :: u1,u2,u3,u4,v1,v2,v3,v4,w1,w2,w3,w4
84 REAL*8 :: x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
86 REAL*8 :: x14, x24, x34, y14, y24, y34, z14, z24, z34
88 REAL*8 :: x12, x13, y12, y13, z12, z13
92 REAL*8 :: vx6, vx6inv, vol
94 REAL*8 :: b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12
96 REAL*8 :: dudx,dvdy,dwdz,dudy,dvdx,dvdz,dwdy,dudz,dwdx
98 REAL*8 :: e11,e22,e33,e12,e23,e13
100 INTEGER,
DIMENSION(1:4,1:numcstet) :: lmcstet
102 INTEGER,
DIMENSION(1:numcstet) :: matcstet
104 INTEGER :: n1,n2,n3,n4
106 INTEGER ::
i,
j,nstart,nend
107 INTEGER :: k1n1,k1n2,k1n3,k1n4,k2n1,k2n2,k2n3,k2n4
108 INTEGER :: k3n1,k3n2,k3n3,k3n4
109 REAL*8 :: f11, f12, f13, f21, f22, f23, f31, f32, f33
110 REAL*8 :: c11, c12, c13, c21, c22, c23, c31, c32, c33
113 REAL*8,
DIMENSION(1:numat_vol) :: xmu, xlambda
180 c11 = y24*z34 - z24*y34
181 c21 = -( x24*z34 - z24*x34 )
182 c31 = x24*y34 - y24*x34
184 vx6 = -( x14*c11 + y14*c21 + z14*c31 )
191 b1 = (y34*z24 - y24*z34) * vx6inv
192 b2 = (z34*x24 - z24*x34) * vx6inv
193 b3 = (x34*y24 - x24*y34) * vx6inv
194 b4 = (y13*z14 - y14*z13) * vx6inv
195 b5 = (z13*x14 - z14*x13) * vx6inv
196 b6 = (x13*y14 - x14*y13) * vx6inv
197 b7 = (y14*z12 - y12*z14) * vx6inv
198 b8 = (z14*x12 - z12*x14) * vx6inv
199 b9 = (x14*y12 - x12*y14) * vx6inv
200 b10 = (y12*z13 - y13*z12) * vx6inv
201 b11 = (z12*x13 - z13*x12) * vx6inv
202 b12 = (x12*y13 - x13*y12) * vx6inv
208 dudx = b1*u1 + b4*u2 + b7*u3 + b10*u4
209 dvdy = b2*v1 + b5*v2 + b8*v3 + b11*v4
210 dwdz = b3*w1 + b6*w2 + b9*w3 + b12*w4
211 dudy = b2*u1 + b5*u2 + b8*u3 + b11*u4
212 dvdx = b1*v1 + b4*v2 + b7*v3 + b10*v4
213 dvdz = b3*v1 + b6*v2 + b9*v3 + b12*v4
214 dwdy = b2*w1 + b5*w2 + b8*w3 + b11*w4
215 dudz = b3*u1 + b6*u2 + b9*u3 + b12*u4
216 dwdx = b1*w1 + b4*w2 + b7*w3 + b10*w4
233 c11 = f11*f11+f21*f21+f31*f31
234 c12 = f11*f12+f21*f22+f31*f32
235 c13 = f11*f13+f21*f23+f31*f33
237 c22 = f12*f12+f22*f22+f32*f32
238 c23 = f12*f13+f22*f23+f32*f33
241 c33 = f13*f13+f23*f23+f33*f33
245 e11 = 0.5d0*(c11 - 1.d0)
246 e22 = 0.5d0*(c22 - 1.d0)
247 e33 = 0.5d0*(c33 - 1.d0)
256 s11(
i) = xlambda(
j)*(e11+e22+e33) + 2.d0*xmu(
j)*e11
257 s12(
i) = 2.d0*xmu(
j)*e12
258 s13(
i) = 2.d0*xmu(
j)*e13
260 s22(
i) = xlambda(
j)*(e11+e22+e33) + 2.d0*xmu(
j)*e22
261 s23(
i) = 2.d0*xmu(
j)*e23
263 s33(
i) = xlambda(
j)*(e11+e22+e33) + 2.d0*xmu(
j)*e33
272 r_in(k1n1) = r_in(k1n1) - vol* &
273 ( s11(
i)*b1*f11 + s22(
i)*b2*f12 + s33(
i)*b3*f13 &
274 + s12(
i)*( b2*f11 + b1*f12 ) &
275 + s23(
i)*( b3*f12 + b2*f13 ) &
276 + s13(
i)*( b3*f11 + b1*f13 ) )
277 r_in(k2n1) = r_in(k2n1) - vol* &
278 ( s11(
i)*b1*f21 + s22(
i)*b2*f22 + s33(
i)*b3*f23 &
279 + s12(
i)*( b1*f22 + b2*f21 ) &
280 + s23(
i)*( b3*f22 + b2*f23 ) &
281 + s13(
i)*( b3*f21 + b1*f23 ) )
282 r_in(k3n1) = r_in(k3n1) - vol* &
283 ( s11(
i)*b1*f31 + s22(
i)*b2*f32 + s33(
i)*b3*f33 &
284 + s12(
i)*( b2*f31 + b1*f32 ) &
285 + s23(
i)*( b3*f32 + b2*f33 ) &
286 + s13(
i)*( b3*f31 + b1*f33 ) )
288 r_in(k1n2) = r_in(k1n2) - vol* &
289 ( s11(
i)*b4*f11 + s22(
i)*b5*f12 + s33(
i)*b6*f13 &
290 + s12(
i)*( b5*f11 + b4*f12 ) &
291 + s23(
i)*( b6*f12 + b5*f13 ) &
292 + s13(
i)*( b6*f11 + b4*f13 ) )
293 r_in(k2n2) = r_in(k2n2) - vol* &
294 ( s11(
i)*b4*f21 + s22(
i)*b5*f22 + s33(
i)*b6*f23 &
295 + s12(
i)*( b4*f22 + b5*f21 ) &
296 + s23(
i)*( b6*f22 + b5*f23 ) &
297 + s13(
i)*( b6*f21 + b4*f23 ) )
298 r_in(k3n2) = r_in(k3n2) - vol* &
299 ( s11(
i)*b4*f31 + s22(
i)*b5*f32 + s33(
i)*b6*f33 &
300 + s12(
i)*( b5*f31 + b4*f32 ) &
301 + s23(
i)*( b6*f32 + b5*f33 ) &
302 + s13(
i)*( b6*f31 + b4*f33 ) )
304 r_in(k1n3) = r_in(k1n3) - vol* &
305 ( s11(
i)*b7*f11 + s22(
i)*b8*f12 + s33(
i)*b9*f13 &
306 + s12(
i)*( b8*f11 + b7*f12 ) &
307 + s23(
i)*( b9*f12 + b8*f13 ) &
308 + s13(
i)*( b9*f11 + b7*f13 ) )
309 r_in(k2n3) = r_in(k2n3) - vol* &
310 ( s11(
i)*b7*f21 + s22(
i)*b8*f22 + s33(
i)*b9*f23 &
311 + s12(
i)*( b7*f22 + b8*f21 ) &
312 + s23(
i)*( b9*f22 + b8*f23 ) &
313 + s13(
i)*( b9*f21 + b7*f23 ) )
314 r_in(k3n3) = r_in(k3n3) - vol* &
315 ( s11(
i)*b7*f31 + s22(
i)*b8*f32 + s33(
i)*b9*f33 &
316 + s12(
i)*( b8*f31 + b7*f32 ) &
317 + s23(
i)*( b9*f32 + b8*f33 ) &
318 + s13(
i)*( b9*f31 + b7*f33 ) )
320 r_in(k1n4) = r_in(k1n4) - vol* &
321 ( s11(
i)*b10*f11 + s22(
i)*b11*f12+s33(
i)*b12*f13 &
322 + s12(
i)*( b11*f11 + b10*f12 ) &
323 + s23(
i)*( b12*f12 + b11*f13 ) &
324 + s13(
i)*( b12*f11 + b10*f13 ) )
325 r_in(k2n4) = r_in(k2n4) - vol* &
326 ( s11(
i)*b10*f21 + s22(
i)*b11*f22+s33(
i)*b12*f23 &
327 + s12(
i)*( b10*f22 + b11*f21 ) &
328 + s23(
i)*( b12*f22 + b11*f23 ) &
329 + s13(
i)*( b12*f21 + b10*f23 ) )
330 r_in(k3n4) = r_in(k3n4) - vol* &
331 ( s11(
i)*b10*f31 + s22(
i)*b11*f32+s33(
i)*b12*f33 &
332 + s12(
i)*( b11*f31 + b10*f32 ) &
333 + s23(
i)*( b12*f32 + b11*f33 ) &
334 + s13(
i)*( b12*f31 + b10*f33 ) )
subroutine v3d4_nl(coor, matcstet, lmcstet, R_in, d, ci, S11, S22, S33, S12, S23, S13, numnp, nstart, nend, numcstet, numat_vol, xmu, xlambda)