41 1 IPARI ,STFAC ,FRIGAP ,NOINT ,NI ,
42 2 IGRSLIN ,SENSORS ,DEF_INTER ,TITR ,
43 3 NOM_OPT ,UNITAB ,LSUBMODEL ,NOM_OPTFRIC ,INTBUF_FRIC_TAB,
44 4 ID_TYPE19 ,NPARI ,NPARIR ,LNOPT1 ,ITHERM_FE ,INTHEAT)
60#include
"implicit_f.inc"
71 INTEGER,
INTENT(IN) :: NPARI,NPARIR,LNOPT1
72 INTEGER NOM_OPT(LNOPT1,*), NOM_OPTFRIC(LNOPT1,*)
74 INTEGER IPARI(NPARI),DEF_INTER(100),ID_TYPE19
75 INTEGER,
INTENT(IN) :: ITHERM_FE
76 INTEGER,
INTENT(INOUT) :: INTHEAT
79 CHARACTER(LEN=NCHARTITLE) :: TITR
80 TYPE(intbuf_fric_struct_) INTBUF_FRIC_TAB(*)
81 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
84 TYPE (SURF_) ,
TARGET ,
DIMENSION(NSLIN) :: IGRSLIN
85 TYPE (SENSORS_) ,
INTENT(IN) :: SENSORS
89 INTEGER ISU1,ISU2,IBC1, IBC2, IBC3, NTYP,,
90 . INACTI, IBC1M, IBC2M, , IGSTI, IS1, IS2,
91 . IGAP,MULTIMP, IDEL11,IDSENS,
92 . IPRINT,INTFRIC,IASSIGN,IFORM,IFORM_TH,IDELKEEP,
93 . ikthe,field6,flagremnod,iedge,ib1,ib2,ib3,ntyp0,
96 . fric,gap,startt,bumult,stopt,stmin,stmax,
97 . percent_size,visc,viscf,tint,kthe, xthe,
98 . frad, drad,dtmin,xthe_unit,stfac_unit,
100 CHARACTER(LEN=NCHARKEY) :: KEY1
103 INTEGER,
DIMENSION(:),
POINTER :: INGR2USR
137 edge_scale_gap = zero
154 IF (id_type19 > 0)
THEN
158 IF (nom_opt(1,i)==id_type19)
THEN
165 is_available = .false.
169 CALL hm_get_intv(
'secondaryentityids',isu1,is_available,lsubmodel)
170 CALL hm_get_intv(
'mainentityids',isu2,is_available,lsubmodel)
171 CALL hm_get_intv(
'Istf',igsti,is_available,lsubmodel)
172 CALL hm_get_intv(
'Ithe',intth,is_available,lsubmodel)
173 CALL hm_get_intv(
'Igap',igap,is_available,lsubmodel)
174 CALL hm_get_intv(
'Multimp',field6,is_available,lsubmodel)
175 CALL hm_get_intv(
'NodDel11',idel11,is_available,lsubmodel)
176 CALL hm_get_intv(
'IKREM',flagremnod,is_available,lsubmodel)
178 CALL hm_get_intv(
'Deactivate_X_BC',ib1,is_available,lsubmodel)
179 CALL hm_get_intv(
'Deactivate_Y_BC',ib2,is_available,lsubmodel)
180 CALL hm_get_intv(
'Deactivate_Z_BC',ib3,is_available,lsubmodel)
181 CALL hm_get_intv(
'INACTIV',inacti,is_available,lsubmodel)
183 CALL hm_get_intv(
'IFORM',iform,is_available,lsubmodel)
184 CALL hm_get_intv(
'ISENSOR',idsens,is_available,lsubmodel)
185 CALL hm_get_intv(
'Fric_ID',intfric,is_available,lsubmodel)
188 CALL hm_get_intv(
'IFORM1',iform_th,is_available,lsubmodel)
189 CALL hm_get_intv(
'fct_ID_k',ikthe,is_available,lsubmodel)
193 CALL hm_get_intv(
'IEDGE_TYPE19',field6,is_available,lsubmodel)
200 CALL hm_get_floatv(
'STMIN',stmin,is_available,lsubmodel,unitab)
201 CALL hm_get_floatv(
'STMAX',stmax,is_available,lsubmodel,unitab)
202 CALL hm_get_floatv(
'PrMesh_Size',percent_size,is_available,lsubmodel,unitab)
203 CALL hm_get_floatv(
'Tmin',dtmin,is_available,lsubmodel,unitab)
205 CALL hm_get_floatv(
'TYPE11_SCALE',stfac,is_available,lsubmodel,unitab)
206 CALL hm_get_floatv(
'FRIC',fric,is_available,lsubmodel,unitab)
209 CALL hm_get_floatv(
'EDGE_SCALE_GAP',edge_scale_gap,is_available,lsubmodel,unitab)
210 IF(edge_scale_gap /= zero) gap = gap * edge_scale_gap
213 CALL hm_get_floatv(
'TSTOP',stopt,is_available,lsubmodel,unitab)
215 CALL hm_get_floatv(
'STIFF_DC',visc,is_available,lsubmodel,unitab)
216 CALL hm_get_floatv(
'FRIC_DC',viscf,is_available,lsubmodel,unitab)
217 CALL hm_get_floatv(
'SORT_FACT',bumult,is_available,lsubmodel,unitab)
220 CALL hm_get_floatv(
'Kthe',kthe,is_available,lsubmodel,unitab)
221 CALL hm_get_floatv(
'Tint',tint,is_available,lsubmodel,unitab)
222 CALL hm_get_floatv(
'A_scale_k',xthe,is_available,lsubmodel,unitab)
223 CALL hm_get_floatv(
'F_RAD',frad,is_available,lsubmodel,unitab)
224 CALL hm_get_floatv(
'D_RAD',drad,is_available,lsubmodel,unitab
234 CALL definter(key1 ,igsti ,iassign ,iprint ,
238 CALL definter(key1 ,igap ,iassign ,iprint ,
246 CALL definter(key1 ,inacti ,iassign ,iprint ,
252 CALL definter(key1 ,modfr ,iassign ,iprint ,
257 CALL definter(key1 ,iform ,iassign ,iprint ,
262 CALL definter(key1 ,flagremnod,iassign ,iprint ,
275 CALL definter(key1 ,iedge ,iassign ,iprint ,
304 IF (ipari(71)==0)
THEN
334 ingr2usr => igrslin(1:nslin)%ID
335 isu1=ngr2usr(isu1,ingr2usr,nslin)
336 isu2=ngr2usr(isu2,ingr2usr,nslin)
342 IF (idel11>2.OR.n2d==1) idel11 = 0
346 IF (flagremnod == 0) flagremnod = 1
347 ipari(63) = flagremnod
358 IF(stmax==zero)stmax=ep30
364 IF (iform == 0) iform = 1
369 IF(igap == 3 .AND. percent_size == zero)
372 frigap(28) = percent_size
380 IF (stfac == zero)
THEN
382 CALL hm_get_floatv_dim(
'TYPE11_SCALE' ,stfac_unit ,is_available, lsubmodel, unitab)
383 stfac = one * stfac_unit
385 IF (igsti == 1)stfac=-stfac
386 IF (stfac < zero) igsti = 1
389 IF (stopt == zero) stopt = ep30
410 IF(visc==zero)visc=fiveem2
412 IF(fric/=zero.AND.viscf==zero.AND.iform/=2)viscf=one
414 ipari(11)=4*ibc1+2*ibc2+ibc3 + 8 *(4*ibc1m+2*ibc2m+ibc3m)
418 IF(bumult==zero)
THEN
420 IF(numnod > 2500000)
THEN
422 ELSEIF(numnod > 1500000)
THEN
423 bumult = bmul0*three/two
436 IF(intth > 0 ) intheat = 1
442 IF (xthe == zero)
THEN
445 xthe = one * xthe_unit
452 IF(itherm_fe == 0 .AND. intth > 0 )
THEN
456 . msgtype=msgwarning,
474 nlin1 = igrslin(isu1)%NSEG
475 nlin2 = igrslin(isu2)%NSEG
476 IF ((ntyp == 19).AND.((nlin1==0).OR.(nlin2==0)))
THEN
481 . msgtype=msgwarning,
500 IF (id_type19 > 0)
RETURN
508 CALL definter(key1 ,igsti ,iassign ,iprint ,
512 CALL definter(key1 ,igap ,iassign ,iprint ,
516 CALL definter(key1 ,idel11 ,iassign ,iprint ,
520 CALL definter(key1 ,iform ,iassign ,iprint ,
524 CALL definter(key1 ,inacti ,iassign ,iprint ,
528 CALL definter(key1 ,flagremnod,iassign ,iprint ,
536 . igsti,stmin,stmax,stfac,
537 . fric,igap,gap,idsens,
539 . ipari(20),multimp,flagremnod
541 WRITE(iout,1592)ibc1,ibc2,ibc3,ibc1m,ibc2m,ibc3m,
542 . igsti,stmin,stmax,stfac,
543 . fric,igap,gap,startt,stopt,
544 . bumult,inacti,visc,viscf,ipari(14),
545 . ipari(20),multimp,flagremnod
549 WRITE(iout,1591)ibc1,ibc2,ibc3,ibc1m,ibc2m,ibc3m,
550 . -stfac,fric,igap,gap,idsens,
551 . bumult,inacti,visc,viscf,ipari(14),
552 . ipari(20),multimp,flagremnod
554 WRITE(iout,1593)ibc1,ibc2,ibc3,ibc1m,ibc2m,ibc3m,
555 . -stfac,fric,igap,gap,startt,stopt,
556 . bumult,inacti,visc,viscf,ipari(14),
557 . ipari(20),multimp,flagremnod
565 IF (dtmin/=zero)
THEN
566 WRITE(iout,1577)dtmin
569 WRITE(iout,
'(A,A,I5/)')
570 .
' DELETION FLAG ON FAILURE OF MAIN ELEMENT',
571 .
' (1:YES-ALL/2:YES-ANY) SET TO ',idel11
572 IF(idelkeep == 1)
THEN
574 .
' IDEL: DO NOT REMOVE NON-CONNECTED NODES FROM SECONDARY SURFACE'
579 WRITE(iout,2504) kthe,tint,frad,drad
581 WRITE(iout,2505) ikthe,xthe,kthe,tint,frad,drad
584 IF(intfric > 0 )
WRITE(iout,5030) intfric
589 WRITE(iout,
'(6X,A)')
'NO SECONDARY SURFACE INPUT'
591 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY SEGMENTS'
593 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY NODES'
595 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY SEGMENTS'
597 WRITE(iout,
'(6X,A)')
'SECONDARY SIDE INPUT BY BRICKS'
599 WRITE(iout,
'(6X,A)')
'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
602 WRITE(iout,
'(6X,A)')
'NO MAIN SURFACE INPUT'
604 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY SEGMENTS'
606 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY NODES'
608 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY SEGMENTS'
610 WRITE(iout,
'(6X,A)')
'MAIN SURFACE REFERS ',
611 .
'TO HYPER-ELLIPSOIDAL SURFACE'
617 1518
FORMAT(
' FRICTION FORMULATION: INCREMENTAL (STIFFNESS) ',
619 1519
FORMAT(
' FRICTION FORMULATION: TOTAL (VISCOUS) ',
622 .
' MINIMUM TIME STEP . . . . . . . . . . . . ',1pg20.13/)
624 .
' TYPE==11 EDGE to EDGE AUTO IMPACTING ' //,
625 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
626 .
' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
628 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
629 .
' MAIN NODE (1:YES 0:NO) Y DIR ',i1/,
631 .
' STIFFNESS FORMULATION . . . . . . . . . ',i1/,
632 .
' 2,3,4,5 : STIFFNESS IS COMPUTED FROM STIFFNESS ON MAIN SIDE'/,
633 .
' AND STIFFNESS AT SECONDARY NODES'/,
634 .
' MINIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
635 .
' MAXIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
636 .
' STIFFNESS FACTOR. . . . . . . . . . . . . . ',1pg20.13/,
637 .
' FRICTION FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
638 .
' VARIABLE GAP FLAG . . . . . . . . . . . . . ',i5/,
639 .
' MINIMUM GAP . . . . . . . . . . . . . . . . ',1pg20.13/,
640 .
' START TIME/STOP TIME ACTIVATED BY SENSOR ID ',i10/,
641 .
' BUCKET FACTOR . . . . . . . . . . . . . . . ',1pg20.13/,
642 .
' DE-ACTIVATION OF INITIAL PENETRATIONS . . . ',i10/,
643 .
' CRITICAL DAMPING FACTOR . . . . . . . . . . ',1pg20.13/,
644 .
' FRICTION CRITICAL DAMPING FACTOR. . . . . . ',1pg20.13/,
645 .
' QUADRATIC DAMPING FLAG. . . . . . . . . . . ',i5/,
646 .
' FORMULATION LEVEL . . . . . . . . . . . . . ',i5/,
647 .
' MEAN POSSIBLE NUMBER OF IMPACT/LINE . . . . ',i5/,
648 .
' FLAGREMNODE : NOT CONSIDER NEIGHBORING . . ',i5/)
650 .
' TYPE==11 EDGE to EDGE AUTO IMPACTING ' //,
651 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
652 .
' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
654 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
655 .
' MAIN NODE (1:YES 0:NO) Y DIR ',i1/,
657 .
' STIFFNESS FORMULATION . . . . . . . . . ',i1/,
658 .
' 2,3,4,5 : STIFFNESS IS COMPUTED FROM STIFFNESS ON MAIN SIDE'/,
659 .
' AND STIFFNESS AT SECONDARY NODES'/,
660 .
' MINIMUM STIFFNESS. . . . . . . . . . . . ',1pg20.13/,
661 .
' MAXIMUM STIFFNESS. . . . . . . . . . . . ',1pg20.13/,
662 .
' STIFFNESS FACTOR. . . . . . . . . . . . . ',1pg20.13/,
663 .
' FRICTION FACTOR . . . . . . . . . . . . . ',1pg20.13/,
664 .
' VARIABLE GAP FLAG . . . . . . . . . . . . ',i5/,
665 .
' MINIMUM GAP . . . . . . . . . . . . . . . ',1pg20.13/,
666 .
' START TIME. . . . . . . . . . . . . . . . ',1pg20.13/,
667 .
' STOP TIME . . . . . . . . . . . . . . . . ',1pg20.13/,
668 .
' BUCKET FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
669 .
' DE-ACTIVATION OF INITIAL PENETRATIONS . . ',i10/,
670 .
' CRITICAL DAMPING FACTOR . . . . . . . . . ',1pg20.13/,
671 .
' FRICTION CRITICAL DAMPING FACTOR. . . . . ',1pg20.13/,
672 .
' QUADRATIC DAMPING FLAG. . . . . . . . . . ',i5/,
673 .
' FORMULATION LEVEL . . . . . . . . . . . . ',i5/,
674 .
' MEAN POSSIBLE NUMBER OF IMPACT/LINE . . . ',i5/,
675 .
' FLAGREMNODE : NOT CONSIDER NEIGHBORING . . ',i5/)
677 .
' Thermal interface ' //,
678 .
' Thermal heat exchange coefficient. . . . .',1pg20.
679 .
' Interface temperature . . . . . . . . . . ',1pg20.13/,
680 .
' Radiation factor . . . . . . . . . . . . . ',1pg20.13/,
681 .
' Maximum distance for radiation computation.',1pg20.13)
683 .
' Thermal interface ' //,
684 .
' Function for thermal heat exchange coefficient wrt contact pressure',i10/,
685 .
' Abscissa scale factor on IFUNTCK. . . . . ',1pg20.13/,
686 .
' Ordinate scale factor on IFUNTCK . . . . ',1pg20.13/,
687 .
' Interface temperature . . . . . . . . . . ',1pg20.13/,
688 .
' Radiation factor . . . . . . . . . . . . . ',1pg20.13/,
689 .
' Maximum distance for radiation computation.',1pg20.13)
692 .
' TYPE==11 EDGE to EDGE AUTO IMPACTING ' //,
693 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
694 .
' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
696 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
697 .
' MAIN NODE (1:YES 0:NO) Y DIR ',i1/,
699 .
' CONSTANT STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
700 .
' FRICTION FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
701 .
' VARIABLE GAP FLAG . . . . . . . . . . . . . ',i5/,
702 .
' MINIMUM GAP . . . . . . . . . . . . . . . . ',1pg20.13/,
703 .
' START TIME/STOP TIME ACTIVATED BY SENSOR ID ',i10/,
704 .
' BUCKET FACTOR . . . . . . . . . . . . . . . ',1pg20.13/,
705 .
' DE-ACTIVATION OF INITIAL PENETRATIONS . . . ',i10/,
706 .
' CRITICAL DAMPING FACTOR . . . . . . . . . . ',1pg20.13/,
707 .
' FRICTION CRITICAL DAMPING FACTOR. . . . . . ',1pg20.13/,
708 .
' QUADRATIC DAMPING FLAG. . . . . . . . . . . ',i5/,
709 .
' FORMULATION LEVEL . . . . . . . . . . . . . ',i5/,
710 .
' MEAN POSSIBLE NUMBER OF IMPACT/LINE . . . . ',i5/,
711 .
' FLAGREMNODE : NOT CONSIDER NEIGHBORING . . ',i5/)
713 .
' TYPE==11 EDGE to EDGE AUTO IMPACTING ' //,
714 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
715 .
' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
717 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
718 .
' MAIN NODE (1:YES 0:NO) Y DIR ',i1/,
720 .
' CONSTANT STIFFNESS. . . . . . . . . . . . ',1pg20.13/,
721 .
' FRICTION FACTOR . . . . . . . . . . . . . ',1pg20.13/,
722 .
' VARIABLE GAP FLAG . . . . . . . . . . . . ',i5/,
723 .
' MINIMUM GAP . . . . . . . . . . . . . . . ',1pg20.13/,
724 .
' START TIME. . . . . . . . . . . . . . . . ',1pg20.13/,
725 .
' STOP TIME . . . . . . . . . . . . . . . . ',1pg20.13/,
726 .
' BUCKET FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
727 .
' DE-ACTIVATION OF INITIAL PENETRATIONS . . ',i10/,
728 .
' CRITICAL DAMPING FACTOR . . . . . . . . . ',1pg20.13/,
729 .
' FRICTION CRITICAL DAMPING FACTOR. . . . . ',1pg20.13/,
730 .
' QUADRATIC DAMPING FLAG. . . . . . . . . . ',i5/,
731 .
' FORMULATION LEVEL . . . . . . . . . . . . ',i5/,
732 . ' mean possible number of impact/line . . .
',I5/,
733 . ' flagremnode : not consider neighboring . .
',I5/)
736 . ' INTERFACE friction model. . . . . . . . .
',I10)