54 rnet, t, rho,cp, matcstet,numat_vol,meshvel,elemstart, elemend)
97 INTEGER :: numnp, numel,numat_vol
98 integer :: elemstart, elemend
99 REAL*8,
DIMENSION(1:numat_vol) :: kappa
100 REAL*8,
DIMENSION(1:NumNP) :: t
101 REAL*8,
DIMENSION(1:NumNP) :: rnet
102 INTEGER ,
DIMENSION(1:10,1:NumEl) :: elconnvol
103 REAL*8,
DIMENSION(1:3,1:NumNp) :: coor
104 REAL*8,
DIMENSION(1:NumNp*3) :: meshvel
105 REAL*8,
DIMENSION(1:numat_vol) :: rho
106 REAL*8,
DIMENSION(1:numat_vol) :: cp
107 integer,
dimension(1:NumEl) :: matcstet
109 INTEGER ::
i, imat, igpt,
j
110 INTEGER :: n1,n2,n3,n4,n5,n6,n7,n8,n9,n10
113 REAL*8,
DIMENSION(1:10,1:10) :: kloc
114 REAL*8,
DIMENSION(1:10) :: tloc, rinloc
118 REAL*8 :: x14, x24, x34, y14, y24, y34, z14, z24, z34
120 REAL*8 :: x12, x13, y12, y13, z12, z13
122 REAL*8 :: c11, c21, c31
124 REAL*8 :: vx6, vx6inv, vol
127 REAL*8 :: x1,x2,x3,x4,x5,x6,x7,x8,x9,x10
128 REAL*8 :: y1,y2,y3,y4,y5,y6,y7,y8,y9,y10
129 REAL*8 :: z1,z2,z3,z4,z5,z6,z7,z8,z9,z10
130 REAL*8 :: aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9,aux10,aux11,aux12
131 REAL*8 :: g1, g2, g3, g4
132 REAL*8 :: xn1, xn2, xn3, xn4
133 INTEGER :: k1n1,k1n2,k1n3,k1n4,k1n5,k1n6,k1n7,k1n8,k1n9,k1n10
134 INTEGER :: k2n1,k2n2,k2n3,k2n4,k2n5,k2n6,k2n7,k2n8,k2n9,k2n10
135 INTEGER :: k3n1,k3n2,k3n3,k3n4,k3n5,k3n6,k3n7,k3n8,k3n9,k3n10
137 REAL*8 :: r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18
139 REAL*8,
DIMENSION(1:4,1:4) :: gaussintpt = reshape( &
140 (/0.58541020d0,0.13819660d0,0.13819660d0,0.13819660d0, &
141 0.13819660d0,0.58541020d0,0.13819660d0,0.13819660d0, &
142 0.13819660d0,0.13819660d0,0.58541020d0,0.13819660d0, &
143 0.13819660d0,0.13819660d0,0.13819660d0,0.58541020d0/),(/4,4/) )
145 real*8,
dimension(1:3,1:10) ::
b
146 real*8,
dimension(1:10,1:3) :: bt
147 real*8,
dimension(1:10) :: shapfnct
148 real*8,
dimension(1:3) :: meshvelnd
150 REAL*8,
DIMENSION(1:3,1:3) :: kappamatrx = reshape( &
151 (/1.000000000000000,0.000000000000000,0.000000000000000, &
152 0.000000000000000,1.000000000000000,0.000000000000000, &
153 0.000000000000000,0.000000000000000,1.000000000000000/),(/3,3/) )
155 DO i = elemstart, elemend
167 n10 = elconnvol(10,
i)
253 c11 = y24*z34 - z24*y34
254 c21 = -( x24*z34 - z24*x34 )
255 c31 = x24*y34 - y24*x34
257 vx6 = -( x14*c11 + y14*c21 + z14*c31 )
261 aux1 = -(y3*z4 - y4*z3 - y2*z4 + y2*z3 + z2*y4 - z2*y3)
262 aux2 = (x3*z4 - x4*z3 - x2*z4 + x2*z3 + z2*x4 - z2*x3)
263 aux3 = -(x3*y4 - x4*y3 - x2*y4 + x2*y3 + y2*x4 - y2*x3)
264 aux4 = (y3*z4 - y4*z3 - y1*z4 + y1*z3 + z1*y4 - z1*y3)
265 aux5 = -(x3*z4 - x4*z3 - x1*z4 + x1*z3 + z1*x4 - z1*x3)
266 aux6 = (x3*y4 - x4*y3 - x1*y4 + x1*y3 + y1*x4 - y1*x3)
267 aux7 = -(y2*z4 - z2*y4 - y1*z4 + y1*z2 + z1*y4 - z1*y2)
268 aux8 = (x2*z4 - z2*x4 - x1*z4 + x1*z2 + z1*x4 - z1*x2)
269 aux9 = -(x2*y4 - y2*x4 - x1*y4 + x1*y2 + y1*x4 - y1*x2)
270 aux10 = (y2*z3 - z2*y3 - y1*z3 + y1*z2 + z1*y3 - z1*y2)
271 aux11 =-(x2*z3 - z2*x3 - x1*z3 + x1*z2 + z1*x3 - z1*x2)
272 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)
305 shapfnct(1) = g1*(2.*g1-1.)
306 shapfnct(2) = g2*(2.*g2-1.)
307 shapfnct(3) = g3*(2.*g3-1.)
308 shapfnct(4) = g4*(2.*g4-1.)
309 shapfnct(5) = 4.*g1*g2
310 shapfnct(6) = 4.*g2*g3
311 shapfnct(7) = 4.*g3*g1
312 shapfnct(8) = 4.*g1*g4
313 shapfnct(9) = 4.*g2*g4
314 shapfnct(10) = 4.*g3*g4
341 b(1,5) = 4.d0*(g2*aux1 + g1*aux4)
342 b(2,5) = 4.d0*(g2*aux2 + g1*aux5)
343 b(3,5) = 4.d0*(g2*aux3 + g1*aux6)
345 b(1,6) = 4.d0*(g3*aux4 + g2*aux7)
346 b(2,6) = 4.d0*(g3*aux5 + g2*aux8)
347 b(3,6) = 4.d0*(g3*aux6 + g2*aux9)
349 b(1,7) = 4.d0*(g1*aux7 + g3*aux1)
350 b(2,7) = 4.d0*(g1*aux8 + g3*aux2)
351 b(3,7) = 4.d0*(g1*aux9 + g3*aux3)
353 b(1,8) = 4.d0*(g4*aux1 + g1*aux10)
354 b(2,8) = 4.d0*(g4*aux2 + g1*aux11)
355 b(3,8) = 4.d0*(g4*aux3 + g1*aux12)
357 b(1,9) = 4.d0*(g4*aux4 + g2*aux10)
358 b(2,9) = 4.d0*(g4*aux5 + g2*aux11)
359 b(3,9) = 4.d0*(g4*aux6 + g2*aux12)
361 b(1,10) = 4.d0*(g4*aux7 + g3*aux10)
362 b(2,10) = 4.d0*(g4*aux8 + g3*aux11)
363 b(3,10) = 4.d0*(g4*aux9 + g3*aux12)
375 kloc = kloc + kappa(imat)*matmul(matmul(transpose(
b),kappamatrx),
b) &
396 meshvelnd(1) = shapfnct(1)*meshvel(k1n1) + &
397 shapfnct(2)*meshvel(k1n2) + &
398 shapfnct(3)*meshvel(k1n3) + &
399 shapfnct(4)*meshvel(k1n4) + &
400 shapfnct(5)*meshvel(k1n5) + &
401 shapfnct(6)*meshvel(k1n6) + &
402 shapfnct(7)*meshvel(k1n7) + &
403 shapfnct(8)*meshvel(k1n8) + &
404 shapfnct(9)*meshvel(k1n9) + &
405 shapfnct(10)*meshvel(k1n10)
407 meshvelnd(2) = shapfnct(1)*meshvel(k2n1) + &
408 shapfnct(2)*meshvel(k2n2) + &
409 shapfnct(3)*meshvel(k2n3) + &
410 shapfnct(4)*meshvel(k2n4) + &
411 shapfnct(5)*meshvel(k2n5) + &
412 shapfnct(6)*meshvel(k2n6) + &
413 shapfnct(7)*meshvel(k2n7) + &
414 shapfnct(8)*meshvel(k2n8) + &
415 shapfnct(9)*meshvel(k2n9) + &
416 shapfnct(10)*meshvel(k2n10)
418 meshvelnd(3) = shapfnct(1)*meshvel(k3n1) + &
419 shapfnct(2)*meshvel(k3n2) + &
420 shapfnct(3)*meshvel(k3n3) + &
421 shapfnct(4)*meshvel(k3n4) + &
422 shapfnct(5)*meshvel(k3n5) + &
423 shapfnct(6)*meshvel(k3n6) + &
424 shapfnct(7)*meshvel(k3n7) + &
425 shapfnct(8)*meshvel(k3n8) + &
426 shapfnct(9)*meshvel(k3n9) + &
427 shapfnct(10)*meshvel(k3n10)
429 bt(1,1) = shapfnct(1)*meshvelnd(1)
430 bt(1,2) = shapfnct(1)*meshvelnd(2)
431 bt(1,3) = shapfnct(1)*meshvelnd(3)
432 bt(2,1) = shapfnct(2)*meshvelnd(1)
433 bt(2,2) = shapfnct(2)*meshvelnd(2)
434 bt(2,3) = shapfnct(2)*meshvelnd(3)
435 bt(3,1) = shapfnct(3)*meshvelnd(1)
436 bt(3,2) = shapfnct(3)*meshvelnd(2)
437 bt(3,3) = shapfnct(3)*meshvelnd(3)
438 bt(4,1) = shapfnct(4)*meshvelnd(1)
439 bt(4,2) = shapfnct(4)*meshvelnd(2)
440 bt(4,3) = shapfnct(4)*meshvelnd(3)
441 bt(5,1) = shapfnct(5)*meshvelnd(1)
442 bt(5,2) = shapfnct(5)*meshvelnd(2)
443 bt(5,3) = shapfnct(5)*meshvelnd(3)
444 bt(6,1) = shapfnct(6)*meshvelnd(1)
445 bt(6,2) = shapfnct(6)*meshvelnd(2)
446 bt(6,3) = shapfnct(6)*meshvelnd(3)
447 bt(7,1) = shapfnct(7)*meshvelnd(1)
448 bt(7,2) = shapfnct(7)*meshvelnd(2)
449 bt(7,3) = shapfnct(7)*meshvelnd(3)
450 bt(8,1) = shapfnct(8)*meshvelnd(1)
451 bt(8,2) = shapfnct(8)*meshvelnd(2)
452 bt(8,3) = shapfnct(8)*meshvelnd(3)
453 bt(9,1) = shapfnct(9)*meshvelnd(1)
454 bt(9,2) = shapfnct(9)*meshvelnd(2)
455 bt(9,3) = shapfnct(9)*meshvelnd(3)
456 bt(10,1) = shapfnct(10)*meshvelnd(1)
457 bt(10,2) = shapfnct(10)*meshvelnd(2)
458 bt(10,3) = shapfnct(10)*meshvelnd(3)
460 kloc = kloc - rho(imat)*cp(imat)*matmul(bt,
b)*0.25d0*vol
482 rinloc(:) = matmul(kloc,tloc)
502 rnet(n1) = rnet(n1) - r1
503 rnet(n2) = rnet(n2) - r2
504 rnet(n3) = rnet(n3) - r3
505 rnet(n4) = rnet(n4) - r4
506 rnet(n5) = rnet(n5) - r5
507 rnet(n6) = rnet(n6) - r6
508 rnet(n7) = rnet(n7) - r7
509 rnet(n8) = rnet(n8) - r8
510 rnet(n9) = rnet(n9) - r9
511 rnet(n10) = rnet(n10) - r10
subroutine v3d10_thermal(NumEl, NumNP, ElConnVol, Coor, Kappa, Rnet, T, Rho, Cp, matcstet, numat_vol, MeshVel, ElemStart, ElemEnd)