54 s11,s22,s33,s12,s23,s13, &
55 numnp,nstart,nend,numcstet,numat_vol, &
96 REAL*8,
DIMENSION(1:3,1:numnp) :: coor
98 REAL*8,
DIMENSION(1:3*numnp) :: r_in
100 REAL*8,
DIMENSION(1:3*numnp) ::
d
102 REAL*8,
DIMENSION(1:numcstet) :: s11, s22, s33, s12, s23, s13
104 REAL*8 :: u1,u2,u3,u4,v1,v2,v3,v4,w1,w2,w3,w4
106 REAL*8 :: x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
108 REAL*8 :: vx6, vx6inv, vol
110 REAL*8 :: b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12
112 REAL*8 :: dudx,dvdy,dwdz,dudy,dvdx,dvdz,dwdy,dudz,dwdx
114 REAL*8 :: e11,e22,e33,e12,e23,e13
116 INTEGER,
DIMENSION(1:4,1:numcstet) :: lmcstet
118 INTEGER,
DIMENSION(1:numcstet) :: matcstet
120 INTEGER :: n1,n2,n3,n4
122 INTEGER ::
i,
j,nstart,nend
123 INTEGER :: k1n1,k1n2,k1n3,k1n4,k2n1,k2n2,k2n3,k2n4
124 INTEGER :: k3n1,k3n2,k3n3,k3n4
126 REAL*8 :: x14, x24, x34, y14, y24, y34, z14, z24, z34
128 REAL*8 :: x12, x13, y12, y13, z12, z13
129 REAL*8 :: val11, val21, val31
131 REAL*8 :: f11, f12, f13, f21, f22, f23, f31, f32, f33
132 REAL*8,
DIMENSION(1:numat_vol) :: mu, kapp
133 REAL*8,
DIMENSION(1:3,1:3) :: fij, cij
203 val11 = y24*z34 - z24*y34
204 val21 = -( x24*z34 - z24*x34 )
205 val31 = x24*y34 - y24*x34
207 vx6 = -( x14*val11 + y14*val21 + z14*val31 )
214 b1 = (y34*z24 - y24*z34) * vx6inv
215 b2 = (z34*x24 - z24*x34) * vx6inv
216 b3 = (x34*y24 - x24*y34) * vx6inv
217 b4 = (y13*z14 - y14*z13) * vx6inv
218 b5 = (z13*x14 - z14*x13) * vx6inv
219 b6 = (x13*y14 - x14*y13) * vx6inv
220 b7 = (y14*z12 - y12*z14) * vx6inv
221 b8 = (z14*x12 - z12*x14) * vx6inv
222 b9 = (x14*y12 - x12*y14) * vx6inv
223 b10 = (y12*z13 - y13*z12) * vx6inv
224 b11 = (z12*x13 - z13*x12) * vx6inv
225 b12 = (x12*y13 - x13*y12) * vx6inv
229 f11 = 1.d0 + ( b1*u1 + b4*u2 + b7*u3 + b10*u4 )
230 f22 = 1.d0 + ( b2*v1 + b5*v2 + b8*v3 + b11*v4 )
231 f33 = 1.d0 + ( b3*w1 + b6*w2 + b9*w3 + b12*w4 )
232 f12 = b2*u1 + b5*u2 + b8*u3 + b11*u4
233 f21 = b1*v1 + b4*v2 + b7*v3 + b10*v4
234 f23 = b3*v1 + b6*v2 + b9*v3 + b12*v4
235 f32 = b2*w1 + b5*w2 + b8*w3 + b11*w4
236 f13 = b3*u1 + b6*u2 + b9*u3 + b12*u4
237 f31 = b1*w1 + b4*w2 + b7*w3 + b10*w4
264 cij(kk,ll)=cij(kk,ll)+fij(mm,kk)*fij(mm,ll)
270 s11(
i),s22(
i),s33(
i),s12(
i),s23(
i),s13(
i),
i, &
280 r_in(k1n1) = r_in(k1n1) - vol* &
281 ( s11(
i)*b1*f11 + s22(
i)*b2*f12 + s33(
i)*b3*f13 &
282 + s12(
i)*( b2*f11 + b1*f12 ) &
283 + s23(
i)*( b3*f12 + b2*f13 ) &
284 + s13(
i)*( b3*f11 + b1*f13 ) )
285 r_in(k2n1) = r_in(k2n1) - vol* &
286 ( s11(
i)*b1*f21 + s22(
i)*b2*f22 + s33(
i)*b3*f23 &
287 + s12(
i)*( b1*f22 + b2*f21 ) &
288 + s23(
i)*( b3*f22 + b2*f23 ) &
289 + s13(
i)*( b3*f21 + b1*f23 ) )
290 r_in(k3n1) = r_in(k3n1) - vol* &
291 ( s11(
i)*b1*f31 + s22(
i)*b2*f32 + s33(
i)*b3*f33 &
292 + s12(
i)*( b2*f31 + b1*f32 ) &
293 + s23(
i)*( b3*f32 + b2*f33 ) &
294 + s13(
i)*( b3*f31 + b1*f33 ) )
296 r_in(k1n2) = r_in(k1n2) - vol* &
297 ( s11(
i)*b4*f11 + s22(
i)*b5*f12 + s33(
i)*b6*f13 &
298 + s12(
i)*( b5*f11 + b4*f12 ) &
299 + s23(
i)*( b6*f12 + b5*f13 ) &
300 + s13(
i)*( b6*f11 + b4*f13 ) )
301 r_in(k2n2) = r_in(k2n2) - vol* &
302 ( s11(
i)*b4*f21 + s22(
i)*b5*f22 + s33(
i)*b6*f23 &
303 + s12(
i)*( b4*f22 + b5*f21 ) &
304 + s23(
i)*( b6*f22 + b5*f23 ) &
305 + s13(
i)*( b6*f21 + b4*f23 ) )
306 r_in(k3n2) = r_in(k3n2) - vol* &
307 ( s11(
i)*b4*f31 + s22(
i)*b5*f32 + s33(
i)*b6*f33 &
308 + s12(
i)*( b5*f31 + b4*f32 ) &
309 + s23(
i)*( b6*f32 + b5*f33 ) &
310 + s13(
i)*( b6*f31 + b4*f33 ) )
312 r_in(k1n3) = r_in(k1n3) - vol* &
313 ( s11(
i)*b7*f11 + s22(
i)*b8*f12 + s33(
i)*b9*f13 &
314 + s12(
i)*( b8*f11 + b7*f12 ) &
315 + s23(
i)*( b9*f12 + b8*f13 ) &
316 + s13(
i)*( b9*f11 + b7*f13 ) )
317 r_in(k2n3) = r_in(k2n3) - vol* &
318 ( s11(
i)*b7*f21 + s22(
i)*b8*f22 + s33(
i)*b9*f23 &
319 + s12(
i)*( b7*f22 + b8*f21 ) &
320 + s23(
i)*( b9*f22 + b8*f23 ) &
321 + s13(
i)*( b9*f21 + b7*f23 ) )
322 r_in(k3n3) = r_in(k3n3) - vol* &
323 ( s11(
i)*b7*f31 + s22(
i)*b8*f32 + s33(
i)*b9*f33 &
324 + s12(
i)*( b8*f31 + b7*f32 ) &
325 + s23(
i)*( b9*f32 + b8*f33 ) &
326 + s13(
i)*( b9*f31 + b7*f33 ) )
328 r_in(k1n4) = r_in(k1n4) - vol* &
329 ( s11(
i)*b10*f11 + s22(
i)*b11*f12+s33(
i)*b12*f13 &
330 + s12(
i)*( b11*f11 + b10*f12 ) &
331 + s23(
i)*( b12*f12 + b11*f13 ) &
332 + s13(
i)*( b12*f11 + b10*f13 ) )
333 r_in(k2n4) = r_in(k2n4) - vol* &
334 ( s11(
i)*b10*f21 + s22(
i)*b11*f22+s33(
i)*b12*f23 &
335 + s12(
i)*( b10*f22 + b11*f21 ) &
336 + s23(
i)*( b12*f22 + b11*f23 ) &
337 + s13(
i)*( b12*f21 + b10*f23 ) )
338 r_in(k3n4) = r_in(k3n4) - vol* &
339 ( s11(
i)*b10*f31 + s22(
i)*b11*f32+s33(
i)*b12*f33 &
340 + s12(
i)*( b11*f31 + b10*f32 ) &
341 + s23(
i)*( b12*f32 + b11*f33 ) &
342 + s13(
i)*( b12*f31 + b10*f33 ) )
367 val11 = y24*z34 - z24*y34
368 val21 = -( x24*z34 - z24*x34 )
369 val31 = x24*y34 - y24*x34
371 vx6 = -( x14*val11 + y14*val21 + z14*val31 )
374 print*,
'ROCFRAC :: ERROR * ERROR * ERROR'
375 print*,
'ROCFRAC :: DEFORMED ELEMENT VOLUME TURNED NEGATIVE'
subroutine v3d4_nl_arruda_boyce(coor, matcstet, lmcstet, R_in, d, S11, S22, S33, S12, S23, S13, numnp, nstart, nend, numcstet, numat_vol, mu, kapp)
subroutine arruda_boyce(Cij, S11, S22, S33, S12, S23, S13, ielem, mu, kappa)