54 s11,s22,s33,s12,s23,s13,&
55 numnp,nstart,nend,numcstet,numat_vol, &
81 REAL*8,
DIMENSION(1:3,1:numnp) :: coor
83 REAL*8,
DIMENSION(1:3*numnp) :: r_in
85 REAL*8,
DIMENSION(1:3*numnp) ::
d
87 REAL*8,
DIMENSION(1:numcstet) :: s11, s22, s33, s12, s23, s13
89 REAL*8 :: u1,u2,u3,u4,v1,v2,v3,v4,w1,w2,w3,w4
91 REAL*8 :: x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
93 REAL*8 :: x1d,x2d,x3d,x4d,y1d,y2d,y3d,y4d,z1d,z2d,z3d,z4d
95 REAL*8 :: x14, x24, x34, y14, y24, y34, z14, z24, z34
99 REAL*8 :: b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12
101 REAL*8 :: dudx,dvdy,dwdz,dudy,dvdx,dvdz,dwdy,dudz,dwdx
103 REAL*8 :: e11,e22,e33,e12,e23,e13
105 INTEGER,
DIMENSION(1:4,1:numcstet) :: lmcstet
107 INTEGER,
DIMENSION(1:numcstet) :: matcstet
109 INTEGER :: n1,n2,n3,n4
111 INTEGER ::
i,
j,nstart,nend
112 INTEGER :: k1n1,k1n2,k1n3,k1n4,k2n1,k2n2,k2n3,k2n4
113 INTEGER :: k3n1,k3n2,k3n3,k3n4
115 REAL*8 :: f11, f12, f13, f21, f22, f23, f31, f32, f33
116 REAL*8 :: j1,jsqrd,jsqrdinv
117 REAL*8 :: c11, c12, c13, c21, c22, c23, c31, c32, c33
118 REAL*8,
DIMENSION(1:numat_vol) :: xmu,xkappa
119 REAL*8,
DIMENSION(1:4,1:4) :: eledb
120 REAL*8,
DIMENSION(1:3,1:3) :: xj
121 REAL*8,
DIMENSION(1:3,1:3) :: xjv0
122 REAL*8 :: weight = 1.d0/6.d0
123 INTEGER ::
id, jd, in, ip
125 REAL*8 :: detjb,detjbv0,evol,theta,press
126 REAL*8 ::
ic, iiic,vx6old0,vx6old
127 REAL*8 :: onethird = 1.d0/3.d0
128 REAL*8 :: val11, val21, val31
130 REAL*8 :: v0x6, v0x6inv
131 REAL*8 :: vx6, vx6inv
133 REAL*8 :: term1, term2, cinv
210 val11 = y24*z34 - z24*y34
211 val21 = -( x24*z34 - z24*x34 )
212 val31 = x24*y34 - y24*x34
214 v0x6 = -( x14*val11 + y14*val21 + z14*val31 )
231 val11 = y24*z34 - z24*y34
232 val21 = -( x24*z34 - z24*x34 )
233 val31 = x24*y34 - y24*x34
235 vx6 = -( x14*val11 + y14*val21 + z14*val31 )
255 b1 = ( (y3-y4)*(z2-z4) - (y2-y4)*(z3-z4) ) * v0x6inv
256 b2 = ( (z3-z4)*(x2-x4) - (z2-z4)*(x3-x4) ) * v0x6inv
257 b3 = ( (x3-x4)*(y2-y4) - (x2-x4)*(y3-y4) ) * v0x6inv
258 b4 = ( (y1-y3)*(z1-z4) - (y1-y4)*(z1-z3) ) * v0x6inv
259 b5 = ( (z1-z3)*(x1-x4) - (z1-z4)*(x1-x3) ) * v0x6inv
260 b6 = ( (x1-x3)*(y1-y4) - (x1-x4)*(y1-y3) ) * v0x6inv
261 b7 = ( (y1-y4)*(z1-z2) - (y1-y2)*(z1-z4) ) * v0x6inv
262 b8 = ( (z1-z4)*(x1-x2) - (z1-z2)*(x1-x4) ) * v0x6inv
263 b9 = ( (x1-x4)*(y1-y2) - (x1-x2)*(y1-y4) ) * v0x6inv
264 b10 = ( (y1-y2)*(z1-z3) - (y1-y3)*(z1-z2) ) * v0x6inv
265 b11 = ( (z1-z2)*(x1-x3) - (z1-z3)*(x1-x2) ) * v0x6inv
266 b12 = ( (x1-x2)*(y1-y3) - (x1-x3)*(y1-y2) ) * v0x6inv
270 f11 = 1.d0 + ( b1*u1 + b4*u2 + b7*u3 + b10*u4 )
271 f22 = 1.d0 + ( b2*v1 + b5*v2 + b8*v3 + b11*v4 )
272 f33 = 1.d0 + ( b3*w1 + b6*w2 + b9*w3 + b12*w4 )
273 f12 = b2*u1 + b5*u2 + b8*u3 + b11*u4
274 f21 = b1*v1 + b4*v2 + b7*v3 + b10*v4
275 f23 = b3*v1 + b6*v2 + b9*v3 + b12*v4
276 f32 = b2*w1 + b5*w2 + b8*w3 + b11*w4
277 f13 = b3*u1 + b6*u2 + b9*u3 + b12*u4
278 f31 = b1*w1 + b4*w2 + b7*w3 + b10*w4
282 press = xkappa(
j)*(theta-1.d0)
284 j1 = f11*(f22*f33-f23*f32)+f12*(f31*f23-f21*f33)+f13*(-f31*f22+f21*f32)
286 WRITE(*,*)
'Volume has become zero for element',
i
293 ic = f11**2+f21**2+f31**2+f12**2+f22**2+f32**2+f13**2+f23**2+f33**2
302 c11 = (f11*f11+f21*f21+f31*f31)
303 c12 = (f11*f12+f21*f22+f31*f32)
304 c13 = (f11*f13+f21*f23+f31*f33)
306 c22 = (f12*f12+f22*f22+f32*f32)
307 c23 = (f12*f13+f22*f23+f32*f33)
310 c33 = (f13*f13+f23*f23+f33*f33)
315 jsqrdinv = 1.d0/jsqrd
317 term1 = xmu(
j)*iiic**(-onethird)
320 cinv = (c22*c33-c23*c32)*jsqrdinv
321 s11(
i) = term1*(1.d0-onethird*
ic*cinv) + term2*cinv
322 cinv = (c11*c33-c31*c13)*jsqrdinv
323 s22(
i) = term1*(1.d0-onethird*
ic*cinv) + term2*cinv
324 cinv = (c11*c22-c12*c21)*jsqrdinv
325 s33(
i) = term1*(1.d0-onethird*
ic*cinv) + term2*cinv
326 cinv = (-c12*c33+c13*c32)*jsqrdinv
327 s12(
i) = cinv*(-term1*onethird*
ic + term2)
328 cinv = (-c11*c23+c13*c21)*jsqrdinv
329 s23(
i) = cinv*(-term1*onethird*
ic + term2)
330 cinv = ( c12*c23-c13*c22)*jsqrdinv
331 s13(
i) = cinv*(-term1*onethird*
ic + term2)
337 r_in(k1n1) = r_in(k1n1) - vol0* &
338 ( s11(
i)*b1*f11 + s22(
i)*b2*f12 + s33(
i)*b3*f13 &
339 + s12(
i)*( b2*f11 + b1*f12 ) &
340 + s23(
i)*( b3*f12 + b2*f13 ) &
341 + s13(
i)*( b3*f11 + b1*f13 ) )
342 r_in(k2n1) = r_in(k2n1) - vol0* &
343 ( s11(
i)*b1*f21 + s22(
i)*b2*f22 + s33(
i)*b3*f23 &
344 + s12(
i)*( b1*f22 + b2*f21 ) &
345 + s23(
i)*( b3*f22 + b2*f23 ) &
346 + s13(
i)*( b3*f21 + b1*f23 ) )
347 r_in(k3n1) = r_in(k3n1) - vol0* &
348 ( s11(
i)*b1*f31 + s22(
i)*b2*f32 + s33(
i)*b3*f33 &
349 + s12(
i)*( b2*f31 + b1*f32 ) &
350 + s23(
i)*( b3*f32 + b2*f33 ) &
351 + s13(
i)*( b3*f31 + b1*f33 ) )
353 r_in(k1n2) = r_in(k1n2) - vol0* &
354 ( s11(
i)*b4*f11 + s22(
i)*b5*f12 + s33(
i)*b6*f13 &
355 + s12(
i)*( b5*f11 + b4*f12 ) &
356 + s23(
i)*( b6*f12 + b5*f13 ) &
357 + s13(
i)*( b6*f11 + b4*f13 ) )
358 r_in(k2n2) = r_in(k2n2) - vol0* &
359 ( s11(
i)*b4*f21 + s22(
i)*b5*f22 + s33(
i)*b6*f23 &
360 + s12(
i)*( b4*f22 + b5*f21 ) &
361 + s23(
i)*( b6*f22 + b5*f23 ) &
362 + s13(
i)*( b6*f21 + b4*f23 ) )
363 r_in(k3n2) = r_in(k3n2) - vol0* &
364 ( s11(
i)*b4*f31 + s22(
i)*b5*f32 + s33(
i)*b6*f33 &
365 + s12(
i)*( b5*f31 + b4*f32 ) &
366 + s23(
i)*( b6*f32 + b5*f33 ) &
367 + s13(
i)*( b6*f31 + b4*f33 ) )
369 r_in(k1n3) = r_in(k1n3) - vol0* &
370 ( s11(
i)*b7*f11 + s22(
i)*b8*f12 + s33(
i)*b9*f13 &
371 + s12(
i)*( b8*f11 + b7*f12 ) &
372 + s23(
i)*( b9*f12 + b8*f13 ) &
373 + s13(
i)*( b9*f11 + b7*f13 ) )
374 r_in(k2n3) = r_in(k2n3) - vol0* &
375 ( s11(
i)*b7*f21 + s22(
i)*b8*f22 + s33(
i)*b9*f23 &
376 + s12(
i)*( b7*f22 + b8*f21 ) &
377 + s23(
i)*( b9*f22 + b8*f23 ) &
378 + s13(
i)*( b9*f21 + b7*f23 ) )
379 r_in(k3n3) = r_in(k3n3) - vol0* &
380 ( s11(
i)*b7*f31 + s22(
i)*b8*f32 + s33(
i)*b9*f33 &
381 + s12(
i)*( b8*f31 + b7*f32 ) &
382 + s23(
i)*( b9*f32 + b8*f33 ) &
383 + s13(
i)*( b9*f31 + b7*f33 ) )
385 r_in(k1n4) = r_in(k1n4) - vol0* &
386 ( s11(
i)*b10*f11 + s22(
i)*b11*f12+s33(
i)*b12*f13 &
387 + s12(
i)*( b11*f11 + b10*f12 ) &
388 + s23(
i)*( b12*f12 + b11*f13 ) &
389 + s13(
i)*( b12*f11 + b10*f13 ) )
390 r_in(k2n4) = r_in(k2n4) - vol0* &
391 ( s11(
i)*b10*f21 + s22(
i)*b11*f22 + s33(
i)*b12*f23 &
392 + s12(
i)*( b10*f22 + b11*f21 ) &
393 + s23(
i)*( b12*f22 + b11*f23 ) &
394 + s13(
i)*( b12*f21 + b10*f23 ) )
395 r_in(k3n4) = r_in(k3n4) - vol0* &
396 ( s11(
i)*b10*f31 + s22(
i)*b11*f32 + s33(
i)*b12*f33 &
397 + s12(
i)*( b11*f31 + b10*f32 ) &
398 + s23(
i)*( b12*f32 + b11*f33 ) &
399 + s13(
i)*( b12*f31 + b10*f33 ) )
404 100
FORMAT(
' Negative Jacobian for element: ',i10)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE ic
subroutine v3d4_neohookeanincompress(coor, matcstet, lmcstet, R_in, d, S11, S22, S33, S12, S23, S13, numnp, nstart, nend, numcstet, numat_vol, xmu, xkappa)
unsigned long id(const Leda_like_handle &x)