54 rnet, t, rho,cp, matcstet,numat_vol,meshvelo,elemstart, elemend)
101 integer :: elemstart, elemend
103 REAL*8,
DIMENSION(1:numat_vol) :: kappa
104 REAL*8,
DIMENSION(1:NumNP) :: t
105 REAL*8,
DIMENSION(1:numat_vol) :: rho,cp
107 REAL*8,
DIMENSION(1:3,1:numnp) :: coor
109 REAL*8,
DIMENSION(1:3*numnp) :: meshvelo
111 REAL*8,
DIMENSION(1:numnp) :: rnet
113 INTEGER,
DIMENSION(1:4,1:NumEl) :: elconnvol
115 INTEGER,
DIMENSION(1:NumEl) :: matcstet
118 INTEGER :: n1,n2,n3,n4
120 REAL*8 :: u1,u2,u3,u4,v1,v2,v3,v4,w1,w2,w3,w4
122 REAL*8 :: vx6, vx6inv, vol
124 REAL*8 :: b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12
126 REAL*8 :: e11,e22,e33,e12,e23,e13
128 REAL*8 :: x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
130 REAL*8 :: x14, x24, x34, y14, y24, y34, z14, z24, z34
132 REAL*8 :: x12, x13, y12, y13, z12, z13
134 REAL*8 :: c11, c21, c31
136 INTEGER ::
i,
j,nstart,nend
137 INTEGER :: imat, igpt
138 INTEGER :: k1n1,k1n2,k1n3,k1n4,k2n1,k2n2,k2n3,k2n4
139 INTEGER :: k3n1,k3n2,k3n3,k3n4
142 REAL*8,
DIMENSION(1:4,1:4) :: kloc
143 REAL*8,
DIMENSION(1:4) :: tloc, rinloc
145 REAL*8,
DIMENSION(1:3,1:4) ::
b
146 REAL*8,
DIMENSION(1:3,1:3) :: kappamatrx = reshape( &
147 (/1.000000000000000,0.000000000000000,0.000000000000000, &
148 0.000000000000000,1.000000000000000,0.000000000000000, &
149 0.000000000000000,0.000000000000000,1.000000000000000/),(/3,3/) )
151 DO i = elemstart, elemend
210 c11 = y24*z34 - z24*y34
211 c21 = -( x24*z34 - z24*x34 )
212 c31 = x24*y34 - y24*x34
214 vx6 = -( x14*c11 + y14*c21 + z14*c31 )
221 b(1,1) = (y34*z24 - y24*z34) * vx6inv
222 b(2,1) = (z34*x24 - z24*x34) * vx6inv
223 b(3,1) = (x34*y24 - x24*y34) * vx6inv
224 b(1,2) = (y13*z14 - y14*z13) * vx6inv
225 b(2,2) = (z13*x14 - z14*x13) * vx6inv
226 b(3,2) = (x13*y14 - x14*y13) * vx6inv
227 b(1,3) = (y14*z12 - y12*z14) * vx6inv
228 b(2,3) = (z14*x12 - z12*x14) * vx6inv
229 b(3,3) = (x14*y12 - x12*y14) * vx6inv
230 b(1,4) = (y12*z13 - y13*z12) * vx6inv
231 b(2,4) = (z12*x13 - z13*x12) * vx6inv
232 b(3,4) = (x12*y13 - x13*y12) * vx6inv
236 kloc = kappa(imat)*matmul(matmul(transpose(
b),kappamatrx),
b)*vol
239 rinloc(:) = matmul(kloc,tloc)
241 rnet(n1) = rnet(n1) - rinloc(1)
242 rnet(n2) = rnet(n2) - rinloc(2)
243 rnet(n3) = rnet(n3) - rinloc(3)
244 rnet(n4) = rnet(n4) - rinloc(4)
subroutine v3d4_thermal(NumEl, NumNP, ElConnVol, Coor, Kappa, Rnet, T, Rho, Cp, matcstet, numat_vol, MeshVelo, ElemStart, ElemEnd)