OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cdk6forc3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "param_c.inc"
#include "com04_c.inc"
#include "com08_c.inc"
#include "scr18_c.inc"
#include "parit_c.inc"
#include "scr14_c.inc"
#include "vectorize.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine cdk6forc3 (timers, elbuf_str, jft, jlt, pm, ixtg, x, f, m, v, r, failwave, nvc, mtn, geo, tf, npf, bufmat, pmsav, dt2t, neltst, ityptst, stifn, stifr, fsky, iadtg, group_param, epsdot, offset, iparttg, thke, f11, f12, f13, f21, f22, f23, f31, f32, f33, f14, f15, f16, f24, f25, f26, f34, f35, f36, mat_elem, nel, istrain, ihbe, ithk, iofc, ipla, nft, ismstr, npt, kfts, ixtg1, iadtg1, igeo, ipm, ifailure, iexpan, gresav, grth, igrth, mstg, dmeltg, jsms, table, iparg, sensors, ptg, jthe, condn, condnsky, isubstack, stack, itask, drape_sh3n, ipri, nloc_dmg, indx_drape, igre, jtur, dt, ncycle, snpc, stf, glob_therm, nxlaymax, idel7nok, userl_avail, maxfunc, sbufmat, ipart, lipart1)

Function/Subroutine Documentation

◆ cdk6forc3()

subroutine cdk6forc3 ( type(timer_), intent(inout) timers,
type (elbuf_struct_), target elbuf_str,
integer jft,
integer jlt,
pm,
integer, dimension(nixtg,*) ixtg,
x,
f,
m,
v,
r,
type (failwave_str_), target failwave,
integer nvc,
integer mtn,
geo,
tf,
integer, dimension(*) npf,
bufmat,
pmsav,
dt2t,
integer neltst,
integer ityptst,
stifn,
stifr,
fsky,
integer, dimension(3,*) iadtg,
type (group_param_) group_param,
epsdot,
integer offset,
integer, dimension(*) iparttg,
thke,
f11,
f12,
f13,
f21,
f22,
f23,
f31,
f32,
f33,
f14,
f15,
f16,
f24,
f25,
f26,
f34,
f35,
f36,
type (mat_elem_), intent(inout) mat_elem,
integer nel,
integer istrain,
integer ihbe,
integer ithk,
integer iofc,
integer ipla,
integer nft,
integer ismstr,
integer npt,
integer kfts,
integer, dimension(4,*) ixtg1,
integer, dimension(3,*) iadtg1,
integer, dimension(npropgi,*) igeo,
integer, dimension(npropmi,*) ipm,
integer ifailure,
integer iexpan,
gresav,
integer, dimension(*) grth,
integer, dimension(*) igrth,
mstg,
dmeltg,
integer jsms,
type (ttable), dimension(*) table,
integer, dimension(*) iparg,
type (sensors_), intent(inout) sensors,
ptg,
integer jthe,
condn,
condnsky,
integer isubstack,
type (stack_ply) stack,
integer itask,
type (drape_), dimension(numeltg_drape) drape_sh3n,
integer ipri,
type (nlocal_str_), target nloc_dmg,
integer, dimension(stdrape) indx_drape,
integer, intent(in) igre,
integer, intent(in) jtur,
type (dt_), intent(in) dt,
integer, intent(in) ncycle,
integer, intent(in) snpc,
integer, intent(in) stf,
type (glob_therm_), intent(inout) glob_therm,
integer, intent(in) nxlaymax,
integer, intent(inout) idel7nok,
integer, intent(in) userl_avail,
integer, intent(in) maxfunc,
integer, intent(in) sbufmat,
integer, dimension(lipart1,npart), intent(in) ipart,
integer, intent(in) lipart1 )

Definition at line 59 of file cdk6forc3.F.

