46
47
48
49
50
52 USE intbuf_fric_mod
56 USE sensor_mod
57 USE intbufdef_mod
59
60
61
62#include "implicit_f.inc"
63
64
65
66 INTEGER,INTENT(IN) :: NPARI,NPARIR,SNPC,SNPC1,LNOPT1
67 INTEGER,INTENT(IN) :: ITHERM_FE
68 INTEGER,INTENT(INOUT) :: INTHEAT
69 INTEGER,INTENT(IN) :: NOM_OPTFRIC(LNOPT1,NINTERFRIC)
70 INTEGER NOM_OPT(LNOPT1,*)
71 INTEGER ISU1, ISU2, NI
72 INTEGER IPARI(NPARI),NPC1(SNPC1),NPC(SNPC)
74 my_real frigap(nparir),fric_p(10),tf(*)
75 CHARACTER(LEN=NCHARTITLE),INTENT(IN) :: TITR
76
77 TYPE (SURF_) ,TARGET , DIMENSION(NSURF) :: IGRSURF
78 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(NSUBMOD)
79 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
80 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
81 TYPE(INTBUF_FRIC_STRUCT_),INTENT(INOUT) :: INTBUF_FRIC_TAB(NINTERFRIC)
82
83
84
85#include "scr06_c.inc"
86#include "com01_c.inc"
87#include "com04_c.inc"
88#include "intstamp_c.inc"
89#include "units_c.inc"
90#include "scr12_c.inc"
91#include "remesh_c.inc"
92
93
94
95
96 INTEGER I,IBC1, IBC2, IBC3, NOINT, NTYP,INACTI, IBC1M,
97 . IBC2M, IBC3M, IGSTI,IS1, IS2,ILEV, IGAP,MULTIMP,
98 . MFROT,IFQ,MODFR,IADM,NRADM,INTTH,IFORM,IKTHE,
99 . IDEL21,IDSENS,IDELKEEP,INTKG,INVN,
100 . IFRICTH,IFTLIM,FCOND,INTFRIC
102 . fric,gap,startt,bumult,stopt,fheat,tint,padm,
103 . angladm, cadm, depth,c1,c2,c3,c4,c5,c6,
alpha,gapscale,gapmax,
104 . stmin,stmax, pmax, kthe, xthe, frad, drad,
105 . visc,xfricth,pskid,dcond,xthe_unit,kthe_unit
106 INTEGER, DIMENSION(:), POINTER :: INGR2USR
107 LOGICAL
108
109
110
111 INTEGER NGR2USR
112
113
114
115
116
117 is1=0
118 is2=0
119 ibc1=0
120 ibc2=0
121 ibc3=0
122 ibc1m=0
123 ibc2m=0
124 ibc3m=0
125 mfrot=0
126 ifq=0
127 igsti = 0
128 invn = 0
129 iftlim=1
130 iadm =0
131 nradm=1
132 inacti = 0
133 ilev = 0
134 idsens = 0
135 idel21= 0
136 idelkeep=0
137 intth = 0
138 ifricth = 0
139 ikthe= 0
140 iform = 0
141 intkg = 0
142 fcond = 0
143 igap = 0
144 multimp = 0
145 intfric = 0
146
147 padm =one
148 angladm=zero
149 stopt=ep30
150 fric = zero
151 gap = zero
152 gapscale = zero
153 startt = zero
154 visc = zero
155 xfiltr = zero
156
157 DO i = 1, 10
158 fric_p(i) = zero
159 ENDDO
160
161 kthe = zero
162 xthe = zero
163 tint = zero
164 frad = zero
165 drad = zero
166 fheat= zero
167 c1=zero
168 c2=zero
169 c3=zero
170 c4=zero
171 c5=zero
172 c6=zero
173 gapmax=ep30
174 gapscale = zero
175 dcond = zero
176 depth = zero
177
178 nintstamp=nintstamp+1
179 ipari(43)=nintstamp
180
181 ntyp=21
182 ipari(15)=noint
183 ipari(7)=ntyp
184
185 is_available = .false.
186
187
188
189 CALL hm_get_intv(
'secondaryentityids',isu1,is_available,lsubmodel)
190 CALL hm_get_intv(
'mainentityids',isu2,is_available,lsubmodel)
191 CALL hm_get_intv(
'Istf',igsti,is_available,lsubmodel)
192 CALL hm_get_intv(
'Ithe',intth,is_available,lsubmodel)
193 CALL hm_get_intv(
'Igap',igap,is_available,lsubmodel)
194 CALL hm_get_intv(
'Multimp',multimp,is_available,lsubmodel)
195 CALL hm_get_intv(
'TYPE21_Idel',idel21,is_available,lsubmodel)
196 CALL hm_get_intv(
'TYPE21_Invn',invn,is_available,lsubmodel)
197 CALL hm_get_intv(
'Iadm',iadm,is_available,lsubmodel)
198
199 IF(igap==1.OR.igap==2)
CALL hm_get_intv(
'TYPE21_ITim',iftlim,is_available,lsubmodel)
200
201 CALL hm_get_intv(
'Deactivate_X_BC',ibc1,is_available,lsubmodel)
202 CALL hm_get_intv(
'Deactivate_Y_BC',ibc2,is_available,lsubmodel)
203 CALL hm_get_intv(
'Deactivate_Z_BC',ibc3,is_available,lsubmodel)
204 CALL hm_get_intv(
'INACTIV',inacti,is_available,lsubmodel)
205
206 CALL hm_get_intv(
'Ifric',mfrot,is_available,lsubmodel)
207 CALL hm_get_intv(
'Ifiltr',ifq,is_available,lsubmodel)
208 CALL hm_get_intv(
'ISENSOR',idsens,is_available,lsubmodel)
209 CALL hm_get_intv(
'Crx_Fun',ifricth,is_available,lsubmodel)
210 CALL hm_get_intv(
'Ifric',mfrot,is_available,lsubmodel)
211 CALL hm_get_intv(
'Fric_ID',intfric,is_available,lsubmodel)
212
213 IF(iadm==2)
CALL hm_get_intv(
'NRadm',nradm,is_available,lsubmodel)
214
215 IF(intth > 0) THEN
216 CALL hm_get_intv(
'Ithe_form',iform,is_available,lsubmodel)
217 CALL hm_get_intv(
'fct_ID_k',ikthe,is_available,lsubmodel)
218 CALL hm_get_intv(
'F_COND',fcond,is_available,lsubmodel)
219 ENDIF
220
221
222
223
224 IF(igap==1.OR.igap==2)THEN
225 CALL hm_get_floatv(
'GAPSCALE',gapscale,is_available,lsubmodel,unitab)
226 CALL hm_get_floatv(
'GAPMAX',gapmax,is_available,lsubmodel,unitab)
227 CALL hm_get_floatv(
'DIST',depth,is_available,lsubmodel,unitab)
228 CALL hm_get_floatv(
'PMAX',pmax,is_available,lsubmodel,unitab)
229 ENDIF
230
231 CALL hm_get_floatv(
'STMIN',stmin,is_available,lsubmodel,unitab)
232 CALL hm_get_floatv(
'STMAX',stmax,is_available,lsubmodel,unitab)
233 CALL hm_get_floatv(
'Pskid',pskid,is_available,lsubmodel,unitab)
234
235 CALL hm_get_floatv(
'STFAC',stfac,is_available,lsubmodel,unitab)
236 CALL hm_get_floatv(
'FRIC',fric,is_available,lsubmodel,unitab)
238 CALL hm_get_floatv(
'TSTART',startt,is_available,lsubmodel,unitab)
239 CALL hm_get_floatv(
'TSTOP',stopt,is_available,lsubmodel,unitab)
240
241 CALL hm_get_floatv(
'VISC',visc,is_available,lsubmodel,unitab)
242 CALL hm_get_floatv(
'SORT_FACT',bumult,is_available,lsubmodel,unitab)
243
245 CALL hm_get_floatv('scale1
',XFRICTH,IS_AVAILABLE,LSUBMODEL,UNITAB)
246
247 IF (MFROT>0) THEN
248 CALL HM_GET_FLOATV('c1',C1,IS_AVAILABLE,LSUBMODEL,UNITAB)
249 CALL HM_GET_FLOATV('c2',C2,IS_AVAILABLE,LSUBMODEL,UNITAB)
250 CALL HM_GET_FLOATV('c3',C3,IS_AVAILABLE,LSUBMODEL,UNITAB)
251 CALL HM_GET_FLOATV('c4',C4,IS_AVAILABLE,LSUBMODEL,UNITAB)
252 CALL HM_GET_FLOATV('c5',C5,IS_AVAILABLE,LSUBMODEL,UNITAB)
253 ENDIF
254 IF (MFROT>1) THEN
255 CALL HM_GET_FLOATV('c6',C6,IS_AVAILABLE,LSUBMODEL,UNITAB)
256 ENDIF
257
258 IF(IADM==2)THEN
259 CALL HM_GET_FLOATV('padm',PADM,IS_AVAILABLE,LSUBMODEL,UNITAB)
260 CALL HM_GET_FLOATV('angladm',ANGLADM,IS_AVAILABLE,LSUBMODEL,UNITAB)
261 ENDIF
262
263
264 IF(INTTH > 0) THEN
265 CALL HM_GET_FLOATV('kthe',KTHE,IS_AVAILABLE,LSUBMODEL,UNITAB)
266 CALL HM_GET_FLOATV('tint',TINT,IS_AVAILABLE,LSUBMODEL,UNITAB)
267 CALL HM_GET_FLOATV('a_scale_k',XTHE,IS_AVAILABLE,LSUBMODEL,UNITAB)
268 CALL HM_GET_FLOATV('f_rad',FRAD,IS_AVAILABLE,LSUBMODEL,UNITAB)
269 CALL HM_GET_FLOATV('d_rad',DRAD,IS_AVAILABLE,LSUBMODEL,UNITAB)
270 CALL HM_GET_FLOATV('heat_al',FHEAT,IS_AVAILABLE,LSUBMODEL,UNITAB)
271 CALL HM_GET_FLOATV('d_cond',DCOND,IS_AVAILABLE,LSUBMODEL,UNITAB)
272 ENDIF
273
274
275
276
277
278
279
280
281 IF (IDEL21 < 0) THEN
282 IDELKEEP=1
283 IDEL21=ABS(IDEL21)
284 END IF
285
286.OR. IF (IDEL21>2N2D==1) IDEL21 = 0
287
288 IF(ILEV==0)THEN
289 ILEV=1
290 ELSEIF(ILEV==-1)THEN
291
292 ILEV=0
293 END IF
294
295 IS1=1
296 INGR2USR => IGRSURF(1:NSURF)%ID
297 ISU1=NGR2USR(ISU1,INGR2USR,NSURF)
298 IS2=1
299 ISU2=NGR2USR(ISU2,INGR2USR,NSURF)
300
301.AND. IF (IADM/=0NADMESH==0) THEN
302 CALL ANCMSG(MSGID=647,
303 . MSGTYPE=MSGWARNING,
304 . ANMODE=ANINFO_BLIND_2,
305 . I1=NOINT,
306 . C1=TITR)
307 IADM=0
308 ENDIF
309
310
311 IPARI(21) = IGAP
312 IPARI(61) = IDELKEEP
313 IPARI(17) = IDEL21
314 IPARI(20) = ILEV
315 IPARI(34) = IGSTI
316 IPARI(51) = INVN ! flag to detect if normals are inverted (default =0)
317 IPARI(45)=ISU1
318 IPARI(46)=ISU2
319 IPARI(13)=IS1*10+IS2
320 IPARI(44)=IADM
321
322 IF(MULTIMP==0)THEN
323 MULTIMP=12
324 END IF
325 IPARI(23)=MULTIMP
326
327
328
329
330.OR. IF(IGAP==1IGAP==2)THEN
331
332
333
334 IF(GAPSCALE==ZERO)GAPSCALE=ONE
335
336
337 IF(IGAP==2) INTER_ITHKNOD=1 !defined in interface module (common_source directory)
338
339 IF(IGAP==2)THEN
340 IF(PMAX==ZERO) PMAX=EP30
341 ELSE
342
343 PMAX=EP30
344 END IF
345
346
347 ELSE
348
349 PMAX=EP30
350 ENDIF
351
352
353 FRIGAP(19) = GAPSCALE
354 FRIGAP(16) = GAPMAX
355 FRIGAP(23) = DEPTH
356 FRIGAP(15) = PMAX
357 IPARI(52) = IFTLIM ! flag to deactivate tangential force limitation (default =1)
358
359
360
361
362
363
364
365
366 IF(IGSTI==0)THEN
367 I7STIFS=1
368 IF(STMAX==ZERO)STMAX=EP30
369 FRIGAP(17) = STMIN
370 FRIGAP(18) = STMAX
371 ELSE
372 STMIN = ZERO
373 STMAX = EP30
374 END IF
375
376 IF(PSKID==ZERO) PSKID=EP30
377 FRIGAP(35) = PSKID
378
379
380
381
382
383
384
385 IF(STFAC==ZERO) THEN
386 STFAC=ONE
387 ENDIF
388 IF(IGSTI==1)STFAC=-STFAC
389
390 IF (STOPT == ZERO) STOPT = EP30
391
392
393 IPARI(34)=IGSTI
394 FRIGAP(1)=FRIC
395 FRIGAP(2)=GAP
396 FRIGAP(3)=STARTT
397 FRIGAP(11)=STOPT
398
399
400
401
402 IF(VISC==ZERO) VISC=ONE
403
404
405
406 IPARI(11)=4*IBC1+2*IBC2+IBC3 + 8 *(4*IBC1M+2*IBC2M+IBC3M)
407 IPARI(22)=INACTI
408 FRIGAP(14)=VISC
409
410
411 IF(BUMULT==ZERO) THEN
412 BUMULT = BMUL0
413 IF(NUMNOD > 2500000) THEN
414 BUMULT = BMUL0*TWO
415 ELSEIF(NUMNOD > 1500000) THEN
416 BUMULT = BMUL0*THREE/TWO
417 END IF
418 END IF
419 FRIGAP(4)=BUMULT
420
421
422
423
424
425
426
427 IF(FRIC == ZERO)THEN
428 IF(IFRICTH /= 0)THEN
429 FRIC = ONE
430 ENDIF
431 ENDIF
432
433 IF(XFRICTH == ZERO) XFRICTH=ONE
434
435 IF (ALPHA==ZERO) IFQ = 0
436
437 MODFR=2
438 IFQ = IFQ + 10
439
440 IF (IFQ>0) THEN
441 IF (IFQ==10) XFILTR = ONE
442 IF (MOD(IFQ,10)==1) XFILTR = ALPHA
443 IF (MOD(IFQ,10)==2) XFILTR=FOUR*ATAN2(ONE,ZERO) / ALPHA
444 IF (MOD(IFQ,10)==3) XFILTR=FOUR*ATAN2(ONE,ZERO) * ALPHA
445 IF (XFILTR<ZERO) THEN
446 CALL ANCMSG(MSGID=554,
447 . MSGTYPE=MSGERROR,
448 . ANMODE=ANINFO_BLIND_1,
449 . I1=NOINT,
450 . C1=TITR,
451 . R1=ALPHA)
452.AND. ELSEIF (XFILTR>1MOD(IFQ,10)<=2) THEN
453 CALL ANCMSG(MSGID=554,
454 . MSGTYPE=MSGERROR,
455 . ANMODE=ANINFO_BLIND_1,
456 . I1=NOINT,
457 . C1=TITR,
458 . R1=ALPHA)
459 ENDIF
460 ELSE
461 XFILTR = ZERO
462 ENDIF
463
464
465
466
467
468 FRIC_P(1) = C1
469 FRIC_P(2) = C2
470 FRIC_P(3) = C3
471 FRIC_P(4) = C4
472 FRIC_P(5) = C5
473 FRIC_P(6) = C6
474 IPARI(50) = IFRICTH
475 FRIGAP(34) = XFRICTH
476 IPARI(30) = MFROT
477 IPARI(31) = IFQ
478 IPARI(72) = INTFRIC
479
480
481
482
483
484 IF(IADM==2)THEN
485 IF(NRADM==0) NRADM =3
486 IF(PADM==ZERO) PADM =ONE
487 ELSE
488 NRADM =1
489 PADM =ONE
490 ANGLADM=ZERO
491 END IF
492
493
494 CADM =COS(ANGLADM*PI/HUNDRED80)
495 KCONTACT =MAX(KCONTACT,IADM)
496 IPARI(49) =NRADM
497 FRIGAP(24)=PADM
498 FRIGAP(25)=CADM
499
500
501
502 IF(INTTH > 0 ) THEN
503 INTHEAT = 1
504 ENDIF
505
506
507
508 IF(KTHE == ZERO)THEN
509 IF(IKTHE /= 0)THEN
510 KTHE = ONE
511 CALL HM_GET_FLOATV_DIM('kthe' ,KTHE_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
512 KTHE = ONE * KTHE_UNIT
513 ENDIF
514 ENDIF
515
516 IF (XTHE == ZERO) THEN
517 !units
518 CALL HM_GET_FLOATV_DIM('a_scale_k' ,XTHE_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
519 XTHE = ONE * XTHE_UNIT
520 ENDIF
521
522 IF(IFORM /= 0)THEN
523 INTTH = 2
524 IPARI(47) = 2
525 ENDIF
526
527
528 IPARI(47) = INTTH
529 IPARI(48) = IFORM
530 IPARI(42) = IKTHE
531 FRIGAP(21 ) = TINT
532 FRIGAP(30) = XTHE
533
534
535
536
537
538
539
540.AND. IF(ITHERM_FE == 0 INTTH > 0 ) THEN
541 INTHEAT = 0
542 IPARI(47) = 0
543 CALL ANCMSG(MSGID=702,
544 . MSGTYPE=MSGWARNING,
545 . ANMODE=ANINFO,
546 . I1=NOINT,
547 . C1=TITR,
548 . R1=DCOND,
549 . R2=DRAD)
550 ENDIF
551
552 IF(INTTH == 2 ) FTEMPVAR21 = 1
553
554 IF(FCOND ==0) DCOND = ZERO
555
556 IF(FRAD==ZERO ) DRAD = ZERO
557
558.AND..AND. IF(FCOND /= 0DCOND/=ZERODRAD==ZERO) THEN
559 DRAD = DCOND
560 CALL ANCMSG(MSGID=1810,
561 . MSGTYPE=MSGWARNING,
562 . ANMODE=ANINFO,
563 . I1=NOINT,
564 . C1=TITR,
565 . R1=DCOND,
566 . R2=DRAD)
567 ENDIF
568
569 IF(DCOND > DRAD) THEN
570 DCOND = DRAD
571 CALL ANCMSG(MSGID=1809,
572 . MSGTYPE=MSGWARNING,
573 . ANMODE=ANINFO,
574 . I1=NOINT,
575 . C1=TITR,
576 . R1=DCOND,
577 . R2=DRAD)
578 ENDIF
579
580
581
582 FRIGAP(20) = KTHE
583 FRIGAP(31) = FRAD
584 FRIGAP(32) = DRAD
585 FRIGAP(33) = FHEAT
586 FRIGAP(36) = DCOND ! max conduction distance
587 IPARI(53) = FCOND ! function of variation of heat exchange as funct of distance
588
589 IPARI(65) = INTKG
590
591 FRIGAP(10)=FLOAT(0)
592
593
594
595
596
597
598 CALL INTER_DCOD_FUNCTION(NTYP,NI,IPARI,NPC1,NOM_OPT,NPC,TF)
599 CALL INTER_DCOD_SENSOR (NTYP,NI,IPARI,NOM_OPT,SENSORS)
600 CALL INTER_DCOD_FRICTION(NTYP,NI,IPARI,NOM_OPT,NOM_OPTFRIC,
601 . INTBUF_FRIC_TAB)
602
603
604
605
606
607
608 IF(IDSENS/=0) THEN
609 WRITE(IOUT,2101)IBC1,IBC2,IBC3,IBC1M,IBC2M,IBC3M,
610 . ILEV,IGSTI,STFAC,STMIN,STMAX,
611 . FRIC,IGAP,GAP,GAPMAX,GAPSCALE,IDSENS,
612 . BUMULT,INACTI,VISC,PMAX,MULTIMP,INVN,IFTLIM,
613 . PSKID
614 ELSE
615 WRITE(IOUT,2104)IBC1,IBC2,IBC3,IBC1M,IBC2M,IBC3M,
616 . ILEV,IGSTI,STFAC,STMIN,STMAX,
617 . FRIC,IGAP,GAP,GAPMAX,GAPSCALE,STARTT,STOPT,
618 . BUMULT,INACTI,VISC,PMAX,MULTIMP,INVN,IFTLIM,
619 . PSKID
620 ENDIF
621
622 IF(INTFRIC > 0 ) THEN
623 WRITE(IOUT,1527) INTFRIC
624 ELSE
625
626 WRITE(IOUT,1520)MOD(IFQ,10), XFILTR
627
628 IF(MFROT==0)THEN
629 IF(IFRICTH ==0 ) THEN
630 WRITE(IOUT,1524) FRIC
631 ELSE
632 WRITE(IOUT,1525) IFRICTH,XFRICTH,FRIC
633 ENDIF
634 ELSEIF(MFROT==1)THEN
635 WRITE(IOUT,1515)FRIC_P(1),FRIC_P(2),FRIC_P(3),
636 . FRIC_P(4),FRIC_P(5)
637 ELSEIF(MFROT==2)THEN
638 WRITE(IOUT,1522)FRIC,FRIC_P(1),FRIC_P(2),FRIC_P(3),
639 . FRIC_P(4),FRIC_P(5),FRIC_P(6)
640 ELSEIF(MFROT==3)THEN
641 WRITE(IOUT,1523)FRIC_P(1),FRIC_P(2),FRIC_P(3),
642 . FRIC_P(4),FRIC_P(5),FRIC_P(6)
643 ELSEIF(MFROT==4)THEN
644 WRITE(IOUT,1526) FRIC,FRIC_P(1),FRIC_P(2)
645 ENDIF
646 ENDIF
647
648 IF(IDEL21/=0) THEN
649 WRITE(IOUT,'(a,i5/)')
650 . ' deletion flag on failure(1:yes) : ',IDEL21
651 IF(IDELKEEP == 1)THEN
652 WRITE(IOUT,'(a)')
653 . ' idel: DO not remove non-connected nodes from secondary surface'
654 ENDIF
655 ENDIF
656 IF(IADM/=0) THEN
657 WRITE(IOUT,*)' mesh refinement CASE of contact',
658 . ' (0:no/1:due to curvature/2:due to curvature or penetration)',
659 . ' set to ',IADM
660 IF(IADM==2)THEN
661 WRITE(IOUT,1557) NRADM,PADM,ANGLADM
662 END IF
663 ENDIF
664
665 IF(INTTH > 0 )THEN
666 IF(IKTHE==0)THEN
667 WRITE(IOUT,2102) KTHE,TINT,FRAD,DRAD,FHEAT,IFORM,FCOND,DCOND
668 ELSE
669 WRITE(IOUT,2103) IKTHE,XTHE,KTHE,TINT,FRAD,DRAD,FHEAT,IFORM,FCOND,DCOND
670 END IF
671 END IF
672
673 IF(IS1==0)THEN
674 WRITE(IOUT,'(6x,a)')'no secondary surface input'
675 ELSEIF(IS1==1)THEN
676 WRITE(IOUT,'(6x,a)')'secondary surface input by segments'
677 ELSEIF(IS1==2)THEN
678 WRITE(IOUT,'(6x,a)')'secondary surface input by nodes'
679 ELSEIF(IS1==3)THEN
680 WRITE(IOUT,'(6x,a)')'secondary surface input by segments'
681 ELSEIF(IS1==4 )THEN
682 WRITE(IOUT,'(6x,a)')'secondary side input by bricks'
683 ELSEIF(IS1==5 )THEN
684 WRITE(IOUT,'(6x,a)')'secondary side input by solid elements'
685 ENDIF
686 IF(IS2==0)THEN
687 WRITE(IOUT,'(6x,a)
')'no
main surface input
'
688 ELSEIF(IS2==1)THEN
689 WRITE(IOUT,'(6x,a)
')'main surface input by segments
'
690 ELSEIF(IS2==2)THEN
691 WRITE(IOUT,'(6x,a)
')'main surface input by nodes
'
692 ELSEIF(IS2==3)THEN
693 WRITE(IOUT,'(6x,a)
')'main surface input by segments
'
694 ELSEIF(IS2==4)THEN
695 WRITE(IOUT,'(6x,a)
')'main surface refers
',
696 . 'to hyper-ellipsoidal surface'
697 ENDIF
698
699
700
701 RETURN
702 2502 FORMAT(' RUPTURE PARAMETERS '
703 . /10x,'SCAL_F . . . . . . . . . . . . . . ',1pg20.13
704 . /10x,'SCAL_DISP . . . . . . . . . . . . . ',1pg20.13
705 . /10x,'SCAL_SR . . . . . . . . . . . . . . ',1pg20.13
706 . /10x,'FILTERING COEFF . . . . . . . . . . ',1pg20.13
707 . /10x,'DEFAULT SECONDARY AREA. . . . . . . . . ',1pg20.13
708 . /10x,'DN_MAX . . . . . . . . . . . . . . ',1pg20.13
709 . /10x,'DT_MAX . . . . . . . . . . . . . . ',1pg20.13
710 . /10x,'IFUNN . . . . . . . . . . . . . . ',i10
711 . /10x,'IFUNT . . . . . . . . . . . . . . ',i10
712 . /10x,'IFUNS . . . . . . . . . . . . . . ',i10
713 . /10x,'IMOD . . . . . . . . . . . . . . ',i10
714 . /10x,'ISYM . . . . . . . . . . . . . . ',i10
715 . /10x,'IFILTR . . . . . . . . . . . . . . ',i10//)
716 1515 FORMAT(//
717 . ' FRICTION MODEL 1 (Viscous Polynomial)'/,
718 . ' MU = MUo + C1 p + C2 v + C3 pv + C4 p^2 + C5 v^2'/,
719 . ' C1 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
720 . ' C2 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
721 . ' C3 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
722 . ' C4 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
723 . ' C5 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
724 . ' TANGENTIAL PRESSURE LIMIT. . .. . . . . .',1pg20.13/)
725 1522 FORMAT(/
726 . ' FRICTION MODEL 2 (Darmstad Law) :'/,
727 . ' MU = MUo+c1*exp(c2*v)*p^2+c3*exp(c4*v)*p+c5*exp(c6*v)'/,
728 . ' Muo. . . . . . . . . . . . . . . . . . . ',1pg20.13/,
729 . ' C1 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
730 . ' C2 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
731 . ' C3 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
732 . ' C4 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
733 . ' C5 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
734 . ' C6 . . . . . . . . . . . . . . . . . . . ',1pg20.13/)
735 1523 FORMAT(/
736 . ' FRICTION MODEL 3 (Renard law) :'/,
737 . ' C1 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
738 . ' C2 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
739 . ' C3 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
740 . ' C4 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
741 . ' C5 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
742 . ' C6 . . . . . . . . . . . . . . . . . . . ',1pg20.13/)
743 1524 FORMAT(/
744 . ' FRICTION MODEL 0 (Coulomb Law) :'/,
745 . ' FRICTION COEFFICIENT . . . . . . . . . ',1pg20.13/)
746 1525 FORMAT(//
747 . ' FRICTION MODEL 0 (Coulomb Law) :'/,
748 . ' Function for FRICTION COEFFICIENT wrt TEMPERATURE',i10/,
749 . ' Abscissa scale factor on IFUNTCF. . . . . ',1pg20.13/,
750 . ' Ordinate scale factor on IFUNTCF . . . . ',1pg20.13/)
751 1526 FORMAT(/
752 . ' EXPONENTIAL DECAY FRICTION LAW '/
753 . ' MU = c1+(MUo-c1)*exp(-c2*v)'/
754 . ' STATIC COEFFICIENT MUo . . . . . . . . . ',1pg20.13/,
755 . ' DYNAMIC COEFFICIENT C1 . . . . . . . . . ',1pg20.13/,
756 . ' EXPONENTIAL DECAY COEFFICIENT C2 . . . . ',1pg20.13/)
757
758 1527 FORMAT(/
759 . ' INTERFACE FRICTION MODEL. . . . . . . . . ',i10)
760
761
762 1520 FORMAT(
763 . ' FRICTION FILTERING FLAG. . . . . . . . . ',i10/,
764 . ' FILTERING FACTOR . . . . . . . . . . . . ',1pg20.13)
765 1557 FORMAT(
766 .' NUMBER OF ELEMENTS WITHIN A 90 DEGREES FILLET ',i5/,
767 .' --------------------------------------------- '/,
768 .' CRITERIA FOR REFINEMENT DUE TO PENETRATION : '/,
769 .' ------------------------------------------ '/,
770 .' MINIMUM PERCENTAGE OF PENETRATION ',
771 . 1pg20.13/,
772 .' MAXIMUM ANGLE ON MAIN SIDE AT CONTACT LOCATION ',
773 . 1pg20.13//)
774 2101 FORMAT(//
775 . ' TYPE==21 PARALLEL/STAMPING ' //,
776 . ' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
777 . ' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
778 . ' Z DIR ',i1/,
779 . ' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
780 . ' MAIN NODE (1:YES 0:NO) Y DIR ',i1/,
781 . ' Z DIR ',i1/,
782 . ' FORMULATION LEVEL. . . . . . . . . . . . . .',i1/,
783 . ' (0:OLD, 1:OPTIMIZED). . . . . . . .',/,
784 . ' STIFFNESS FORMULATION. . . . . . . . . . ',i1/,
785 .' 0 : STIFFNESS IS COMPUTED FROM STIFFNESS ON SECONDARY SIDE'/,
786 .' 1 : STFAC IS A STIFFNESS VALUE '/,
787 . ' STIFFNESS FACTOR OR STIFFNESS VALUE . . . . ',1pg20.13/,
788 . ' MINIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
789 . ' MAXIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
790 . ' FRICTION FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
791 . ' VARIABLE GAP FLAG . . . . . . . . . . . . . ',i5/,
792 . ' MINIMUM GAP . . . . . . . . . . . . . . . . ',1pg20.13/,
793 . ' MAXIMUM GAP (= 0. <=> NO MAXIMUM GAP) . . . ',1pg20.13/,
794 . ' GAP SCALE FACTOR. . . . . . . . . . . . . . ',1pg20.13/,
795 . ' START TIME/STOP TIME activated by SENSOR ID ',i10/,
796 . ' BUCKET FACTOR . . . . . . . . . . . . . . . ',1pg20.
797 . ' DE-ACTIVATION OF INITIAL PENETRATIONS . . . ',i10/,
798 . ' CRITICAL DAMPING FACTOR . . . . . . . . . . ',1pg20.13/,
799 . ' MAXIMUM PRESSURE DUE TO THICKNESS VARIATION '/,
800 . ' CASE OF IGAP=2. . . . . . . ',1pg20.13/,
801 . ' MEAN POSSIBLE NUMBER OF IMPACT/NODE . . . . ',i5/,
802 . ' INVERTED NORMALS DETECTION FLAG . . . . . . ',i5/,
803 . ' TANGENTIAL FORCE LIMITATION FLAG . . . . . . ',i5/,
804 . ' MAXIMUM PRESSURE FOR SKID LINE OUTPUT ',1pg20.13)
805 2104 FORMAT(//
806 . ' TYPE==21 PARALLEL/STAMPING ' //,
807 . ' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
808 . ' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
809 . ' Z DIR ',i1/,
810 . ' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
811 . ' MAIN NODE (1:YES 0:NO) Y DIR ',i1/,
812 . ' Z DIR ',i1/,
813 . ' FORMULATION LEVEL. . . . . . . . . . . . . .',i1/,
814 . ' (0:OLD, 1:OPTIMIZED). . . . . . . .',/,
815 . ' STIFFNESS FORMULATION. . . . . . . . . . ',i1/,
816 .' 0 : STIFFNESS IS COMPUTED FROM STIFFNESS ON SECONDARY SIDE'/,
817 .' 1 : STFAC IS A STIFFNESS VALUE '/,
818 . ' STIFFNESS FACTOR OR STIFFNESS VALUE . . . ',1pg20
819 . ' MINIMUM STIFFNESS. . . . . . . . . . . . ',1pg20.13/,
820 . ' MAXIMUM STIFFNESS. . . . . . . . . . . . ',1pg20.13/,
821 . ' FRICTION FACTOR . . . . . . . . . . . . . ',1pg20.13/,
822 . ' VARIABLE GAP FLAG . . . . . . . . . . . . ',i5/,
823 . ' MINIMUM GAP . . . . . . . . . . . . . . . ',1pg20.13/,
824 . ' MAXIMUM GAP (= 0. <=> NO MAXIMUM GAP) . . ',1pg20.13/,
825 . ' GAP SCALE FACTOR. . . . . . . . . . . . . ',1pg20.13/,
826 . ' START TIME. . . . . . . . . . . . . . . . ',1pg20.13/,
827 . ' STOP TIME . . . . . . . . . . . . . . . . ',1pg20.13/,
828 . ' BUCKET FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
829 . ' DE-ACTIVATION OF INITIAL PENETRATIONS . . ',i10/,
830 . ' CRITICAL DAMPING FACTOR . . . . . . . . . ',1pg20.13/,
831 . ' MAXIMUM PRESSURE DUE TO THICKNESS VARIATION'/,
832 . ' CASE OF IGAP=2. . . . . . ',1pg20.13/,
833 . ' MEAN POSSIBLE NUMBER OF IMPACT/NODE . . . ',i5/,
834 . ' INVERTED NORMALS DETECTION FLAG . . . . . . ',i5/,
835 . ' TANGENTIAL FORCE LIMITATION FLAG . . . . . . ',i5/,
836 . ' MAXIMUM PRESSURE FOR SKID LINE OUTPUT ',1pg20.13)
837 2102 FORMAT(//
838 . ' Thermal interface ' //,
839 . ' Thermal heat exchange coefficient . . . . .',1pg20.13/,
840 . ' Interface temperature . . . . . . . . . . ',1PG20.13/,
841 . ' radiation factor . . . . . . . . . . . . .
',1PG20.13/,
842 . ' maximum distance
for radiation computation.
',1PG20.13/,
843 . ' frictional heat transfer. . . . . . . . . .',1PG20.13/,
844 . ' formulation choice : . . . . . . . . . . . ',I10,/,
845 . ' 0 : heat transfer between secondary side',/,
846 . ' and constant temperature in interface',/,
847 . ' 1 : heat exchange between pieces in contact'/
848 . ' Function for thermal heat exchange coefficient wrt distance
',I10/,
849 . ' maximum distance
for conductive heat exchange
',1PG20.13)
850 2103 FORMAT(//
851 . ' thermal interface ' //,
852 . ' function
for thermal heat exchange coefficient wrt contact pressure
',I10/,
853 . ' abscissa scale factor on ifuntck. . . . . ',1PG20.13/,
854 . ' ordinate scale factor on ifuntck . . . . ',1PG20.13/,
855 . ' interface temperature . . . . . . . . . . ',1PG20.13/,
856 . ' radiation factor . . . . . . . . . . . . .
',1PG20.13/,
857 . ' maximum distance
for radiation computation.
',1PG20.13/,
858 . ' frictional heat generation . . . . . . . . ',1PG20.13/,
859 . ' formulation choice : . . . . . . . . . . . ',I10,/,
860 . ' 0 : heat transfer between secondary side',/,
861 . ' and constant temperature in interface',/,
862 . ' 1 : heat exchange between pieces in contact'/
863 . ' function
for thermal heat exchange coefficient wrt distance
',I10/,
864 . ' maximum distance
for conductive heat exchange
',1PG20.13)
865
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
for(i8=*sizetab-1;i8 >=0;i8--)
integer, parameter nchartitle
integer, parameter ncharkey
subroutine radiation(ibcr, fradia, npc, tf, x, temp, nsensor, sensor_tab, fthe, iad, fthesky, python, glob_therm)
int main(int argc, char *argv[])