55 numnp,nstart,nend,numcstet,numat_vol, coeffexp,temperature,temperature0)
108 REAL*8,
DIMENSION(1:3,1:numnp) :: coor
110 REAL*8,
DIMENSION(1:9,1:numat_vol) :: ci
112 REAL*8,
DIMENSION(1:numat_vol) :: coeffexp
115 REAL*8,
DIMENSION(1:3*numnp) :: r_in
117 REAL*8,
DIMENSION(1:4,1:numcstet) :: s11l, s22l, s33l
119 REAL*8,
DIMENSION(1:4) :: strssth11, strssth22, strssth33
123 INTEGER,
DIMENSION(1:10,1:numcstet) :: lmcstet
125 INTEGER,
DIMENSION(1:numcstet) :: matcstet
128 INTEGER :: n1,n2,n3,n4,n5,n6,n7,n8,n9,n10
130 REAL*8 :: vx6, vx6inv
132 REAL*8 :: b1,b2,b3,b4,b5,b6,b7,b8,b9,b10
133 REAL*8 :: b11,b12,b13,b14,b15,b16,b17,b18,b19,b20
134 REAL*8 :: b21,b22,b23,b24,b25,b26,b27,b28,b29,b30
136 REAL*8 :: e11,e22,e33,e12,e23,e13
138 REAL*8 :: x1,x2,x3,x4,x5,x6,x7,x8,x9,x10
139 REAL*8 :: y1,y2,y3,y4,y5,y6,y7,y8,y9,y10
140 REAL*8 :: z1,z2,z3,z4,z5,z6,z7,z8,z9,z10
142 INTEGER ::
i,
j,nstart,nend
143 REAL*8 :: aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9,aux10,aux11,aux12
145 REAL*8 :: r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18
146 REAL*8 :: r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30
147 REAL*8 :: g1, g2, g3, g4
148 REAL*8 :: xn1, xn2, xn3, xn4
150 REAL*8 :: x14, x24, x34, y14, y24, y34, z14, z24, z34
152 REAL*8 :: c11, c21, c31
153 INTEGER :: k1n1,k1n2,k1n3,k1n4,k1n5,k1n6,k1n7,k1n8,k1n9,k1n10
154 INTEGER :: k2n1,k2n2,k2n3,k2n4,k2n5,k2n6,k2n7,k2n8,k2n9,k2n10
155 INTEGER :: k3n1,k3n2,k3n3,k3n4,k3n5,k3n6,k3n7,k3n8,k3n9,k3n10
157 REAL*8,
DIMENSION(1:NumNP) :: temperature
158 REAL*8 :: temperaturegauss,temperature0
161 REAL*8,
DIMENSION(1:4,1:4) :: gaussintpt = reshape( &
162 (/0.58541020d0,0.13819660d0,0.13819660d0,0.13819660d0, &
163 0.13819660d0,0.58541020d0,0.13819660d0,0.13819660d0, &
164 0.13819660d0,0.13819660d0,0.58541020d0,0.13819660d0, &
165 0.13819660d0,0.13819660d0,0.13819660d0,0.58541020d0/),(/4,4/) )
240 c11 = y24*z34 - z24*y34
241 c21 = -( x24*z34 - z24*x34 )
242 c31 = x24*y34 - y24*x34
244 vx6 = -( x14*c11 + y14*c21 + z14*c31 )
254 aux1 = -(y3*z4 - y4*z3 - y2*z4 + y2*z3 + z2*y4 - z2*y3)
255 aux2 = (x3*z4 - x4*z3 - x2*z4 + x2*z3 + z2*x4 - z2*x3)
256 aux3 = -(x3*y4 - x4*y3 - x2*y4 + x2*y3 + y2*x4 - y2*x3)
257 aux4 = (y3*z4 - y4*z3 - y1*z4 + y1*z3 + z1*y4 - z1*y3)
258 aux5 = -(x3*z4 - x4*z3 - x1*z4 + x1*z3 + z1*x4 - z1*x3)
259 aux6 = (x3*y4 - x4*y3 - x1*y4 + x1*y3 + y1*x4 - y1*x3)
260 aux7 = -(y2*z4 - z2*y4 - y1*z4 + y1*z2 + z1*y4 - z1*y2)
261 aux8 = (x2*z4 - z2*x4 - x1*z4 + x1*z2 + z1*x4 - z1*x2)
262 aux9 = -(x2*y4 - y2*x4 - x1*y4 + x1*y2 + y1*x4 - y1*x2)
263 aux10 = (y2*z3 - z2*y3 - y1*z3 + y1*z2 + z1*y3 - z1*y2)
264 aux11 =-(x2*z3 - z2*x3 - x1*z3 + x1*z2 + z1*x3 - z1*x2)
265 aux12 = (x2*y3 - y2*x3 - x1*y3 + x1*y2 + y1*x3 - y1*x2)
300 g1 = gaussintpt(igpt,1)
301 g2 = gaussintpt(igpt,2)
302 g3 = gaussintpt(igpt,3)
303 g4 = gaussintpt(igpt,4)
329 b13 = 4.d0*(g2*aux1 + g1*aux4)
330 b14 = 4.d0*(g2*aux2 + g1*aux5)
331 b15 = 4.d0*(g2*aux3 + g1*aux6)
333 b16 = 4.d0*(g3*aux4 + g2*aux7)
334 b17 = 4.d0*(g3*aux5 + g2*aux8)
335 b18 = 4.d0*(g3*aux6 + g2*aux9)
337 b19 = 4.d0*(g1*aux7 + g3*aux1)
338 b20 = 4.d0*(g1*aux8 + g3*aux2)
339 b21 = 4.d0*(g1*aux9 + g3*aux3)
341 b22 = 4.d0*(g4*aux1 + g1*aux10)
342 b23 = 4.d0*(g4*aux2 + g1*aux11)
343 b24 = 4.d0*(g4*aux3 + g1*aux12)
345 b25 = 4.d0*(g4*aux4 + g2*aux10)
346 b26 = 4.d0*(g4*aux5 + g2*aux11)
347 b27 = 4.d0*(g4*aux6 + g2*aux12)
349 b28 = 4.d0*(g4*aux7 + g3*aux10)
350 b29 = 4.d0*(g4*aux8 + g3*aux11)
351 b30 = 4.d0*(g4*aux9 + g3*aux12)
356 temperaturegauss = g1*(2.d0*g1-1.d0)*temperature(n1) + &
357 g2*(2.d0*g2-1.d0)*temperature(n2) + &
358 g3*(2.d0*g3-1.d0)*temperature(n3) + &
359 g4*(2.d0*g4-1.d0)*temperature(n4) + &
360 4.d0*g1*g2*temperature(n5) + 4.d0*g2*g3*temperature(n6) + &
361 4.d0*g3*g1*temperature(n7) + 4.d0*g1*g4*temperature(n8) + &
362 4.d0*g2*g4*temperature(n9) + 4.d0*g3*g4*temperature(n10)
364 strssth11(igpt) = -ci(1,
j)*coeffexp(
j)*( temperaturegauss - temperature0 )
365 strssth22(igpt) = -ci(3,
j)*coeffexp(
j)*( temperaturegauss - temperature0 )
366 strssth33(igpt) = -ci(6,
j)*coeffexp(
j)*( temperaturegauss - temperature0 )
369 r1 = r1 + strssth11(igpt)*b1
370 r2 = r2 + strssth22(igpt)*b2
371 r3 = r3 + strssth33(igpt)*b3
373 r4 = r4 + strssth11(igpt)*b4
374 r5 = r5 + strssth22(igpt)*b5
375 r6 = r6 + strssth33(igpt)*b6
377 r7 = r7 + strssth11(igpt)*b7
378 r8 = r8 + strssth22(igpt)*b8
379 r9 = r9 + strssth33(igpt)*b9
381 r10 = r10 + strssth11(igpt)*b10
382 r11 = r11 + strssth22(igpt)*b11
383 r12 = r12 + strssth33(igpt)*b12
385 r13 = r13 + strssth11(igpt)*b13
386 r14 = r14 + strssth22(igpt)*b14
387 r15 = r15 + strssth33(igpt)*b15
389 r16 = r16 + strssth11(igpt)*b16
390 r17 = r17 + strssth22(igpt)*b17
391 r18 = r18 + strssth33(igpt)*b18
393 r19 = r19 + strssth11(igpt)*b19
394 r20 = r20 + strssth22(igpt)*b20
395 r21 = r21 + strssth33(igpt)*b21
397 r22 = r22 + strssth11(igpt)*b22
398 r23 = r23 + strssth22(igpt)*b23
399 r24 = r24 + strssth33(igpt)*b24
401 r25 = r25 + strssth11(igpt)*b25
402 r26 = r26 + strssth22(igpt)*b26
403 r27 = r27 + strssth33(igpt)*b27
405 r28 = r28 + strssth11(igpt)*b28
406 r29 = r29 + strssth22(igpt)*b29
407 r30 = r30 + strssth33(igpt)*b30
409 s11l(igpt,
i) = s11l(igpt,
i) + strssth11(igpt)
410 s22l(igpt,
i) = s22l(igpt,
i) + strssth22(igpt)
411 s33l(igpt,
i) = s33l(igpt,
i) + strssth33(igpt)
425 r_in(k1n1) = r_in(k1n1) - r1*0.04166666666666667d0
426 r_in(k2n1) = r_in(k2n1) - r2*0.04166666666666667d0
427 r_in(k3n1) = r_in(k3n1) - r3*0.04166666666666667d0
429 r_in(k1n2) = r_in(k1n2) - r4*0.04166666666666667d0
430 r_in(k2n2) = r_in(k2n2) - r5*0.04166666666666667d0
431 r_in(k3n2) = r_in(k3n2) - r6*0.04166666666666667d0
433 r_in(k1n3) = r_in(k1n3) - r7*0.04166666666666667d0
434 r_in(k2n3) = r_in(k2n3) - r8*0.04166666666666667d0
435 r_in(k3n3) = r_in(k3n3) - r9*0.04166666666666667d0
437 r_in(k1n4) = r_in(k1n4) - r10*0.04166666666666667d0
438 r_in(k2n4) = r_in(k2n4) - r11*0.04166666666666667d0
439 r_in(k3n4) = r_in(k3n4) - r12*0.04166666666666667d0
441 r_in(k1n5) = r_in(k1n5) - r13*0.04166666666666667d0
442 r_in(k2n5) = r_in(k2n5) - r14*0.04166666666666667d0
443 r_in(k3n5) = r_in(k3n5) - r15*0.04166666666666667d0
445 r_in(k1n6) = r_in(k1n6) - r16*0.04166666666666667d0
446 r_in(k2n6) = r_in(k2n6) - r17*0.04166666666666667d0
447 r_in(k3n6) = r_in(k3n6) - r18*0.04166666666666667d0
449 r_in(k1n7) = r_in(k1n7) - r19*0.04166666666666667d0
450 r_in(k2n7) = r_in(k2n7) - r20*0.04166666666666667d0
451 r_in(k3n7) = r_in(k3n7) - r21*0.04166666666666667d0
453 r_in(k1n8) = r_in(k1n8) - r22*0.04166666666666667d0
454 r_in(k2n8) = r_in(k2n8) - r23*0.04166666666666667d0
455 r_in(k3n8) = r_in(k3n8) - r24*0.04166666666666667d0
457 r_in(k1n9) = r_in(k1n9) - r25*0.04166666666666667d0
458 r_in(k2n9) = r_in(k2n9) - r26*0.04166666666666667d0
459 r_in(k3n9) = r_in(k3n9) - r27*0.04166666666666667d0
461 r_in(k1n10) = r_in(k1n10) - r28*0.04166666666666667d0
462 r_in(k2n10) = r_in(k2n10) - r29*0.04166666666666667d0
463 r_in(k3n10) = r_in(k3n10) - r30*0.04166666666666667d0
subroutine v3d10_thermalexp(coor, matcstet, lmcstet, R_in, ci, S11l, S22l, S33l, numnp, nstart, nend, numcstet, numat_vol, CoeffExp, Temperature, Temperature0)