40 1 IPARI ,STFAC ,FRIGAP ,XFILTR ,FRIC_P ,
41 2 IGRNOD ,IGRSURF ,ILAGM ,UNITAB ,NI ,
42 4 NOM_OPT ,TITR ,DEF_INTER ,NOINT ,LSUBMODEL,
55#include "implicit_f.inc"
64 INTEGER,
INTENT(IN) :: NPARI, NPARIR
65 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
66 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
67 INTEGER NOM_OPT(LNOPT1,*)
68 INTEGER ISU1,ISU2,ILAGM,NI, NOINT
69 INTEGER IPARI(NPARI),DEF_INTER(100)
71 my_real frigap(nparir),fric_p(10)
72 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
74 TYPE (GROUP_) ,
TARGET,
DIMENSION(NGRNOD) :: IGRNOD
75 TYPE (SURF_) ,
TARGET ,
DIMENSION(NSURF) :: IGRSURF
87 INTEGER I,J,L,IBC1, IBC2, IBC3, NTYP,IDELKEEP,
88 . INACTI, IBC1M, IBC2M, IBC3M, IGSTI, IVIS2,
89 . IS1, IS2, ,ISU20,ILEV, IGAP,MULTIMP,MFROT,IFQ,
90 . IBAG,,MODFR,IADM,IFORM,IASSIGN,FIELD6,IPRINT
92 . fric,gap,startt,bumult,stopt,c1,c2,c3,c4,c5,c6,
93 .
alpha,gapscale,gapmax,stmin,stmax,
96 INTEGER,
DIMENSION(:),
POINTER :: INGR2USR
97 CHARACTER(LEN=NCHARKEY) :: KEY1
101 INTEGER USR2SYS,SUR2USR,NGR2USR
158 ipari(33) =
max(0,ilagm)
165 WRITE(iout,1000) noint,trim(titr)
167 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,ni),ltitr)
172 is_available = .false.
177 CALL hm_get_intv(
'secondaryentityids',isu1,is_available,lsubmodel)
178 CALL hm_get_intv(
'mainentityids',isu2,is_available,lsubmodel)
179 CALL hm_get_intv(
'Istf',igsti,is_available,lsubmodel)
180 CALL hm_get_intv(
'Igap',igap,is_available,lsubmodel)
181 CALL hm_get_intv(
'Multimp',field6,is_available,lsubmodel)
182 CALL hm_get_intv(
'Ibag',ibag,is_available,lsubmodel)
183 CALL hm_get_intv(
'Idel7',idel7n,is_available,lsubmodel)
185 CALL hm_get_intv(
'Deactivate_X_BC',ibc1,is_available,lsubmodel)
186 CALL hm_get_intv(
'Deactivate_Y_BC',ibc2,is_available,lsubmodel)
187 CALL hm_get_intv(
'Deactivate_Z_BC',ibc3,is_available,lsubmodel)
188 CALL hm_get_intv(
'INACTIV',inacti,is_available,lsubmodel)
190 CALL hm_get_intv(
'Ifric',mfrot,is_available,lsubmodel)
191 CALL hm_get_intv(
'Ifiltr',ifq,is_available,lsubmodel)
192 CALL hm_get_intv(
'IFORM',modfr,is_available,lsubmodel)
197 CALL hm_get_floatv(
'GAPSCALE',gapscale,is_available,lsubmodel
198 CALL hm_get_floatv(
'GAPMAX',gapmax,is_available,lsubmodel,unitab)
200 CALL hm_get_floatv(
'STMIN',stmin,is_available,lsubmodel,unitab)
201 CALL hm_get_floatv(
'STMAX',stmax,is_available,lsubmodel,unitab)
203 CALL hm_get_floatv(
'TYPE7_SCALE',stfac,is_available,lsubmodel,unitab)
204 CALL hm_get_floatv(
'FRIC',fric,is_available,lsubmodel,unitab)
206 CALL hm_get_floatv(
'TSTART',startt,is_available,lsubmodel,unitab)
207 CALL hm_get_floatv(
'TSTOP',stopt,is_available,lsubmodel,unitab)
209 CALL hm_get_floatv(
'STIFF_DC',visc,is_available,lsubmodel,unitab)
210 CALL hm_get_floatv(
'FRIC_DC',viscf,is_available,lsubmodel,unitab)
211 CALL hm_get_floatv(
'SORT_FACT',bumult,is_available,lsubmodel,unitab)
234 CALL definter(key1 ,igsti ,iassign ,iprint ,
238 CALL definter(key1 ,igap ,iassign ,iprint ,
242 CALL DEFINTER(KEY1 ,IBAG ,IASSIGN ,IPRINT ,
246 CALL DEFINTER(KEY1 ,IDEL7N ,IASSIGN ,IPRINT ,
250 CALL DEFINTER(KEY1 ,INACTI,IASSIGN ,IPRINT ,
254 CALL DEFINTER(KEY1 ,MODFR,IASSIGN ,IPRINT ,
262 CALL ANCMSG(MSGID=119,
274 INGR2USR => IGRSURF(1:NSURF)%ID
275 ISU2=NGR2USR(ISU2,INGR2USR,NSURF)
277 INGR2USR => IGRNOD(1:NGRNOD)%ID
278 ISU1=NGR2USR(ISU1,INGR2USR,NGRNOD)
295 IF(GAPSCALE==ZERO)GAPSCALE=ONE
296 FRIGAP(13) = GAPSCALE
299 IF(FRIGAP(16)==ZERO)THEN
308 IF(STMAX==ZERO)STMAX=EP30
320 IF (STOPT == ZERO) STOPT = EP30
327 IF (STFAC == ZERO ) STFAC = ONE
328 IF(IGSTI==1)STFAC=-STFAC
330.AND.
IF(FRIC/=ZEROVISCF==ZERO)VISCF=ONE
343.OR.
IF (IDEL7N>2N2D==1) IDEL7N = 0
345 IF(BUMULT==ZERO) THEN
348 IF(NUMNOD > 2500000) THEN
350 ELSEIF(NUMNOD > 1500000) THEN
351 BUMULT = BMUL0*THREE/TWO
359 IPARI(11)=4*IBC1+2*IBC2+IBC3 + 8 *(4*IBC1M+2*IBC2M+IBC3M)
366.AND.
IF (MFROT/=0VISCF==0.0) VISCF=ONE
367 IF (ALPHA==0.) IFQ = 0
369 IF (MODFR==0) MODFR = 1
370.AND.
IF (MODFR==2IFQ<10) IFQ = IFQ + 10
371 IF (MODFR==2)VISCF=ZERO
374 IF (IFQ==10) XFILTR = ONE
375 IF (MOD(IFQ,10)==1) XFILTR = ALPHA
376 IF (MOD(IFQ,10)==2) XFILTR=FOUR*ATAN2(ONE,ZERO) / ALPHA
377 IF (MOD(IFQ,10)==3) XFILTR=FOUR*ATAN2(ONE,ZERO) * ALPHA
378 IF (XFILTR<ZERO) THEN
379 CALL ANCMSG(MSGID=554,
381 . ANMODE=ANINFO_BLIND_1,
385.AND.
ELSEIF (XFILTR>1MOD(IFQ,10)<=2) THEN
386 CALL ANCMSG(MSGID=554,
388 . ANMODE=ANINFO_BLIND_1,
411.AND..AND..AND.
IF (IBAG/=0NVOLU==0IALELAG==0NSPHSOL==0) THEN
412 CALL ANCMSG(MSGID=614,
413 . MSGTYPE=MSGWARNING,
414 . ANMODE=ANINFO_BLIND_2,
420 INTBAG = MAX(INTBAG,IBAG)
422 KCONTACT =MAX(KCONTACT,IBAG,IADM)
440.AND.
IF( (IGAP>=2 IGAP/=1000).
441.AND.
. OR.IGSTI>1 IGSTI/=1000)THEN
443 WRITE(IOUT,1538)IBC1,IBC2,IBC3,IBC1M,IBC2M,IBC3M,
444 . STFAC,FRIC,IGAP,GAP,GAPMAX,
445 . GAPSCALE,STARTT,STOPT,
446 . BUMULT,INACTI,VISC,VISCF,IPARI(14),
449 WRITE(IOUT,1548)IBC1,IBC2,IBC3,IBC1M,IBC2M,IBC3M,
450 . STFAC,IGSTI,STMIN,STMAX,
451 . FRIC,IGAP,GAP,GAPMAX,
452 . GAPSCALE,STARTT,STOPT,
453 . BUMULT,INACTI,VISC,VISCF,IPARI(14),
456 ELSEIF(STFAC>=ZERO)THEN
457 WRITE(IOUT,1594)IBC1,IBC2,IBC3,IBC1M,IBC2M,IBC3M,
458 . STFAC,IGAP,GAP,STARTT,STOPT,
459 . BUMULT,INACTI,VISC,VISCF,IPARI(14),
462 WRITE(IOUT,1595)IBC1,IBC2,IBC3,IBC1M,IBC2M,IBC3M,
465 . BUMULT,INACTI,VISC,VISCF,IPARI(14),
468 . ' lagrange multiplier with /dt/inter/lag. .
'
472 WRITE(IOUT,'(a,a,i5/)
')
473 . ' deletion flag on failure of
main element
',
474 . ' (1:yes-all/2:yes-any) :
',IDEL7N
475 IF(IDELKEEP == 1)THEN
477 . ' idel:
DO not remove non-connected nodes
'
486 WRITE(IOUT,1520)MOD(IFQ,10), XFILTR
488 WRITE(IOUT,1524) FRIC
490 WRITE(IOUT,1515)FRIC_P(1),FRIC_P(2),FRIC_P(3),
491 . FRIC_P(4),FRIC_P(5)
493 WRITE(IOUT,1522)FRIC,FRIC_P(1),FRIC_P(2),FRIC_P(3),
494 . FRIC_P(4),FRIC_P(5),FRIC_P(6)
496 WRITE(IOUT,1523)FRIC_P(1),FRIC_P(2),FRIC_P(3),
497 . FRIC_P(4),FRIC_P(5),FRIC_P(6)
502 WRITE(IOUT,*)' airbag porosity coupling on
'
507 WRITE(IOUT,'(6x,a)
')'no secondary surface input
'
509 WRITE(IOUT,'(6x,a)
')'secondary surface input by segments
'
511 WRITE(IOUT,'(6x,a)
')'secondary surface input by nodes
'
513 WRITE(IOUT,'(6x,a)
')'secondary surface input by segments
'
515 WRITE(IOUT,'(6x,a)
')'secondary side input by bricks
'
517 WRITE(IOUT,'(6x,a)
')'secondary side input by solid elements
'
520 WRITE(IOUT,'(6x,a)
')'no
main surface input
'
522 WRITE(IOUT,'(6x,a)
')'main surface input by segments
'
524 WRITE(IOUT,'(6x,a)
')'main surface input by nodes
'
526 WRITE(IOUT,'(6x,a)
')'main surface input by segments
'
528 WRITE(IOUT,'(6x,a)
')'main surface refers
',
529 . 'to hyper-ellipsoidal surface
'
533 1000 FORMAT(/1X,' INTERFACE number :
',I10,1X,A)
538 . ' type==7 parallel/auto impacting
' //)
541 . ' bound. cond. deleted after impact in x dir
',I1/,
542 . ' secondary node(1:yes 0:no) y dir
',I1/,
544 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
545 .
' MAIN NODE (1:YES 0:NO) Y DIR ',i1/,
547 .
' CONSTANT STIFFNESS. . . . . . . . . . . . ',1pg20.13/,
548 .
' FRICTION FACTOR . . . . . . . . . . . . . ',1pg20.13/,
549 .
' VARIABLE GAP FLAG . . . . . . . . . . . . ',i5/,
550 .
' MINIMUM GAP . . . . . . . . . . . . . . . ',1pg20.13/,
551 .
' MAXIMUM GAP (= 0. <=> NO MAXIMUM GAP) . . ',1pg20.13/,
552 .
' GAP SCALE FACTOR. . . . . . . . . . . . . ',1pg20.13/,
553 .
' START TIME. . . . . . . . . . . . . . . . ',1pg20.13/,
554 .
' STOP TIME . . . . . . . . . . . . . . . . ',1pg20.13/,
555 .
' BUCKET FACTOR . . . . . . . . . . . . . . ',1pg20
556 .
' DE-ACTIVATION OF INITIAL PENETRATIONS . . ',i10/,
557 .
' CRITICAL DAMPING FACTOR . . . . . . . . . ',1pg20.13/,
558 .
' FRICTION CRITICAL DAMPING FACTOR. . . . . ',1pg20.13/,
559 .
' QUADRATIC DAMPING FLAG. . . . . . . . . . ',i5/,
560 .
' FORMULATION LEVEL . . . . . . . . . . . . ',i5/,
561 .
' MEAN POSSIBLE NUMBER OF IMPACT/NODE . . . ',i5/)
564 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
565 .
' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
567 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
568 .
' MAIN NODE (1:YES 0:NO) Y DIR ',i1/,
570 .
' STIFFNESS FACTOR. . . . . . . . . . . . . ',1pg20.13/,
571 .
' STIFFNESS FORMULATION. . . . . . . . . . ',i4/,
572 .
' 2,3,4,5 : STIFFNESS IS COMPUTED FROM STIFFNESS ON MAIN SIDE'/,
573 .
' AND STIFFNESS AT SECONDARY NODES'/,
574 .
' 1000 : STIFFNESS IS COMPUTED FROM STIFFNESS ON MAIN SIDE'/,
575 .
' MINIMUM STIFFNESS. . . . . . . . . . . . ',1pg20.13/,
576 .
' MAXIMUM STIFFNESS. . . . . . . . . . . . ',1pg20.13/,
577 .
' FRICTION FACTOR . . . . . . . . . . . . . ',1pg20.13/,
578 .
' VARIABLE GAP FLAG . . . . . . . . . . . . ',i5/,
579 .
' MINIMUM GAP . . . . . . . . . . . . . . . ',1pg20.13/,
580 .
' MAXIMUM GAP (= 0. <=> NO MAXIMUM GAP) . . ',1pg20.13/,
581 .
' GAP SCALE FACTOR. . . . . . . . . . . . . ',1pg20.13/,
582 .
' START TIME. . . . . . . . . . . . . . . . ',1pg20.13/,
583 .
' STOP TIME . . . . . . . . . . . . . . . . ',1pg20.13/,
584 .
' BUCKET FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
585 .
' DE-ACTIVATION OF INITIAL PENETRATIONS . . ',i10/,
586 .
' CRITICAL DAMPING FACTOR . . . . . . . . . ',1pg20.13/,
587 .
' FRICTION CRITICAL DAMPING FACTOR. . . . . ',1pg20.13/,
588 .
' QUADRATIC DAMPING FLAG. . . . . . . . . . ',i5/,
589 .
' FORMULATION LEVEL . . . . . . . . . . . . ',i5/,
590 .
' MEAN POSSIBLE NUMBER OF IMPACT/NODE . . . ',i5/)
592 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
593 .
' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
595 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
596 .
' MAIN NODE (1:YES 0:NO) Y DIR ',i1/,
598 .
' STIFFNESS FACTOR. . . . . . . . . . . . . ',1pg20.13/,
599 ' VARIABLE GAP FLAG . . . . . . . . . . . . ',i5/,
600 .
' MINIMUM GAP . . . . . . . . . . . . . . . ',1pg20.13/,
601 .
' START TIME. . . . . . . . . . . . . . . . ',1pg20.13/,
602 .
' STOP TIME . . . . . . . . . . . . . . . . ',1pg20.13/,
603 .
' BUCKET FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
604 .
' DE-ACTIVATION OF INITIAL PENETRATIONS . . ',i10/,
605 .
' CRITICAL DAMPING FACTOR . . . . . . . . . ',1pg20.13/,
606 .
' FRICTION CRITICAL DAMPING FACTOR. . . . . ',1pg20.13/,
607 .
' QUADRATIC DAMPING FLAG. . . . . . . . . . ',i5/,
608 .
' FORMULATION LEVEL . . . . . . . . . . . . ',i5/,
609 .
' MEAN POSSIBLE NUMBER OF IMPACT/NODE . . . ',i5/)
611 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
612 .
' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
614 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
615 .
' MAIN NODE (1:YES 0:NO) Y DIR ',i1/,
617 .
' CONSTANT STIFFNESS. . . . . . . . . . . . ',1pg20.13/,
618 .
' VARIABLE GAP FLAG . . . . . . . . . . . . ',i5/,
619 .
' MINIMUM GAP . . . . . . . . . . . . . . . ',1pg20.13/,
620 .
' START TIME. . . . . . . . . . . . . . . . ',1pg20.13/,
621 .
' STOP TIME . . . . . . . . . . . . . . . . ',1pg20.13/,
622 ' BUCKET FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
623 .
' DE-ACTIVATION OF INITIAL PENETRATIONS . . ',i10/,
624 .
' MAXIMAL INITIAL PENETRATION FACTOR. . . . ',1pg20.13/,
625 .
' CRITICAL DAMPING FACTOR . . . . . . . . . ',1pg20
626 .
' FRICTION CRITICAL DAMPING FACTOR. . . . . ',1pg20.13/,
627 .
' QUADRATIC DAMPING FLAG. . . . . . . . . . ',i5/,
628 .
' FORMULATION LEVEL . . . . . . . . . . . . ',i5/,
629 .
' MEAN POSSIBLE NUMBER OF IMPACT/NODE . . . ',i5/)
631 1518
FORMAT(
' FRICTION FORMULATION: INCREMENTAL (STIFFNESS) ',
633 1519
FORMAT(
' FRICTION FORMULATION: TOTAL (VISCOUS) ',
637 .
' FRICTION MODEL 1 (Viscous Polynomial)'/,
638 .
' MU = MUo + C1 p + C2 v + C3 pv + C4 p^2 + C5 v^2'/,
639 .
' C1 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
640 . ' c2 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
641 . ' c3 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
642 . ' c4 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
643 . ' c5 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
644 . ' tangential pressure limit. . .. . . . . .
',1PG20.13/)
646 . ' friction model 2 (darmstad law) :
'/,
647 . ' mu = muo+c1*exp(c2*v)*p^2+c3*exp(c4*v)*p+c5*exp
'/,
648 . ' muo. . . . . . . . . . . . . . . . . . .
',1PG20.13/,
649 . ' c1 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
650 . ' c2 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
651 . ' c3 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
652 . ' c4 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
653 . ' c5 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
654 . ' c6 . . . . . . . . . . . . . . . . . . .
',1PG20.13/)
656 . ' friction model 3 (renard law) :
'/,
657 . ' c1 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
658 . ' c2 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
659 . ' c3 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
660 . ' c4 . . . . . . . . . . .
',1PG20.13/,
661 . ' c5 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
662 . ' c6 . . . . . . . . . . . . . . . . . . .
',1PG20.13/)
664 . ' friction model 0 (coulomb law) :'/,
665 .
' FRICTION COEFFICIENT . . . . . . . . . ',1pg20
668 .
' FRICTION FILTERING FLAG. . . . . . . . . ',i10/,
669 .
' FILTERING FACTOR . . . . . . . . . . . . ',1pg20.13)
672 .
' NUMBER OF ELEMENTS WITHIN A 90 DEGREES FILLET ',i5/,
673 .
' --------------------------------------------- '/,
674 .
' CRITERIA FOR REFINEMENT DUE TO PENETRATION : '/,
675 .
' ------------------------------------------ '/,
676 .
' MINIMUM PERCENTAGE OF PENETRATION ',
678 .
' MAXIMUM ANGLE ON MAIN SIDE AT CONTACT LOCATION ',