85C-----------------------------------------------
86C M o d u l e s
87C-----------------------------------------------
88 USE timer_mod
89 USE mat_elem_mod
90 USE table_mod
91 USE stack_mod
92 USE failwave_mod
94 USE drape_mod
95 USE sensor_mod
96 USE elbufdef_mod
97 USE dt_mod
98 use glob_therm_mod
99 use dttherm_mod
100 use element_mod , only : nixtg
101C-----------------------------------------------
102C I m p l i c i t T y p e s
103C-----------------------------------------------
104#include "implicit_f.inc"
105C-----------------------------------------------
106C G l o b a l P a r a m e t e r s
107C-----------------------------------------------
108#include "mvsiz_p.inc"
109C-----------------------------------------------
110C C o m m o n B l o c k s
111C-----------------------------------------------
112#include "param_c.inc"
113#include "com04_c.inc"
114#include "com08_c.inc"
115#include "scr18_c.inc"
116#include "parit_c.inc"
117#include "scr14_c.inc"
118C-----------------------------------------------
119C D u m m y A r g u m e n t s
120C-----------------------------------------------
121 TYPE(TIMER_), INTENT(INOUT) :: TIMERS
122 INTEGER,INTENT(IN) :: USERL_AVAIL ! Flag for User libraries availability
123 INTEGER,INTENT(IN) :: MAXFUNC ! Maximum number of functions
124 INTEGER,INTENT(INOUT) :: IDEL7NOK ! Element deletion flag for IDEL flag in contact interfaces
125 INTEGER,INTENT(IN) :: SBUFMAT ! Buffer material flag
126 INTEGER,INTENT(IN) :: STF ! Size of TF
127 INTEGER,INTENT(IN) :: SNPC ! Size of NPC
128 INTEGER,INTENT(IN) :: NCYCLE ! Current cycle number
129 INTEGER, INTENT(IN) :: NXLAYMAX
130 INTEGER, INTENT(IN) :: JTUR
131 INTEGER, INTENT(IN) :: IGRE
132 INTEGER JFT, JLT, NVC, MTN,NELTST,ITYPTST,OFFSET,
133 . NEL,ISTRAIN,IHBE ,NPT,KFTS,IUN,
134 . ITHK,IOFC,IPLA,NFT,ISMSTR,IFAILURE,IEXPAN , JSMS , JTHE,
135 . ISUBSTACK,ITASK,IPRI
136 INTEGER NPF(*),IXTG(NIXTG,*),IADTG(3,*),IXTG1(4,*),IADTG1(3,*),
137 . IPARTTG(*),IGEO(NPROPGI,*),IPM(NPROPMI,*),GRTH(*),IGRTH(*),
138 . IPARG(*),INDX_DRAPE(STDRAPE)
139C REAL
140 my_real
141 . pm(npropm,*), x(*), f(*), m(*), v(*), r(*),
142 . geo(npropg,*), tf(*), bufmat(*), pmsav(*),stifn(*),
143 . stifr(*),fsky(*),epsdot(6,*),thke(*),dt2t,
144 . f11(mvsiz), f12(mvsiz), f13(mvsiz),
145 . f21(mvsiz), f22(mvsiz), f23(mvsiz),
146 . f31(mvsiz), f32(mvsiz), f33(mvsiz),
147 . f14(mvsiz), f15(mvsiz), f16(mvsiz),
148 . f24(mvsiz), f25(mvsiz), f26(mvsiz),
149 . f34(mvsiz), f35(mvsiz), f36(mvsiz),
150 . gresav(*),mstg(*), dmeltg(*), ptg(3,*),condn(*),condnsky(*)
151 TYPE (TTABLE) TABLE(*)
152 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
153 TYPE (STACK_PLY) :: STACK
154 TYPE (FAILWAVE_STR_) ,TARGET :: FAILWAVE
155 TYPE (GROUP_PARAM_) :: GROUP_PARAM
156 TYPE (NLOCAL_STR_), TARGET :: NLOC_DMG
157 TYPE (DRAPE_),DIMENSION(NUMELTG_DRAPE) :: DRAPE_SH3N
158 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
159 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
160 TYPE (DT_) ,INTENT(IN) :: DT
161 type (glob_therm_) ,intent(inout) :: glob_therm
162 integer, intent(in) :: LIPART1
163
164 INTEGER, DIMENSION(LIPART1,NPART), INTENT(IN) :: IPART
165
166C-----------------------------------------------
167C L o c a l V a r i a b l e s
168C-----------------------------------------------
169c Indx uses locally unlike 4N shells
170 INTEGER MAT(MVSIZ),PID(MVSIZ),NGL(MVSIZ),INDX(MVSIZ),IVS(MVSIZ),
171 . FWAVE_EL(NEL)
172 INTEGER
173 . I, J, NG,NPG,NNOD,NVS,IBID,NFAIL,
174 . IR,IS,ILAY,NLAY,IMAT,L_DIRA,L_DIRB,J1,J2,N1,N2,N3,
175 . IGTYP,IGMAT,NPTTOT,IREP,IFAILWAVE,IDRAPE,IT,NPTT,
176 . ACTIFXFEM,SEDRAPE,NUMEL_DRAPE
177
178 parameter(nnod = 3)
179 my_real
180 . sti(mvsiz),stir(mvsiz),rho(mvsiz),
181 . ssp(mvsiz),viscmx(mvsiz),area(mvsiz),area2(mvsiz),
182 . area4(mvsiz),area5(mvsiz),area6(mvsiz)
183 my_real
184 . exx(mvsiz), eyy(mvsiz), exy(mvsiz), exz(mvsiz), eyz(mvsiz),
185 . kxx(mvsiz), kyy(mvsiz), kxy(mvsiz),
186 . px2(mvsiz),py2(mvsiz), px3(mvsiz), py3(mvsiz),
187 . pb1(mvsiz,9),pb2(mvsiz,9),pb3(mvsiz,18),
188 . off(mvsiz), sigy(mvsiz),thk0(mvsiz),
189 . nu(mvsiz) , shf(mvsiz), dt1c(mvsiz)
190 my_real
191 . g(mvsiz) , ym(mvsiz) , a11(mvsiz) , a12(mvsiz),
192 . vol0(mvsiz),thk02(mvsiz),zcfac(mvsiz,2), gs(mvsiz),
193 . alpe(mvsiz)
194 my_real
195 . r11(mvsiz),r12(mvsiz),r13(mvsiz),r21(mvsiz),r22(mvsiz),
196 . r23(mvsiz),r31(mvsiz),r32(mvsiz),r33(mvsiz),
197 . n4x(mvsiz),n4y(mvsiz),n4z(mvsiz),n5x(mvsiz),n5y(mvsiz),
198 . n5z(mvsiz),n6x(mvsiz),n6y(mvsiz),n6z(mvsiz),
199 . x2(mvsiz),y2(mvsiz),x3(mvsiz),y3(mvsiz),
200 . x4(mvsiz),y4(mvsiz),z4(mvsiz),
201 . x5(mvsiz),y5(mvsiz),z5(mvsiz),
202 . x6(mvsiz),y6(mvsiz),z6(mvsiz),
203 . vlx(mvsiz,2),vly(mvsiz,2),vlz(mvsiz,6),
204 . vz4(mvsiz,3),vz5(mvsiz,3),vz6(mvsiz,3),
205 . aldt(mvsiz),amu(mvsiz),vdef(mvsiz,8),die(mvsiz),
206 . tempel(mvsiz),bid,krz(mvsiz),conde(mvsiz),a11r(mvsiz)
207 my_real , DIMENSIOn(NEL) :: zoffset
208 my_real,
209 . ALLOCATABLE, DIMENSION(:), TARGET :: dira,dirb
210 my_real,
211 . DIMENSION(:) ,POINTER :: dir_a,dir_b
212! variables for heat transfer
213 my_real :: dtinv,asrate,eps_m2,eps_k2
214 my_real, dimension(nel) :: epsd_pg
215 my_real, dimension(mvsiz) :: fheat
216 my_real, dimension(mvsiz) :: ssp_eq
217!
218C--- Variables for non-local
219 INTEGER :: NDDL, K, INOD(3),NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), L_NLOC, IPOS(3),INLOC
220 my_real, DIMENSION(:,:), ALLOCATABLE :: var_reg
221 my_real, DIMENSION(:), POINTER :: dnl,unl
222C-----
223
224 TYPE(G_BUFEL_) ,POINTER :: GBUF
225
226 TYPE(L_BUFEL_DIR_) ,POINTER :: LBUF_DIR
227 INTEGER SDIR_A ! Size of DIR_A
228 INTEGER SDIR_B ! Size of DIR_B
229C=======================================================================
230C GENERALIZED STRAINS ARE SAVED AT NB8 (GENERALIZED FOR ALL MATERIALS)
231C NB1 |5*JLT | FORCES
232C NB2 |3*JLT | MOMENTS
233C NB3 |JLT | THK0SEUR
234C NB4 |5*JLT | UNUSED : ONLY FOR FINDING OFF
235C NB5 |2*JLT | ENERGIES
236C NB6 |JLT | OFF
237C NB8 |8*JLT | DEFORMATIONS
238C============================== =========================================
239 gbuf => elbuf_str%GBUF
240 idrape = elbuf_str%IDRAPE
241 iun = 1
242 ibid = 0
243 bid = zero
244 irep = iparg(35)
245 actifxfem = iparg(70)
246 inloc= iparg(78)
247 nlay = elbuf_str%NLAY
248 sedrape = stdrape
249 numel_drape = numeltg_drape
250 ! thermal transfert for 3n shells type cdkforc is not available
251 tempel(:) = zero
252 fheat(:) = zero
253cc NPT = MAX(NLAY,NPTT) --> set to = IPARG(6) , keeping it original
254C to allow for NPT = 0 (global LAW_3
255 npg = 0
256 ir = 1
257 is = 1
258 ng = 1
259C
260 npttot = 0
261 DO ilay=1,nlay
262 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
263 ENDDO
264 IF (npt == 0) npttot = npt ! compatibility with global integration
265 nddl = npttot
266 ALLOCATE(var_reg(nel,nddl))
267c--------------------------------------------
268c Front wave
269c--------------------------------------------
270 ifailwave = iparg(79)
271 IF (ifailwave > 0 .and. failwave%WAVE_MOD == 1) THEN
272 DO i=jft,jlt
273 n1 = failwave%IDXI(ixtg(2,i))
274 n2 = failwave%IDXI(ixtg(3,i))
275 n3 = failwave%IDXI(ixtg(4,i))
276 nfail = failwave%FWAVE_NOD(1,n1,1)
277 . + failwave%FWAVE_NOD(1,n2,1)
278 . + failwave%FWAVE_NOD(1,n3,1)
279 IF (nfail > 0) fwave_el(i) = 1
280 ENDDO
281 ENDIF
282c-------------------------------------
283 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
284 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
285 igtyp = igeo(11,ixtg(5,1))
286 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52)) THEN
287 ALLOCATE(dira(npttot*nel*l_dira))
288 ALLOCATE(dirb(npttot*nel*l_dirb))
289 IF (l_dira == 0) THEN
290 CONTINUE
291 ELSEIF (irep == 0) THEN
292 npttot = 0
293 DO ilay=1,nlay
294 nptt = elbuf_str%BUFLY(ilay)%NPTT
295 DO it=1,nptt
296 j = npttot + it
297 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
298 j1 = 1+(j-1)*l_dira*nel
299 j2 = j*l_dira*nel
300 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
301 ENDDO
302 npttot = npttot + nptt
303 ENDDO
304 ENDIF
305 sdir_a=npttot*nel*l_dira
306 sdir_b=npttot*nel*l_dirb
307 dir_a => dira(1:npttot*nel*l_dira)
308 dir_b => dirb(1:npttot*nel*l_dirb)
309 ELSE ! idrape
310 sdir_a=nlay*nel*l_dira
311 sdir_b=nlay*nel*l_dirb
312 ALLOCATE(dira(nlay*nel*l_dira))
313 ALLOCATE(dirb(nlay*nel*l_dirb))
314 dira=zero
315 dirb=zero
316 IF (l_dira == 0) THEN
317 CONTINUE
318 ELSEIF (irep == 0) THEN
319 DO j=1,nlay
320 j1 = 1+(j-1)*l_dira*nel
321 j2 = j*l_dira*nel
322 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
323 ENDDO
324 ENDIF
325 sdir_a=nlay*nel*l_dira
326 sdir_b=nlay*nel*l_dirb
327 dir_a => dira(1:nlay*nel*l_dira)
328 dir_b => dirb(1:nlay*nel*l_dirb)
329 ENDIF ! IDRAPE
330c-------------------------------------
331 DO i=jft,jlt
332 a11r(i) = zero
333 ENDDO
334c---
335 CALL cdk6coor3(elbuf_str,jft,jlt,mat,pid,
336 . ngl,x,v,r,ixtg,gbuf%OFF,
337 . off,r11,r12,r13,r21,r22,r23,r31,r32,r33,
338 . n4x,n4y,n4z,n5x,n5y,n5z,n6x,n6y,n6z,
339 . x2,y2,x3,y3,x4,y4,z4,x5,y5,z5,x6,y6,z6,
340 . gbuf%SMSTR,area,area2,
341 . vlx,vly,vlz,vz4,vz5,vz6,ismstr,nlay,irep,
342 . dir_a ,dir_b ,igeo ,
343 . ixtg1 ,nvs ,ivs ,area4 ,area5 ,
344 . area6 ,nel)
345 igtyp = igeo(11,pid(1))
346 igmat = igeo(98,pid(1))
347C
348 CALL cncoef3(jft ,jlt ,pm ,mat ,geo ,
349 2 pid ,off ,area ,shf ,thk0 ,
350 3 thk02 ,nu ,g ,ym ,
351 4 a11 ,a12 ,gbuf%THK,thke ,ssp ,
352 5 rho ,vol0 ,gs ,mtn ,ithk ,
353 6 npttot ,dt1c , dt1 ,ihbe ,amu ,
354 7 krz ,igeo ,a11r ,isubstack , stack%PM,
355 8 nel ,zoffset)
356 CALL cdk6deri3(jft ,jlt, x2,y2,x3,y3,area2,alpe,aldt,nu,thk02,
357 1 px2,py2,px3,py3,x4,y4,z4,x5,y5,z5,x6,y6,z6,
358 2 n4x,n4y,n4z,n5x,n5y,n5z,n6x,n6y,n6z,
359 3 area4,area5,area6,pb1,pb2,pb3,nvs,ivs,ixtg1)
360C
361 CALL cdk6defo3(jft,jlt,vlx,vly,vlz,vz4,vz5,vz6,
362 1 px2,py2,px3,py3,pb1,pb2,pb3,vdef)
363 CALL cdk6stra3(jft, jlt, nft, vdef,gbuf%STRA,
364 1 exx, eyy, exy, exz, eyz,
365 2 kxx, kyy, kxy, dt1c, epsdot,
366 3 iepsdot, istrain,nel)
367c-------------------------------------------
368c COMPUTE Regularized non local variable in Gauss point
369c-------------------------------------------
370 IF (inloc > 0) THEN
371 l_nloc = nloc_dmg%L_NLOC
372 dnl => nloc_dmg%DNL(1:l_nloc) ! DNL = non local variable increment
373 unl => nloc_dmg%UNL(1:l_nloc)
374 DO i = jft,jlt
375 nc1(i) = ixtg(2,i)
376 nc2(i) = ixtg(3,i)
377 nc3(i) = ixtg(4,i)
378 ENDDO
379 DO k = 1,nddl
380#include "vectorize.inc"
381 DO i = jft,jlt
382 inod(1) = nloc_dmg%IDXI(nc1(i))
383 inod(2) = nloc_dmg%IDXI(nc2(i))
384 inod(3) = nloc_dmg%IDXI(nc3(i))
385 ipos(1) = nloc_dmg%POSI(inod(1))
386 ipos(2) = nloc_dmg%POSI(inod(2))
387 ipos(3) = nloc_dmg%POSI(inod(3))
388 var_reg(i,k) = third*(dnl(ipos(1)+k-1)
389 . + dnl(ipos(2)+k-1)
390 . + dnl(ipos(3)+k-1))
391 ENDDO
392 ENDDO
393 ENDIF
394!-------------------------------------------------------------------------------
395! global element strain rate (shell energy equivalent)
396!-----------------------------------------------------------
397! e = 1/t integ[1/2 e (eps_m + k z)^2 dz ]
398! e = 1/2 e eps_eq^2
399! eps_eq = sqrt[ eps_m^2 + 1/12 k^2t^2 ]
400!-------------------------------------------------------------------------------
401 dtinv = dt1 / max(dt1**2,em20) ! inverse of dt
402 asrate = one ! to be changed for default value
403#include "vectorize.inc"
404 do i = 1,nel
405 eps_k2 = (kxx(i)**2+kyy(i)**2+kxx(i)*kyy(i)+fourth*kxy(i)**2)
406 . * one_over_9*gbuf%thk(i)**2
407 eps_m2 = four_over_3*(exx(i)**2+eyy(i)**2+exx(i)*eyy(i) + fourth*exy(i)**2)
408 epsd_pg(i) = sqrt(eps_k2 + eps_m2)*dtinv
409 end do
410 gbuf%epsd(1:nel) = asrate * epsd_pg(1:nel) + (one - asrate) * gbuf%epsd(1:nel)
411!-------------------------------------------------------------------------------
412 CALL cmain3(timers,
413 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
414 2 nel ,mtn ,ipla ,ithk ,group_param,
415 3 pm ,geo ,npf ,tf ,bufmat ,
416 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
417 5 area ,exx ,eyy ,exy ,exz ,
418 6 eyz ,kxx ,kyy ,kxy ,nu ,
419 7 off ,thk0 ,mat ,pid ,mat_elem ,
420 8 gbuf%FOR ,gbuf%MOM ,gbuf%STRA ,failwave ,fwave_el ,
421 9 gbuf%THK ,gbuf%EINT ,iofc ,
422 a g ,a11 ,a12 ,vol0 ,indx ,
423 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
424 c kfts ,ihbe ,alpe ,
425 d dir_a ,dir_b ,igeo ,
426 e ipm ,ifailure ,npg ,fheat ,
427 f tempel ,die ,ibid ,ibid ,bid ,
428 g ibid ,bid ,
429 h bid ,bid ,bid ,bid ,bid ,
430 i bid ,bid ,bid ,r11 ,r12 ,
431 j r13 ,r21 ,r22 ,r23 ,r31 ,
432 k r32 ,r33 ,ng ,table ,ibid ,
433 l bid ,sensors ,bid ,ibid ,
434 m bid ,bid ,aldt ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
435 n ismstr ,ir ,is ,nlay ,npt ,
436 o ibid ,ibid ,isubstack ,stack ,
437 p bid ,itask ,drape_sh3n ,var_reg ,nloc_dmg ,
438 r indx_drape,thke ,sedrape ,numel_drape ,dt ,
439 q ncycle ,snpc ,stf ,nxlaymax ,idel7nok ,
440 r userl_avail ,maxfunc ,npttot ,sbufmat ,sdir_a ,sdir_b ,
441 s gbuf%FOR_G,ssp_eq,
442 x ipart ,lipart1 ,iparttg )
443C----------------------------------------------------------------------------
444C FORCES VISCOCITE
445C----------------------------
446C only membrane for the moment --------
447 CALL cbavisc(jft ,jlt ,vdef ,amu ,off,
448 2 shf ,nu ,rho ,ssp ,area,
449 3 thk0 ,gbuf%FOR,gbuf%MOM,iun ,mtn,
450 4 iparttg ,pmsav ,dt1 ,nel )
451C----------------------------
452C FORCES INTERNES
453C----------------------------
454 CALL cdk6fint3(jft,jlt,vol0,thk0,gbuf%FOR,gbuf%MOM,
455 1 px2,py2,px3,py3,pb1,pb2,pb3,
456 2 f11,f12,f13,f21,f22,f23,f31,f32,f33,
457 3 f14,f15,f16,f24,f25,f26,f34,f35,f36,
458 4 n4x,n4y,n4z,n5x,n5y,n5z,n6x,n6y,n6z,
459 5 nel)
460C-------------------------
461C ASSEMBLE
462C-------------------------
463 CALL cdk6fcum3(jft,jlt,
464 1 r11,r12,r13,r21,r22,r23,r31,r32,r33,
465 2 f11,f12,f13,f21,f22,f23,f31,f32,f33,
466 3 f14,f15,f16,f24,f25,f26,f34,f35,f36)
467C--------------------------
468C TIME STEP
469C--------------------------
470 CALL cndt3(
471 1 jft ,jlt ,off ,dt2t ,amu ,
472 2 neltst ,ityptst,sti ,stir ,gbuf%OFF,
473 3 ssp ,viscmx , rho , vol0,thk0,thk02,
474 4 a11 ,aldt , alpe , ngl,ismstr,
475 5 iofc ,nnod ,area ,g ,shf ,
476 6 mstg ,dmeltg ,jsms ,ptg ,igtyp ,
477 7 igmat ,a11r ,gbuf%G_DT, gbuf%DT,mtn ,
478 8 pm ,mat(jft), nel ,zoffset,ssp_eq)
479C--------------------------
480C THERMAL TIME STEP
481C--------------------------
482 imat = mat(1)
483 IF (jthe /= 0 .AND. glob_therm%IDT_THERM == 1)THEN
484 call dttherm(nel ,pm(1,imat),npropm,glob_therm,mat_elem%mat_param(imat),
485 . jtur ,tempel ,vol0 ,rho ,
486 . aldt ,off ,conde ,gbuf%re ,gbuf%rk )
487 ENDIF
488c-------------------------
489c Virtual internal forces of regularized non local ddl
490c--------------------------
491 IF (inloc > 0) THEN
492 CALL cdk6fint_reg(
493 1 nloc_dmg, var_reg, thk0, nel,
494 2 off, area, nc1, nc2,
495 3 nc3, px2, py2, px3,
496 4 py3, elbuf_str%NLOC(1,1), ixtg(1,jft),
497 5 nddl, itask, dt2t, aldt,
498 6 gbuf%THK_I, gbuf%AREA, nft)
499 ENDIF
500c-------------------------------
501C--------------------------
502C BALANCES BY MATERIAL
503C--------------------------
504 IF(ipri>0)
505 + CALL c3bilan(
506 1 jft, jlt, pm, v,
507 2 gbuf%THK, gbuf%EINT, pmsav, iparttg,
508 3 rho, vol0, ixtg, x,
509 4 r, thk02, area, gresav,
510 5 grth, igrth, off, ibid,
511 6 ibid, ibid, ibid, ibid,
512 7 iexpan, gbuf%EINTTH,itask, mat,
513 8 gbuf%VOL, actifxfem, igre, sensors,
514 9 nel, gbuf%G_WPLA,gbuf%WPLA)
515 IF(iparit==0)THEN
516 CALL cdk6updt3(jft ,jlt ,f ,m ,nvc ,
517 2 gbuf%OFF,off ,sti ,stir,stifn,
518 3 stifr ,ixtg ,ixtg1, f11 ,
519 4 f12 ,f13 ,f21 ,f22 ,f23 ,
520 5 f31 ,f32 ,f33 ,f14 ,f15 ,
521 7 f16 ,f24 ,f25 ,f26 ,f34 ,
522 8 f35 ,f36 ,nvs ,ivs )
523 ELSE
524 CALL cdk6updt3p(jft ,jlt ,gbuf%OFF,off ,sti ,
525 2 stir ,fsky ,fsky ,iadtg ,iadtg1,
526 4 f11 ,f12 ,f13 ,f21 ,f22 ,
527 5 f23 ,f31 ,f32 ,f33 ,f14 ,
528 7 f15 ,f16 ,f24 ,f25 ,f26 ,
529 8 f34 ,f35 ,f36 )
530 ENDIF
531c--------------------------------------------
532c Front wave
533c--------------------------------------------
534 IF (ifailwave > 0 .and. failwave%WAVE_MOD == 1) THEN
535 DO i=jft,jlt
536 n1 = failwave%IDXI(ixtg(2,i))
537 n2 = failwave%IDXI(ixtg(3,i))
538 n3 = failwave%IDXI(ixtg(4,i))
539 IF (fwave_el(i) == -1) THEN
540 failwave%FWAVE_NOD(1,n1,1) = 1
541 failwave%FWAVE_NOD(1,n2,1) = 1
542 failwave%FWAVE_NOD(1,n3,1) = 1
543 ENDIF
544 ENDDO
545 ENDIF
546C-----------
547 IF (ALLOCATED(var_reg)) DEALLOCATE(var_reg)
548 RETURN
subroutine c3bilan(jft, jlt, pm, v, thk, eint, partsav, iparttg, rho, vol00, ixtg, x, vr, thk02, area, gresav, grth, igrth, off, ixfem, ilev, iel_crk, iadtg_crk, nft1, iexpan, eintth, itask, mat, gvol, actifxfem, igre, sensors, nel, g_wpla, wpla)
Definition c3bilan.F:48
subroutine cbavisc(jft, jlt, vdef, amu, off, shf, nu, rho, ssp, area, thk, for, mom, npt, mtn, ipartc, evis, dt1, nel)
Definition cbavisc.F:34
subroutine cdk6coor3(elbuf_str, jft, jlt, mat, pid, ngl, x, v, r, ixtg, offg, off, r11, r12, r13, r21, r22, r23, r31, r32, r33, n4x, n4y, n4z, n5x, n5y, n5z, n6x, n6y, n6z, xl2, yl2, xl3, yl3, xl4, yl4, zl4, xl5, yl5, zl5, xl6, yl6, zl6, smstr, area, area2, vlx, vly, vlz, vnz4, vnz5, vnz6, ismstr, nlay, irep, dir_a, dir_b, igeo, ixtg1, nvs, ivs, area4, area5, area6, nel)
Definition cdk6coor3.F:45
subroutine cdk6defo3(jft, jlt, vlx, vly, vlz, vz4, vz5, vz6, px2, py2, px3, py3, pb1, pb2, pb3, vdef)
Definition cdk6defo3.F:31
subroutine cdk6deri3(jft, jlt, x2, y2, x3, y3, area2, alpe, aldt, nu, thk2, px2, py2, px3, py3, x4, y4, z4, x5, y5, z5, x6, y6, z6, n4x, n4y, n4z, n5x, n5y, n5z, n6x, n6y, n6z, area4, area5, area6, pb1, pb2, pb3, nvs, ivs, ixtg1)
Definition cdk6deri3.F:32
subroutine cdk6fcum3(jft, jlt, r11, r12, r13, r21, r22, r23, r31, r32, r33, f11, f12, f13, f21, f22, f23, f31, f32, f33, f14, f15, f16, f24, f25, f26, f34, f35, f36)
Definition cdk6fcum3.F:32
subroutine cdk6fint3(jft, jlt, vol, thk0, for, mom, px2, py2, px3, py3, pb1, pb2, pb3, f11, f12, f13, f21, f22, f23, f31, f32, f33, f14, f15, f16, f24, f25, f26, f34, f35, f36, n4x, n4y, n4z, n5x, n5y, n5z, n6x, n6y, n6z, nel)
Definition cdk6fint3.F:34
subroutine cdk6fint_reg(nloc_dmg, var_reg, thk, nel, off, area, nc1, nc2, nc3, px2, py2, px3, py3, bufnl, imat, nddl, itask, dt2t, le, thk0, area0, nft)
subroutine cdk6stra3(jft, jlt, nft, vdef, gstr, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, dt1c, epsdot, iepsdot, istrain, nel)
Definition cdk6stra3.F:32
subroutine cdk6updt3(jft, jlt, f, m, nvc, offg, off, sti, stir, stifn, stifr, ixtg, ixtg1, f11, f12, f13, f21, f22, f23, f31, f32, f33, f14, f15, f16, f24, f25, f26, f34, f35, f36, nvs, ivs)
Definition cdk6updt3.F:37
subroutine cdk6updt3p(jft, jlt, offg, off, sti, stir, fsky, fskyv, iadtg, iadtg1, f11, f12, f13, f21, f22, f23, f31, f32, f33, f14, f15, f16, f24, f25, f26, f34, f35, f36)
Definition cdk6updt3.F:154
subroutine cmain3(timers, elbuf_str, jft, jlt, nft, iparg, nel, mtn, ipla, ithk, group_param, pm, geo, npf, tf, bufmat, ssp, rho, viscmx, dt1c, sigy, area, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, nu, off, thk0, mat, pid, mat_elem, for, mom, gstr, failwave, fwave_el, thk, eint, iofc, g, a11, a12, vol0, indxdel, ngl, zcfac, shf, gs, epsd_pg, kfts, jhbe, alpe, dir_a, dir_b, igeo, ipm, ifailure, npg, fheat, tempel, die, jthe, iexpan, tempel0, ishplyxfem, ply_exx, ply_eyy, ply_exy, ply_exz, ply_eyz, ply_f, del_ply, th_iply, sig_iply, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ng, table, ixfem, offi, sensors, a11_iply, elcrkini, dir1_crk, dir2_crk, aldt, idt_therm, theaccfact, ismstr, ir, is, nlay, npt, ixlay, ixel, isubstack, stack, f_def, itask, drape, varnl, nloc_dmg, indx_drape, thke, sedrape, numel_drape, dt, ncycle, snpc, stf, nxlaymax, idel7nok, userl_avail, maxfunc, varnl_npttot, sbufmat, sdir_a, sdir_b, for_g, ssp_eq, ipart, lipart1, ipartc)
Definition cmain3.F:88
subroutine cncoef3(jft, jlt, pm, mat, geo, pid, off, area, shf, thk0, thk02, nu, g, ym, a11, a12, thk, thke, ssp, rho, volg, gs, mtn, ithk, npt, dt1c, dt1, ihbe, amu, krz, igeo, a11r, isubstack, pm_stack, nel, zoffset)
Definition cncoef3.F:303
subroutine cndt3(jft, jlt, off, dt2t, amu, neltst, ityptst, sti, stir, offg, ssp, viscmx, rho, vol0, thk0, thk02, a1, aldt, alpe, ngl, ismstr, iofc, nne, area, g, shf, msc, dmelc, jsms, ptg, igtyp, igmat, a11r, g_dt, dtel, mtn, pm, imat, nel, zoffset, ssp_eq)
Definition cndt3.F:42
#define my_real
Definition cppsort.cpp:32
subroutine area(d1, x, x2, y, y2, eint, stif0)
#define max(a, b)
Definition macros.h:21
integer numeltg_drape
Definition drape_mod.F:92
integer stdrape
Definition drape_mod.F:92