OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
mulawglc.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| mulawglc ../engine/source/materials/mat_share/mulawglc.F
25!||--- called by ------------------------------------------------------
26!|| cmain3 ../engine/source/materials/mat_share/cmain3.F
27!||--- calls -----------------------------------------------------
28!|| damping_range_shell ../engine/source/general_controls/damping/damping_range_shell.F90
29!|| damping_range_shell_mom ../engine/source/general_controls/damping/damping_range_shell_mom.F90
30!|| roto ../engine/source/airbag/roto.F
31!|| sigeps01g ../engine/source/materials/mat/mat001/sigeps01g.F
32!|| sigeps02g ../engine/source/materials/mat/mat002/sigeps02g.F
33!|| sigeps22g ../engine/source/materials/mat/mat022/sigeps22g.F
34!|| sigeps36g ../engine/source/materials/mat/mat036/sigeps36g.F
35!|| sigeps43g ../engine/source/materials/mat/mat043/sigeps43g.F
36!|| sigeps56g ../engine/source/materials/mat/mat056/sigeps56g.F
37!|| sigeps60g ../engine/source/materials/mat/mat060/sigeps60g.F
38!|| sigeps86g ../engine/source/materials/mat/mat086/sigeps86g.F
39!|| uroto ../engine/source/airbag/uroto.F
40!||--- uses -----------------------------------------------------
41!|| damping_range_shell_mod ../engine/source/general_controls/damping/damping_range_shell.F90
42!|| damping_range_shell_mom_mod ../engine/source/general_controls/damping/damping_range_shell_mom.F90
43!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
44!|| mat_elem_mod ../common_source/modules/mat_elem/mat_elem_mod.F90
45!|| table_mod ../engine/share/modules/table_mod.F
46!||====================================================================
47 SUBROUTINE mulawglc(ELBUF_STR,
48 1 JFT ,JLT ,PM ,FOR ,MOM ,THK ,
49 2 EINT ,OFF ,GSTR ,DIR ,SHF ,
50 3 MAT ,AREA ,EXX ,EYY ,EXY ,NEL ,
51 4 EXZ ,EYZ ,KXX ,KYY ,KXY ,DM ,
52 5 PID ,TF ,NPF ,MTN ,DT1C ,A1 ,
53 6 BUFMAT ,SSP ,RHO ,VISCMX,IOFC ,A2 ,
54 7 INDX ,NGL ,ZCFAC ,GS ,SIGY ,G ,
55 8 THK0 ,epsd_glob,IPLA ,IGEO ,IPM ,TABLE ,
56 9 IR ,IS ,F_DEF ,ISMSTR,NU ,VOL0 ,
57 A KFTS ,ZSHIFT ,idamp_freq_range,mat_elem,damp_buf,
58 B FOR_G )
59C-----------------------------------------------
60 USE table_mod
61 USE elbufdef_mod
62 use mat_elem_mod
63 use damping_range_shell_mod
64 use damping_range_shell_mom_mod
65C-----------------------------------------------
66C I m p l i c i t T y p e s
67C-----------------------------------------------
68#include "implicit_f.inc"
69#include "comlock.inc"
70C-----------------------------------------------
71C G l o b a l P a r a m e t e r s
72C-----------------------------------------------
73#include "mvsiz_p.inc"
74C-----------------------------------------------
75C C o m m o n B l o c k s
76C-----------------------------------------------
77#include "units_c.inc"
78#include "scr17_c.inc"
79#include "param_c.inc"
80#include "com08_c.inc"
81#include "impl1_c.inc"
82C-----------------------------------------------
83C D u m m y A r g u m e n t s
84C-----------------------------------------------
85 INTEGER JFT, JLT, MTN, IOFC, IPLA,NEL,IR,IS,ISMSTR,KFTS
86 INTEGER MAT(*), PID(*), NPF(*),NGL(*), INDX(*),IPM(NPROPMI,*)
87 integer, intent(in) :: idamp_freq_range ! flag for damping frequency range
88 my_real DM
89 my_real FOR(NEL,5), MOM(NEL,3), THK(*), EINT(JLT,2),PM(NPROPM,*),
90 . OFF(*), GSTR(NEL,8), DIR(*),VISCMX(*),
91 . AREA(*),TF(*),DT1C(*),
92 . EXX(*), EYY(*), EXY(*), EXZ(*), EYZ(*),
93 . KXX(*), KYY(*), KXY(*),BUFMAT(*),SSP(*),RHO(*),
94 . ZCFAC(MVSIZ,2),GS(*),SIGY(*),THK0(*),SHF(*),F_DEF(MVSIZ,8),
95 . A1(MVSIZ),A2(MVSIZ),G(MVSIZ),NU(MVSIZ),VOL0(*)
96 my_real, INTENT(IN) :: zshift
97 my_real, intent(in),dimension(mvsiz) :: epsd_glob !< global strain rate by Gauss pt
98 my_real, DIMENSION(NEL,5), INTENT(INOUT) :: for_g
99 TYPE(ttable) TABLE(*)
100 TYPE(elbuf_struct_), TARGET :: ELBUF_STR
101 type (mat_elem_) ,intent(in) ,target :: mat_elem
102 type (buf_damp_range_) ,intent(in) :: damp_buf ! buffer of damp frequency range
103C-----------------------------------------------
104C L o c a l V a r i a b l e s
105C-----------------------------------------------
106 INTEGER IGTYP, I, NUVAR ,VP,NINDX,IGEO(NPROPGI,*),NVARTMP,
107 . mx,ioff_duct(mvsiz),israte,nuvarv,nvar_damp,imat,
108 . flag_incr
109 my_real
110 . degmb(mvsiz) ,degfx(mvsiz) ,thkn(mvsiz),
111 . depsxx(mvsiz),depsyy(mvsiz),depsxy(mvsiz),depsyz(mvsiz),
112 . depszx(mvsiz),epsxx(mvsiz) ,epsyy(mvsiz) ,epsxy(mvsiz),
113 . epsyz(mvsiz) ,epszx(mvsiz) ,epspxx(mvsiz),epspyy(mvsiz),
114 . epspxy(mvsiz),epspyz(mvsiz),epspzx(mvsiz),sigoxx(mvsiz),
115 . sigoyy(mvsiz),sigoxy(mvsiz),sigoyz(mvsiz),sigozx(mvsiz),
116 . signxx(mvsiz),signyy(mvsiz),signxy(mvsiz),signyz(mvsiz),
117 . signzx(mvsiz),sigvxx(mvsiz),sigvyy(mvsiz),sigvxy(mvsiz),
118 . sigvyz(mvsiz),sigvzx(mvsiz),tens(5,mvsiz),
119 . young, visc, vol2, dtinv,asrate,sh_offset
120 my_real
121 . depbxx(mvsiz),depbyy(mvsiz),depbxy(mvsiz),
122 . momoxx(mvsiz),momoyy(mvsiz),momoxy(mvsiz),
123 . momnxx(mvsiz),momnyy(mvsiz),momnxy(mvsiz),
124 . etse(mvsiz) ,epspl(mvsiz),epsp_loc(mvsiz)
125 my_real, DIMENSION(:) ,POINTER :: uvar
126 my_real, DIMENSION(:) ,POINTER :: uvarv
127 my_real, DIMENSION(NEL) :: off_old
128C-------------------------------------
129 INTEGER, DIMENSION(:), POINTER :: VARTMP
130 TYPE(L_BUFEL_) ,POINTER :: LBUF
131 type(matparam_struct_) , pointer :: matparam
132C-----------------------------------------------
133C S o u r c e L i n es
134C-----------------------------------------------
135C
136 lbuf => elbuf_str%BUFLY(1)%LBUF(ir,is,1)
137C
138 imat = elbuf_str%BUFLY(1)%IMAT
139C for user material laws : pid(i)=pid(1)
140 igtyp = igeo(11,pid(1))
141 IF(mtn==43.OR.mtn==56.OR.mtn==60.OR.mtn==86) THEN
142 nuvar = elbuf_str%BUFLY(1)%NVAR_MAT
143 uvar =>elbuf_str%BUFLY(1)%MAT(ir,is,1)%VAR
144 ENDIF
145 IF(mtn==36) THEN
146 nvartmp= elbuf_str%BUFLY(1)%NVARTMP
147 vartmp=>elbuf_str%BUFLY(1)%MAT(ir,is,1)%VARTMP
148 ENDIF
149 ioff_duct(1:mvsiz) = 0
150 viscmx(1:mvsiz) = zero
151C
152 DO i=jft,jlt
153 degmb(i) = for(i,1)*exx(i)+for(i,2)*eyy(i)+for(i,3)*exy(i)
154 + + for(i,4)*eyz(i)+for(i,5)*exz(i)
155 degfx(i) = mom(i,1)*kxx(i)+mom(i,2)*kyy(i)+mom(i,3)*kxy(i)
156 ENDDO
157C
158 DO i=jft,jlt
159 thkn(i) = thk(i)
160 ENDDO
161 etse(1:mvsiz) = zero
162 off_old(1:nel) = off(1:nel)
163 for(jft:jlt,1:5) = for_g(jft:jlt,1:5)
164! compute the inverse of dt and save the result
165 dtinv = dt1 / max(dt1**2,em20) ! inverse of dt
166!----------------------------------------------------------------------
167 ! global strain rate for materials which still use it
168 ! it may be overloaded by local material law strain rate
169 ! the same value should be used in material and failure models
170!
171 israte = ipm(3,imat)
172 if (israte > 0) then
173 asrate = min(one, pm(9,imat)*dt1)
174 else
175 asrate = one
176 end if
177 if (elbuf_str%bufly(1)%l_epsd > 0) then
178 epspl(1:nel) = asrate*epsd_glob(1:nel) + (one-asrate)*lbuf%epsd(1:nel)
179 else
180 epspl(1:nel) = zero
181 end if
182C-----------------------
183C GLOBAL PLASTICITY
184C-----------------------
185 DO i=jft,jlt
186 signxx(i) = zero
187 signyy(i) = zero
188 signxy(i) = zero
189 signyz(i) = zero
190 signzx(i) = zero
191 sigvxx(i) = zero
192 sigvyy(i) = zero
193 sigvxy(i) = zero
194 sigvyz(i) = zero
195 sigvzx(i) = zero
196 ENDDO
197 DO i=jft,jlt
198 momnxx(i) = zero
199 momnyy(i) = zero
200 momnxy(i) = zero
201 ENDDO
202C
203 IF (igtyp == 1) THEN
204 DO i=jft,jlt
205 depsxx(i) = exx(i)
206 depsyy(i) = eyy(i)
207 depsxy(i) = exy(i)
208 depsyz(i) = eyz(i)
209 depszx(i) = exz(i)
210 epsxx(i) = gstr(i,1)
211 epsyy(i) = gstr(i,2)
212 epsxy(i) = gstr(i,3)
213 epsyz(i) = gstr(i,4)
214 epszx(i) = gstr(i,5)
215 sigoxx(i) = for(i,1)
216 sigoyy(i) = for(i,2)
217 sigoxy(i) = for(i,3)
218 sigoyz(i) = for(i,4)
219 sigozx(i) = for(i,5)
220 ENDDO
221 DO i=jft,jlt
222 depbxx(i) = kxx(i)
223 depbyy(i) = kyy(i)
224 depbxy(i) = kxy(i)
225 momoxx(i) = mom(i,1)
226 momoyy(i) = mom(i,2)
227 momoxy(i) = mom(i,3)
228 ENDDO
229 ELSE
230 DO i=jft,jlt
231 tens(1,i) = exx(i)
232 tens(2,i) = eyy(i)
233 tens(3,i) = half*exy(i)
234 tens(4,i) = half*eyz(i)
235 tens(5,i) = half*exz(i)
236 ENDDO
237 CALL roto(jft,jlt,tens,dir,nel)
238 DO i=jft,jlt
239 depsxx(i) = tens(1,i)
240 depsyy(i) = tens(2,i)
241 depsxy(i) = two*tens(3,i)
242 depsyz(i) = two*tens(4,i)
243 depszx(i) = two*tens(5,i)
244 ENDDO
245 DO i=jft,jlt
246 tens(1,i) = gstr(i,1)
247 tens(2,i) = gstr(i,2)
248 tens(3,i) = half*gstr(i,3)
249 tens(4,i) = half*gstr(i,4)
250 tens(5,i) = half*gstr(i,5)
251 ENDDO
252 CALL roto(jft,jlt,tens,dir,nel)
253 DO i=jft,jlt
254 epsxx(i) = tens(1,i)
255 epsyy(i) = tens(2,i)
256 epsxy(i) = two*tens(3,i)
257 epsyz(i) = two*tens(4,i)
258 epszx(i) = two*tens(5,i)
259 ENDDO
260 DO i=jft,jlt
261 tens(1,i) = for(i,1)
262 tens(2,i) = for(i,2)
263 tens(3,i) = for(i,3)
264 tens(4,i) = for(i,4)
265 tens(5,i) = for(i,5)
266 ENDDO
267 CALL roto(jft,jlt,tens,dir,nel)
268 DO i=jft,jlt
269 sigoxx(i) = tens(1,i)
270 sigoyy(i) = tens(2,i)
271 sigoxy(i) = tens(3,i)
272 sigoyz(i) = tens(4,i)
273 sigozx(i) = tens(5,i)
274 ENDDO
275 DO i=jft,jlt
276 tens(1,i) = kxx(i)
277 tens(2,i) = kyy(i)
278 tens(3,i) = kxy(i)
279 tens(4,i) = zero
280 tens(5,i) = zero
281 ENDDO
282 CALL roto(jft,jlt,tens,dir,nel)
283 DO i=jft,jlt
284 depbxx(i) = tens(1,i)
285 depbyy(i) = tens(2,i)
286 depbxy(i) = tens(3,i)
287 ENDDO
288 DO i=jft,jlt
289 tens(1,i) = mom(i,1)
290 tens(2,i) = mom(i,2)
291 tens(3,i) = mom(i,3)
292 tens(4,i) = zero
293 tens(5,i) = zero
294 ENDDO
295 CALL roto(jft,jlt,tens,dir,nel)
296 DO i=jft,jlt
297 momoxx(i) = tens(1,i)
298 momoyy(i) = tens(2,i)
299 momoxy(i) = tens(3,i)
300 ENDDO
301 ENDIF ! IF (IGTYP == 1)
302C
303 DO i=jft,jlt
304 epspxx(i) = depsxx(i)*dtinv
305 epspyy(i) = depsyy(i)*dtinv
306 epspxy(i) = depsxy(i)*dtinv
307 epspyz(i) = depsyz(i)*dtinv
308 epspzx(i) = depszx(i)*dtinv
309 ENDDO
310C-------------------------------------------
311C ELASTIC STRESS +
312C PLASTICLY ADMISSIBLE STRESS
313C-------------------------------------------
314 IF (mtn == 1) THEN
315 CALL sigeps01g(jft ,jlt ,g ,thkn ,off ,
316 1 gs ,a1 ,a2 ,nu ,thk0 ,
317 2 nel ,f_def ,ismstr ,depsxx ,depsyy ,
318 3 depsxy ,depsyz ,depszx ,depbxx ,depbyy ,
319 4 depbxy ,sigoxx ,sigoyy ,sigoxy ,sigoyz ,
320 5 sigozx ,momoxx ,momoyy ,momoxy ,signxx ,
321 6 signyy ,signxy ,signyz ,signzx ,momnxx ,
322 7 momnyy ,momnxy )
323 ELSEIF (mtn == 2) THEN
324 vp = ipm(255,mx)
325 CALL sigeps02g(elbuf_str,
326 1 jft ,jlt ,pm ,for ,mom ,
327 2 thkn ,eint ,off ,dt1c ,israte ,
328 3 g ,a1 ,a2 ,vol0 ,nu ,
329 4 thk0 ,gs ,epspl ,iofc ,kfts ,
330 5 ngl ,indx ,ipla ,ir ,is ,
331 6 degmb ,degfx ,depsxx ,depsyy ,mx ,
332 7 depsxy ,depsyz ,depszx ,depbxx ,depbyy ,
333 8 depbxy ,sigoxx ,sigoyy ,sigoxy ,sigoyz ,
334 9 sigozx ,momoxx ,momoyy ,momoxy ,signxx ,
335 a signyy ,signxy ,signyz ,signzx ,momnxx ,
336 b momnyy ,momnxy ,etse ,exz ,eyz ,
337 c nel ,ioff_duct,vp , nuvar ,uvar )
338 ELSEIF (mtn == 22) THEN
339 CALL sigeps22g(elbuf_str,
340 1 jft ,jlt ,pm ,for ,mom ,
341 2 thkn ,off ,dt1c ,nu ,thk0 ,
342 3 gs ,epspl ,iofc ,indx ,nel ,
343 4 ngl ,exz ,eyz ,mx ,ioff_duct,
344 5 degmb ,degfx ,depsxx ,depsyy ,depsxy ,
345 6 depsyz ,depszx ,depbxx ,depbyy ,depbxy ,
346 7 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
347 8 momoxx ,momoyy ,momoxy ,signxx ,signyy ,
348 9 signxy ,signyz ,signzx ,momnxx ,momnyy ,
349 a momnxy )
350 ELSEIF (mtn == 36) THEN
351 CALL sigeps36g(
352 1 jlt ,npf ,
353 2 tf ,tt ,bufmat ,rho ,
354 3 area ,eint ,thk0 ,
355 4 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
356 5 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
357 5 depbxx ,depbyy ,depbxy ,
358 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
359 7 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
360 7 momoxx ,momoyy ,momoxy ,
361 8 signxx ,signyy ,signxy ,signyz ,signzx ,
362 8 momnxx ,momnyy ,momnxy ,
363 9 sigvxx ,sigvyy ,sigvxy ,sigvyz ,sigvzx ,
364 a ssp ,viscmx ,thkn ,lbuf%PLA ,
365 b off ,ngl ,ipm ,mat ,etse ,
366 c gs ,sigy ,epspl ,israte ,ipla,
367 d shf ,nvartmp,vartmp)
368 ELSEIF (mtn == 43) THEN
369 CALL sigeps43g(
370 1 jlt ,nuvar ,npf ,
371 2 tf ,tt ,bufmat ,rho ,
372 3 area ,eint ,thk0 ,
373 4 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
374 5 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
375 5 depbxx ,depbyy ,depbxy ,
376 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
377 7 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
378 7 momoxx ,momoyy ,momoxy ,
379 8 signxx ,signyy ,signxy ,signyz ,signzx ,
380 8 momnxx ,momnyy ,momnxy ,
381 9 sigvxx ,sigvyy ,sigvxy ,sigvyz ,sigvzx ,
382 a ssp ,viscmx ,thkn ,lbuf%PLA,uvar ,
383 b off ,ngl ,ipm ,mat ,etse ,
384 c gs ,sigy ,shf ,lbuf%SEQ,epspl )
385 ELSEIF (mtn == 56) THEN
386 CALL sigeps56g(
387 1 jlt ,nuvar ,npf ,
388 2 tf ,tt ,bufmat ,rho ,
389 3 area ,eint ,thk0 ,
390 4 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
391 5 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
392 5 depbxx ,depbyy ,depbxy ,
393 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
394 7 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
395 7 momoxx ,momoyy ,momoxy ,
396 8 signxx ,signyy ,signxy ,signyz ,signzx ,
397 8 momnxx ,momnyy ,momnxy ,
398 9 sigvxx ,sigvyy ,sigvxy ,sigvyz ,sigvzx ,
399 a ssp ,viscmx ,thkn ,lbuf%PLA,uvar ,
400 b off ,ngl ,ipm ,mat ,etse ,
401 c gs ,sigy ,epspl ,israte ,ipla)
402 ELSEIF (mtn == 60) THEN
403 CALL sigeps60g(
404 1 jlt ,nuvar ,npf ,
405 2 tf ,tt ,bufmat ,rho ,
406 3 area ,eint ,thk0 ,
407 4 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
408 5 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
409 5 depbxx ,depbyy ,depbxy ,
410 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
411 7 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
412 7 momoxx ,momoyy ,momoxy ,
413 8 signxx ,signyy ,signxy ,signyz ,signzx ,
414 8 momnxx ,momnyy ,momnxy ,
415 9 sigvxx ,sigvyy ,sigvxy ,sigvyz ,sigvzx ,
416 a ssp ,viscmx ,thkn ,lbuf%PLA,uvar ,
417 b off ,ngl ,ipm ,mat ,etse ,
418 c gs ,sigy ,epspl ,israte ,ipla ,
419 d shf )
420 ELSEIF (mtn == 86) THEN
421 CALL sigeps86g(
422 1 jlt ,nuvar ,npf ,
423 2 tf ,tt ,bufmat ,rho ,
424 3 area ,eint ,thk0 ,
425 4 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
426 5 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
427 5 depbxx ,depbyy ,depbxy ,
428 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
429 7 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
430 7 momoxx ,momoyy ,momoxy ,
431 8 signxx ,signyy ,signxy ,signyz ,signzx ,
432 8 momnxx ,momnyy ,momnxy ,
433 9 sigvxx ,sigvyy ,sigvxy ,sigvyz ,sigvzx ,
434 a ssp ,viscmx ,thkn ,lbuf%PLA,uvar ,
435 b off ,ngl ,ipm ,mat ,etse ,
436 c gs ,sigy ,epspl ,israte ,ipla)
437 ENDIF ! IF (MTN == 1) THEN
438C-----------------------
439C DAMPING
440C-----------------------
441 if (idamp_freq_range > 0) then
442 nuvarv = elbuf_str%BUFLY(1)%NVAR_VISC
443 uvarv => elbuf_str%BUFLY(1)%VISC(ir,is,1)%VAR
444 nvar_damp = 28 + 16
445 flag_incr = 1
446 call damping_range_shell(damp_buf,nel ,nuvarv ,nvar_damp,dt1 ,
447 . rho ,ssp ,mat_elem%mat_param(imat)%young,mat_elem%mat_param(imat)%shear,
448 . epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
449 . sigvxx ,sigvyy ,sigvxy ,sigvyz ,sigvzx ,
450 . uvarv ,off ,etse ,flag_incr)
451
452 call damping_range_shell_mom(damp_buf,nel ,nuvarv ,dt1 ,dtinv ,
453 . mat_elem%mat_param(imat)%young,mat_elem%mat_param(imat)%shear,depbxx ,depbyy ,depbxy ,
454 . momnxx ,momnyy ,momnxy ,thk0 ,uvarv ,
455 . off ,etse)
456 endif
457C-----------------------
458C ORTHOTROPE
459C-----------------------
460 IF (igtyp /= 1) THEN
461 DO i=jft,jlt
462 tens(1,i)= signxx(i)
463 tens(2,i)= signyy(i)
464 tens(3,i)= signxy(i)
465 tens(4,i)= signyz(i)
466 tens(5,i)= signzx(i)
467 ENDDO
468 CALL uroto(jft,jlt,tens,dir,nel)
469 DO i=jft,jlt
470 signxx(i)= tens(1,i)
471 signyy(i)= tens(2,i)
472 signxy(i)= tens(3,i)
473 signyz(i)= tens(4,i)
474 signzx(i)= tens(5,i)
475 ENDDO
476 DO i=jft,jlt
477 tens(1,i)= sigvxx(i)
478 tens(2,i)= sigvyy(i)
479 tens(3,i)= sigvxy(i)
480 tens(4,i)= sigvyz(i)
481 tens(5,i)= sigvzx(i)
482 ENDDO
483 CALL uroto(jft,jlt,tens,dir,nel)
484 DO i=jft,jlt
485 sigvxx(i)= tens(1,i)
486 sigvyy(i)= tens(2,i)
487 sigvxy(i)= tens(3,i)
488 sigvyz(i)= tens(4,i)
489 sigvzx(i)= tens(5,i)
490 ENDDO
491 DO i=jft,jlt
492 tens(1,i)= momnxx(i)
493 tens(2,i)= momnyy(i)
494 tens(3,i)= momnxy(i)
495 tens(4,i)= zero
496 tens(5,i)= zero
497 ENDDO
498 CALL uroto(jft,jlt,tens,dir,nel)
499 DO i=jft,jlt
500 momnxx(i)= tens(1,i)
501 momnyy(i)= tens(2,i)
502 momnxy(i)= tens(3,i)
503 ENDDO
504 ENDIF ! IF (IGTYP /= 1)
505C-----------------------
506C FORCES ET MOMENTS
507C-----------------------
508 DO i=jft,jlt
509 for_g(i,1) = signxx(i)+sigvxx(i)
510 for_g(i,2) = signyy(i)+sigvyy(i)
511 for_g(i,3) = signxy(i)+sigvxy(i)
512 for_g(i,4) = signyz(i)+sigvyz(i)
513 for_g(i,5) = signzx(i)+sigvzx(i)
514 mom(i,1) = momnxx(i)
515 mom(i,2) = momnyy(i)
516 mom(i,3) = momnxy(i)
517 ENDDO
518 for(jft:jlt,1:5) = for_g(jft:jlt,1:5)
519C----------------------
520C THICKNESS UPDATE
521C----------------------
522 DO i=jft,jlt
523 thk(i) = max(thkn(i),em30)
524 ENDDO
525C-----------------------------------------------
526C FACTEURS POUR COQUES B.L. (Zeng&Combescure)
527C-----------------------------------------------
528 DO i=jft,jlt
529 zcfac(i,1) = etse(i)
530 zcfac(i,2) = zcfac(i,1)
531 ENDDO
532C---------------------------
533C offset
534C---------------------------
535 IF (zshift /= zero) THEN
536 DO i=jft,jlt
537 sh_offset = zshift*thk(i)
538 mom(i,1:3) = mom(i,1:3) + for(i,1:3) *sh_offset*sh_offset
539 ENDDO
540 ENDIF
541C---------------------------
542C VISCOSITE DE MEMBRANE
543C---------------------------
544 IF (dm > zero) THEN
545 DO i=jft,jlt
546 viscmx(i) = max(viscmx(i),dm)
547 visc = onep414*dm*rho(i)*ssp(i)*sqrt(area(i))*dtinv
548 for(i,1) = for(i,1) + visc*(exx(i)+half*eyy(i))
549 for(i,2) = for(i,2) + visc*(eyy(i)+half*exx(i))
550 for(i,3) = for(i,3) + visc* exy(i)*third
551 ENDDO
552 ENDIF
553C
554 DO i=jft,jlt
555 for(i,1)=for(i,1)*off(i)
556 for(i,2)=for(i,2)*off(i)
557 for(i,3)=for(i,3)*off(i)
558 for(i,4)=for(i,4)*off(i)
559 for(i,5)=for(i,5)*off(i)
560 mom(i,1)=mom(i,1)*off(i)
561 mom(i,2)=mom(i,2)*off(i)
562 mom(i,3)=mom(i,3)*off(i)
563 ENDDO
564C
565 DO i=jft,jlt
566 degmb(i) = degmb(i)+ for(i,1)*exx(i)+for(i,2)*eyy(i)
567 . + for(i,3)*exy(i)+for(i,4)*eyz(i)+for(i,5)*exz(i)
568 degfx(i) = degfx(i)+mom(i,1)*kxx(i)+mom(i,2)*kyy(i)
569 . +mom(i,3)*kxy(i)
570 vol2 = half*thk0(i)*area(i)*off(i)
571 eint(i,1) = eint(i,1) + degmb(i)*vol2
572 eint(i,2) = eint(i,2) + degfx(i)*thk0(i)*vol2
573 ENDDO
574C----------------------------
575C TEST DE RUPTURE DUCTILE
576C INDX utilise dans IELOF
577C----------------------------
578 nindx=0
579 DO i=jft,jlt
580 IF (off(i) == four_over_5 . and. ioff_duct(i) == 0) THEN
581 off(i)= zero
582 nindx=nindx+1
583 indx(nindx)=i
584 ENDIF
585 ENDDO
586c--------------------------------------------------------
587c SHOOTING NODES ALGORITHM ACTIVATION
588c--------------------------------------------------------
589 DO i = 1,nel
590 IF ((off_old(i) > zero) .AND. (off(i) == zero)) THEN
591 idel7nok = 1
592 ENDIF
593 ENDDO
594c--------------------------------------------------------
595 IF (nindx > 0) THEN
596 IF (imconv == 1) THEN
597 DO i = 1, nindx
598#include "lockon.inc"
599 WRITE(iout, 1000) ngl(indx(i))
600 WRITE(istdo,1100) ngl(indx(i)),tt
601#include "lockoff.inc"
602 ENDDO
603 ENDIF
604 ENDIF
605 iofc = nindx
606C-----------
607 1000 FORMAT(1x,'-- RUPTURE OF SHELL ELEMENT NUMBER ',i10)
608 1100 FORMAT(1x,'-- RUPTURE OF SHELL ELEMENT :',i10,' AT TIME :',g11.4)
609C-----------
610 RETURN
611 END
subroutine roto(jft, jlt, tab, ltab, dir, nel)
Definition cepsini.F:724
subroutine uroto(jft, jlt, tab, ltab, dir, nel)
Definition cepsini.F:774
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine mulawglc(elbuf_str, jft, jlt, pm, for, mom, thk, eint, off, gstr, dir, shf, mat, area, exx, eyy, exy, nel, exz, eyz, kxx, kyy, kxy, dm, pid, tf, npf, mtn, dt1c, a1, bufmat, ssp, rho, viscmx, iofc, a2, indx, ngl, zcfac, gs, sigy, g, thk0, epsd_glob, ipla, igeo, ipm, table, ir, is, f_def, ismstr, nu, vol0, kfts, zshift, idamp_freq_range, mat_elem, damp_buf, for_g)
Definition mulawglc.F:59
subroutine sigeps01g(jft, jlt, g, thk, off, gs, a1, a2, nu, thk0, nel, f_def, ismstr, depsxx, depsyy, depsxy, depsyz, depszx, depbxx, depbyy, depbxy, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, momoxx, momoyy, momoxy, signxx, signyy, signxy, signyz, signzx, momnxx, momnyy, momnxy)
Definition sigeps01g.F:36
subroutine sigeps02g(elbuf_str, jft, jlt, pm, for, mom, thk, eint, off, dt1c, israte, g, a1, a2, vol0, nu, thk0, gs, epsp, iofc, kfts, ngl, indx, ipla, ir, is, degmb, degfx, depsxx, depsyy, mx, depsxy, depsyz, depszx, depbxx, depbyy, depbxy, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, momoxx, momoyy, momoxy, signxx, signyy, signxy, signyz, signzx, momnxx, momnyy, momnxy, etse, exz, eyz, nel, ioff_duct, vp, nuvar, uvar)
Definition sigeps02g.F:43
subroutine sigeps22g(elbuf_str, jft, jlt, pm, for, mom, thk, off, dt1c, nu, thk0, gs, epsp, iofc, indx, nel, ngl, exz, eyz, mx, ioff_duct, degmb, degfx, depsxx, depsyy, depsxy, depsyz, depszx, depbxx, depbyy, depbxy, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, momoxx, momoyy, momoxy, signxx, signyy, signxy, signyz, signzx, momnxx, momnyy, momnxy)
Definition sigeps22g.F:41
subroutine sigeps36g(nel, npf, tf, time, uparam, rho0, area, eint, thk0, epspxx, epspyy, epspxy, epspyz, epspzx, depsxx, depsyy, depsxy, depsyz, depszx, depbxx, depbyy, depbxy, epsxx, epsyy, epsxy, epsyz, epszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, momoxx, momoyy, momoxy, signxx, signyy, signxy, signyz, signzx, momnxx, momnyy, momnxy, sigvxx, sigvyy, sigvxy, sigvyz, sigvzx, soundsp, viscmax, thk, pla, off, ngl, ipm, mat, etse, gs, yld, epsp, israte, ipla, shf, nvartmp, vartmp)
Definition sigeps36g.F:48
subroutine sigeps43g(nel, nuvar, npf, tf, time, uparam, rho0, area, eint, thk0, epspxx, epspyy, epspxy, epspyz, epspzx, depsxx, depsyy, depsxy, depsyz, depszx, depbxx, depbyy, depbxy, epsxx, epsyy, epsxy, epsyz, epszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, momoxx, momoyy, momoxy, signxx, signyy, signxy, signyz, signzx, momnxx, momnyy, momnxy, sigvxx, sigvyy, sigvxy, sigvyz, sigvzx, soundsp, viscmax, thk, pla, uvar, off, ngl, ipm, mat, etse, gs, sigy, shf, seq_output, epsp)
Definition sigeps43g.F:47
subroutine sigeps56g(nel, nuvar, npf, tf, time, uparam, rho0, area, eint, thk0, epspxx, epspyy, epspxy, epspyz, epspzx, depsxx, depsyy, depsxy, depsyz, depszx, depbxx, depbyy, depbxy, epsxx, epsyy, epsxy, epsyz, epszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, momoxx, momoyy, momoxy, signxx, signyy, signxy, signyz, signzx, momnxx, momnyy, momnxy, sigvxx, sigvyy, sigvxy, sigvyz, sigvzx, soundsp, viscmax, thk, pla, uvar, off, ngl, ipm, mat, etse, gs, yld, epsp, israte, ipla)
Definition sigeps56g.F:46
subroutine sigeps60g(nel, nuvar, npf, tf, time, uparam, rho0, area, eint, thk0, epspxx, epspyy, epspxy, epspyz, epspzx, depsxx, depsyy, depsxy, depsyz, depszx, depbxx, depbyy, depbxy, epsxx, epsyy, epsxy, epsyz, epszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, momoxx, momoyy, momoxy, signxx, signyy, signxy, signyz, signzx, momnxx, momnyy, momnxy, sigvxx, sigvyy, sigvxy, sigvyz, sigvzx, soundsp, viscmax, thk, pla, uvar, off, ngl, ipm, mat, etse, gs, yld, epsp, israte, ipla, shf)
Definition sigeps60g.F:49
subroutine sigeps86g(nel, nuvar, npf, tf, time, uparam, rho0, area, eint, thk0, epspxx, epspyy, epspxy, epspyz, epspzx, depsxx, depsyy, depsxy, depsyz, depszx, depbxx, depbyy, depbxy, epsxx, epsyy, epsxy, epsyz, epszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, momoxx, momoyy, momoxy, signxx, signyy, signxy, signyz, signzx, momnxx, momnyy, momnxy, sigvxx, sigvyy, sigvxy, sigvyz, sigvzx, soundsp, viscmax, thk, pla, uvar, off, ngl, ipm, mat, etse, gs, yld, epsp, israte, ipla)
Definition sigeps86g.F:46