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
97 REAL*8 :: x12, x13, y12, y13, z12, z13
101 REAL*8 :: b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12
103 REAL*8 :: dudx,dvdy,dwdz,dudy,dvdx,dvdz,dwdy,dudz,dwdx
105 REAL*8 :: e11,e22,e33,e12,e23,e13
107 INTEGER,
DIMENSION(1:4,1:numcstet) :: lmcstet
109 INTEGER,
DIMENSION(1:numcstet) :: matcstet
111 INTEGER :: n1,n2,n3,n4
113 INTEGER ::
i,
j,nstart,nend
114 INTEGER :: k1n1,k1n2,k1n3,k1n4,k2n1,k2n2,k2n3,k2n4
115 INTEGER :: k3n1,k3n2,k3n3,k3n4
117 REAL*8 :: f11, f12, f13, f21, f22, f23, f31, f32, f33
118 REAL*8 :: j1,jsqrd,jsqrdinv
119 REAL*8 :: c11, c12, c13, c21, c22, c23, c31, c32, c33
120 REAL*8 :: xmu, xlambda
121 REAL*8,
DIMENSION(1:4,1:4) :: eledb
122 REAL*8,
DIMENSION(1:3,1:3) :: xj
123 REAL*8,
DIMENSION(1:3,1:3) :: xjv0
124 REAL*8 :: weight = 1.d0/6.d0
125 INTEGER ::
id, jd, in, ip
127 REAL*8 :: detjb,detjbv0,evol,theta,xkappa,press
128 REAL*8 ::
ic, iiic,vx6old0,vx6old
129 REAL*8 :: onethird = 1.d0/3.d0
130 REAL*8 :: val11, val21, val31
132 REAL*8 :: v0x6, v0x6inv
133 REAL*8 :: vx6, vx6inv
135 REAL*8 :: term1, term2, cinv
136 REAL*8,
DIMENSION(1:3,1:3) :: btens,princ,sigma
137 REAL*8,
DIMENSION(1:3) :: stret,sprin
139 REAL*8 :: sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8, sh9, sh10, sh11, sh12
140 REAL*8 :: voldef,vx6invdef,vx6def
207 val11 = y24*z34 - z24*y34
208 val21 = -( x24*z34 - z24*x34 )
209 val31 = x24*y34 - y24*x34
211 v0x6 = -( x14*val11 + y14*val21 + z14*val31 )
220 b1 = (y34*z24 - y24*z34) * vx6inv
221 b2 = (z34*x24 - z24*x34) * vx6inv
222 b3 = (x34*y24 - x24*y34) * vx6inv
223 b4 = (y13*z14 - y14*z13) * vx6inv
224 b5 = (z13*x14 - z14*x13) * vx6inv
225 b6 = (x13*y14 - x14*y13) * vx6inv
226 b7 = (y14*z12 - y12*z14) * vx6inv
227 b8 = (z14*x12 - z12*x14) * vx6inv
228 b9 = (x14*y12 - x12*y14) * vx6inv
229 b10 = (y12*z13 - y13*z12) * vx6inv
230 b11 = (z12*x13 - z13*x12) * vx6inv
231 b12 = (x12*y13 - x13*y12) * vx6inv
235 f11 = 1.d0 + ( b1*u1 + b4*u2 + b7*u3 + b10*u4 )
236 f22 = 1.d0 + ( b2*v1 + b5*v2 + b8*v3 + b11*v4 )
237 f33 = 1.d0 + ( b3*w1 + b6*w2 + b9*w3 + b12*w4 )
238 f12 = b2*u1 + b5*u2 + b8*u3 + b11*u4
239 f21 = b1*v1 + b4*v2 + b7*v3 + b10*v4
240 f23 = b3*v1 + b6*v2 + b9*v3 + b12*v4
241 f32 = b2*w1 + b5*w2 + b8*w3 + b11*w4
242 f13 = b3*u1 + b6*u2 + b9*u3 + b12*u4
243 f31 = b1*w1 + b4*w2 + b7*w3 + b10*w4
245 detf = f11*(f22*f33-f23*f32)+f12*(f31*f23-f21*f33)+f13*(-f31*f22+f21*f32)
246 IF(detf.LE.0.d0)
THEN
247 WRITE(*,*)
'Jacobian has become zero for element',
i
254 btens(1,1) = f11**2+f12**2+f13**2
255 btens(1,2) = f21*f11+f12*f22+f13*f23
256 btens(1,3) = f31*f11+f12*f32+f13*f33
257 btens(2,1) = btens(1,2)
258 btens(2,2) = f21**2+f22**2+f23**2
259 btens(2,3) = f21*f31+f32*f22+f23*f33
260 btens(3,1) = btens(1,3)
261 btens(3,2) = btens(2,3)
262 btens(3,3) = f31**2+f32**2+f33**2
264 CALL
jacobi(btens,stret,princ)
304 val11 = y24*z34 - z24*y34
305 val21 = -( x24*z34 - z24*x34 )
306 val31 = x24*y34 - y24*x34
308 vx6def = -( x14*val11 + y14*val21 + z14*val31 )
310 vx6invdef = 1.d0 / vx6def
315 IF(vx6def.LE.0.d0)
THEN
320 sh1 = (y34*z24 - y24*z34) * vx6invdef
321 sh2 = (z34*x24 - z24*x34) * vx6invdef
322 sh3 = (x34*y24 - x24*y34) * vx6invdef
323 sh4 = (y13*z14 - y14*z13) * vx6invdef
324 sh5 = (z13*x14 - z14*x13) * vx6invdef
325 sh6 = (x13*y14 - x14*y13) * vx6invdef
326 sh7 = (y14*z12 - y12*z14) * vx6invdef
327 sh8 = (z14*x12 - z12*x14) * vx6invdef
328 sh9 = (x14*y12 - x12*y14) * vx6invdef
329 sh10 = (y12*z13 - y13*z12) * vx6invdef
330 sh11 = (z12*x13 - z13*x12) * vx6invdef
331 sh12 = (x12*y13 - x13*y12) * vx6invdef
336 r_in(k1n1) = r_in(k1n1) - voldef* &
337 ( s11(
i)*sh1 + s12(
i)*sh2 + s13(
i)*sh3 )
338 r_in(k2n1) = r_in(k2n1) - voldef* &
339 ( s12(
i)*sh1 + s22(
i)*sh2 + s23(
i)*sh3 )
340 r_in(k3n1) = r_in(k3n1) - voldef* &
341 ( s13(
i)*sh1 + s23(
i)*sh2 + s33(
i)*sh3 )
343 r_in(k1n2) = r_in(k1n2) - voldef* &
344 ( s11(
i)*sh4 + s12(
i)*sh5 + s13(
i)*sh6 )
345 r_in(k2n2) = r_in(k2n2) - voldef* &
346 ( s12(
i)*sh4 + s22(
i)*sh5 + s23(
i)*sh6 )
347 r_in(k3n2) = r_in(k3n2) - voldef* &
348 ( s13(
i)*sh4 + s23(
i)*sh5 + s33(
i)*sh6 )
350 r_in(k1n3) = r_in(k1n3) - voldef* &
351 ( s11(
i)*sh7 + s12(
i)*sh8 + s13(
i)*sh9 )
352 r_in(k2n3) = r_in(k2n3) - voldef* &
353 ( s12(
i)*sh7 + s22(
i)*sh8 + s23(
i)*sh9 )
354 r_in(k3n3) = r_in(k3n3) - voldef* &
355 ( s13(
i)*sh7 + s23(
i)*sh8 + s33(
i)*sh9 )
357 r_in(k1n4) = r_in(k1n4) - voldef* &
358 ( s11(
i)*sh10 + s12(
i)*sh11 + s13(
i)*sh12 )
359 r_in(k2n4) = r_in(k2n4) - voldef* &
360 ( s12(
i)*sh10 + s22(
i)*sh11 + s23(
i)*sh12 )
361 r_in(k3n4) = r_in(k3n4) - voldef* &
362 ( s13(
i)*sh10 + s23(
i)*sh11 + s33(
i)*sh12 )
368 100
FORMAT(
' Negative Jacobian for element: ',i10)
subroutine cauchystressprinc(ndime, xmu, xlamb, detf, stret, princ, sigma, sprin)
**********************************************************************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 jacobi(btens, stret, princ)
subroutine v3d4_neohookeanincompressprin(coor, matcstet, lmcstet, R_in, d, ci, S11, S22, S33, S12, S23, S13, numnp, nstart, nend, numcstet, numat_vol, xmu, xkappa, xlambda)
unsigned long id(const Leda_like_handle &x)