54 s11,s22,s33,s12,s23,s13,numnp,nstart,nend,numcstet,numat_vol, &
79 REAL*8,
DIMENSION(1:3,1:numnp) :: coor
81 REAL*8,
DIMENSION(1:9,1:numat_vol) :: ci
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
134 REAL*8 :: sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8, sh9, sh10, sh11, sh12
136 REAL*8 :: x14d, x24d, x34d, y14d, y24d, y34d, z14d, z24d, z34d
138 REAL*8 :: x12d, x13d, y12d, y13d, z12d, z13d
139 REAL*8 :: sigma(3,3),f(3,3),ft(3,3),spk2(3,3), btens(3,3)
217 val11 = y24*z34 - z24*y34
218 val21 = -( x24*z34 - z24*x34 )
219 val31 = x24*y34 - y24*x34
221 v0x6 = -( x14*val11 + y14*val21 + z14*val31 )
244 val11 = y24d*z34d - z24d*y34d
245 val21 = -( x24d*z34d - z24d*x34d )
246 val31 = x24d*y34d - y24d*x34d
248 vx6 = -( x14d*val11 + y14d*val21 + z14d*val31 )
269 b1 = ( (y3-y4)*(z2-z4) - (y2-y4)*(z3-z4) ) * v0x6inv
270 b2 = ( (z3-z4)*(x2-x4) - (z2-z4)*(x3-x4) ) * v0x6inv
271 b3 = ( (x3-x4)*(y2-y4) - (x2-x4)*(y3-y4) ) * v0x6inv
272 b4 = ( (y1-y3)*(z1-z4) - (y1-y4)*(z1-z3) ) * v0x6inv
273 b5 = ( (z1-z3)*(x1-x4) - (z1-z4)*(x1-x3) ) * v0x6inv
274 b6 = ( (x1-x3)*(y1-y4) - (x1-x4)*(y1-y3) ) * v0x6inv
275 b7 = ( (y1-y4)*(z1-z2) - (y1-y2)*(z1-z4) ) * v0x6inv
276 b8 = ( (z1-z4)*(x1-x2) - (z1-z2)*(x1-x4) ) * v0x6inv
277 b9 = ( (x1-x4)*(y1-y2) - (x1-x2)*(y1-y4) ) * v0x6inv
278 b10 = ( (y1-y2)*(z1-z3) - (y1-y3)*(z1-z2) ) * v0x6inv
279 b11 = ( (z1-z2)*(x1-x3) - (z1-z3)*(x1-x2) ) * v0x6inv
280 b12 = ( (x1-x2)*(y1-y3) - (x1-x3)*(y1-y2) ) * v0x6inv
284 f11 = 1.d0 + ( b1*u1 + b4*u2 + b7*u3 + b10*u4 )
285 f22 = 1.d0 + ( b2*v1 + b5*v2 + b8*v3 + b11*v4 )
286 f33 = 1.d0 + ( b3*w1 + b6*w2 + b9*w3 + b12*w4 )
287 f12 = b2*u1 + b5*u2 + b8*u3 + b11*u4
288 f21 = b1*v1 + b4*v2 + b7*v3 + b10*v4
289 f23 = b3*v1 + b6*v2 + b9*v3 + b12*v4
290 f32 = b2*w1 + b5*w2 + b8*w3 + b11*w4
291 f13 = b3*u1 + b6*u2 + b9*u3 + b12*u4
292 f31 = b1*w1 + b4*w2 + b7*w3 + b10*w4
296 press = xkappa(
j)*(theta-1.d0)
298 j1 = f11*(f22*f33-f23*f32)+f12*(f31*f23-f21*f33)+f13*(-f31*f22+f21*f32)
300 WRITE(*,*)
'Volume has become zero for element',
i
307 ic = f11**2+f21**2+f31**2+f12**2+f22**2+f32**2+f13**2+f23**2+f33**2
316 c11 = (f11*f11+f21*f21+f31*f31)
317 c12 = (f11*f12+f21*f22+f31*f32)
318 c13 = (f11*f13+f21*f23+f31*f33)
320 c22 = (f12*f12+f22*f22+f32*f32)
321 c23 = (f12*f13+f22*f23+f32*f33)
324 c33 = (f13*f13+f23*f23+f33*f33)
330 btens(1,1) = f11**2+f12**2+f13**2
331 btens(1,2) = f11*f21+f12*f22+f13*f23
332 btens(1,3) = f11*f31+f12*f32+f13*f33
333 btens(2,1) = btens(1,2)
334 btens(2,2) = f21**2+f22**2+f23**2
335 btens(2,3) = f21*f31+f22*f32+f23*f33
336 btens(3,1) = btens(1,3)
337 btens(3,2) = btens(2,3)
338 btens(3,3) = f31**2+f32**2+f33**2
349 jsqrdinv = 1.d0/jsqrd
351 term1 = xmu(
j)*iiic**(-onethird)
354 cinv = (c22*c33-c23*c32)*jsqrdinv
355 s11(
i) = term1*(1.d0-onethird*
ic*cinv) + term2*cinv
356 cinv = (c11*c33-c31*c13)*jsqrdinv
357 s22(
i) = term1*(1.d0-onethird*
ic*cinv) + term2*cinv
358 cinv = (c11*c22-c12*c21)*jsqrdinv
359 s33(
i) = term1*(1.d0-onethird*
ic*cinv) + term2*cinv
360 cinv = (-c12*c33+c13*c32)*jsqrdinv
361 s12(
i) = cinv*(-term1*onethird*
ic + term2)
362 cinv = (-c11*c23+c13*c21)*jsqrdinv
363 s23(
i) = cinv*(-term1*onethird*
ic + term2)
364 cinv = ( c12*c23-c13*c22)*jsqrdinv
365 s13(
i) = cinv*(-term1*onethird*
ic + term2)
370 spk2(2,1) = spk2(1,2)
373 spk2(3,1) = spk2(1,3)
374 spk2(3,2) = spk2(2,3)
387 ft(:,:) = transpose(f(:,:))
397 sh1 = (y34d*z24d - y24d*z34d) * vx6inv
398 sh2 = (z34d*x24d - z24d*x34d) * vx6inv
399 sh3 = (x34d*y24d - x24d*y34d) * vx6inv
400 sh4 = (y13d*z14d - y14d*z13d) * vx6inv
401 sh5 = (z13d*x14d - z14d*x13d) * vx6inv
402 sh6 = (x13d*y14d - x14d*y13d) * vx6inv
403 sh7 = (y14d*z12d - y12d*z14d) * vx6inv
404 sh8 = (z14d*x12d - z12d*x14d) * vx6inv
405 sh9 = (x14d*y12d - x12d*y14d) * vx6inv
406 sh10 = (y12d*z13d - y13d*z12d) * vx6inv
407 sh11 = (z12d*x13d - z13d*x12d) * vx6inv
408 sh12 = (x12d*y13d - x13d*y12d) * vx6inv
413 r_in(k1n1) = r_in(k1n1) - vol* &
414 ( sigma(1,1)*sh1 + sigma(1,2)*sh2 + sigma(1,3)*sh3 )
415 r_in(k2n1) = r_in(k2n1) - vol* &
416 ( sigma(1,2)*sh1 + sigma(2,2)*sh2 + sigma(2,3)*sh3 )
417 r_in(k3n1) = r_in(k3n1) - vol* &
418 ( sigma(1,3)*sh1 + sigma(2,3)*sh2 + sigma(3,3)*sh3 )
420 r_in(k1n2) = r_in(k1n2) - vol* &
421 ( sigma(1,1)*sh4 + sigma(1,2)*sh5 + sigma(1,3)*sh6 )
422 r_in(k2n2) = r_in(k2n2) - vol* &
423 ( sigma(1,2)*sh4 + sigma(2,2)*sh5 + sigma(2,3)*sh6 )
424 r_in(k3n2) = r_in(k3n2) - vol* &
425 ( sigma(1,3)*sh4 + sigma(2,3)*sh5 + sigma(3,3)*sh6 )
427 r_in(k1n3) = r_in(k1n3) - vol* &
428 ( sigma(1,1)*sh7 + sigma(1,2)*sh8 + sigma(1,3)*sh9 )
429 r_in(k2n3) = r_in(k2n3) - vol* &
430 ( sigma(1,2)*sh7 + sigma(2,2)*sh8 + sigma(2,3)*sh9 )
431 r_in(k3n3) = r_in(k3n3) - vol* &
432 ( sigma(1,3)*sh7 + sigma(2,3)*sh8 + sigma(3,3)*sh9 )
434 r_in(k1n4) = r_in(k1n4) - vol* &
435 ( sigma(1,1)*sh10 + sigma(1,2)*sh11 + sigma(1,3)*sh12 )
436 r_in(k2n4) = r_in(k2n4) - vol* &
437 ( sigma(1,2)*sh10 + sigma(2,2)*sh11 + sigma(2,3)*sh12 )
438 r_in(k3n4) = r_in(k3n4) - vol* &
439 ( sigma(1,3)*sh10 + sigma(2,3)*sh11 + sigma(3,3)*sh12 )
446 100
FORMAT(
' Negative Jacobian for element: ',i10)
478 +
a(1,2) * (
a(2,3) *
a(3,1) -
a(2,1) *
a(3,3) ) &
479 +
a(1,3) * (
a(2,1) *
a(3,2) -
a(2,2) *
a(3,1) )
502 REAL*8,
DIMENSION(1:3,1:3) :: sigma, btens
517 xm = xmu/(detf**(5./3.))
520 sigma(
id,jd) = xm*btens(
id,jd)
544 real*8,
DIMENSION(1:3,1:3) :: sigma
**********************************************************************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
real *8 function rmat3_det(a)
Tfloat trace() const
Return the trace of the image, viewed as a matrix.
unsigned long id(const Leda_like_handle &x)
subroutine addpres(ndime, press, sigma)
subroutine v3d4_neohookeanincompressdef(coor, matcstet, lmcstet, R_in, d, ci, S11, S22, S33, S12, S23, S13, numnp, nstart, nend, numcstet, numat_vol, xmu, xkappa)
subroutine neoinccauchystress(ndime, xmu, detf, btens, sigma)