33 1 INTFRIC , JLT ,IPARTFRICSI ,IPARTFRICMI ,ADPARTS_FRIC ,
34 2 NSET , TABCOUPLEPARTS_FRIC,NPARTFRIC ,TABPARTS_FRIC ,TABCOEF_FRIC ,
35 3 FRIC , VISCF , FROT_P ,FRIC_COEFS , FRICC ,
36 4 VISCFFRIC , NTY , MFROT ,IORTHFRIC , FRIC_COEFS2,
37 5 FRICC2 ,VISCFFRIC2 , IFRICORTH ,NFORTH , NFISOT ,
38 6 INDEXORTH ,INDEXISOT ,JLT_TIED ,IREP_FRICMI , DIR_FRICMI ,
39 7 IX3 ,IX4 ,X1 ,Y1 , Z1 ,
40 8 X2 ,Y2 ,Z2 ,X3 ,Y3 ,
41 9 Z3 ,X4 ,Y4 ,Z4 ,CE_LOC ,
51#include "implicit_f.inc"
60 INTEGER INTFRIC,JLT,NFRIC_P ,NSET ,NPARTFRIC ,NTY ,MFROT ,IORTHFRIC ,NFORTH ,
62 INTEGER IPARTFRICSI(MVSIZ), IPARTFRICMI(MVSIZ), ADPARTS_FRIC(NPARTFRIC+1),
63 . TABCOUPLEPARTS_FRIC(NSET ),TABPARTS_FRIC(NPARTFRIC) ,INDEXORTH(MVSIZ),
64 . INDEXISOT(MVSIZ),IFRICORTH(NSET),IREP_FRICMI(MVSIZ),IX3(MVSIZ),IX4(MVSIZ),
69 . FRIC_COEFS(MVSIZ,10),TABCOEF_FRIC (*),FRICC(MVSIZ), VISCFFRIC(),
70 . frot_p(10),fricc2(mvsiz), viscffric2(mvsiz),fric_coefs2(mvsiz,10),dir1(mvsiz,3),
71 . dir2(mvsiz,3),dir_fricmi(mvsiz,2),
72 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
73 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
74 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz)
78 INTEGER I ,J ,K ,IPS ,IPM ,IP ,IPMID ,ADRI ,ADRF ,ADRCOEF ,IPSL ,IPML ,IPI ,IPF ,
79 . L , IREP ,IORTH,NI,NN ,LENC
80 my_real ADR ,E1X ,E1Y ,E1Z ,E2X ,E2Y ,E2Z ,E3X ,E3Y ,E3Z ,RX ,RY ,RZ ,SX ,SY ,SZ ,
81 . SUMA ,S1 ,S2 ,AA ,BB ,V1 ,V2 ,V3 ,VR ,VS
89 fricc(i) = tabcoef_fric(1)
90 viscffric(i) = tabcoef_fric(2)
102 fric_coefs(i,j) = tabcoef_fric(j+2)
103 fric_coefs2(i,j) = zero
108 IF(nty == 24.OR.nty == 25)
THEN
115 ipsl = ipartfricsi(i)
116 ipml = ipartfricmi(i)
119 ips = tabparts_fric(ipsl)
124 ipm = tabparts_fric(ipml)
129 IF(ips/=0.AND.ipm/=0)
THEN
130 IF(ipsl > ipml )
THEN
140 adri = adparts_fric(ipsl)
143 adrf = adparts_fric(ipsl+1)-1
148 IF(adri == adrf )
THEN
149 ipi = tabcoupleparts_fric(adri)
156 DO WHILE ((adrf-adri) >= 1)
157 adr = (adrf-adri)*half
159 ipmid = tabcoupleparts_fric(k)
160 ipf = tabcoupleparts_fric(adrf)
161 ipi = tabcoupleparts_fric(adri)
162 IF(ipmid == ipm)
THEN
165 ELSEIF(ipi == ipm)
THEN
168 ELSEIF(ipf == ipm)
THEN
171 ELSEIF (ipmid < ipm)
THEN
173 ELSEIF (ipmid > ipm)
THEN
180 IF(adrcoef /= 0)
THEN
182 iorth = ifricorth(adrcoef)
184 irep = irep_fricmi(i)
186 IF(iorth > 0 .AND.irep /=10 )
THEN
188 indexorth(nforth) = i
190 fricc(i) = tabcoef_fric(lenc+2*lenc*(adrcoef-1)+1)
191 fricc2(i)= tabcoef_fric(2*lenc*adrcoef+1)
192 IF(nty == 24.OR.nty == 25 )
THEN
196 viscffric(i) = tabcoef_fric(lenc+2*lenc*(adrcoef-1)+2)
197 viscffric2(i) = tabcoef_fric(2*lenc*adrcoef+2)
201 fric_coefs(i,j) = tabcoef_fric(lenc+2*lenc*adrcoef+j+2)
202 fric_coefs2(i,j) = tabcoef_fric(2*lenc*adrcoef+j+2)
207 indexisot(nfisot) = i
209 fricc(i) = tabcoef_fric(lenc+2*lenc*(adrcoef-1)+1)
210 IF(nty == 24.OR.nty == 25 )
THEN
213 viscffric(i) = tabcoef_fric(lenc+2*lenc*(adrcoef-1)+2)
217 fric_coefs(i,j) = tabcoef_fric(2*lenc*adrcoef+j+2)
223 indexisot(nfisot) = i
230 indexisot(nfisot) = i
236 indexisot(nfisot) = i
247 IF (ix3(i) /= ix4(i))
THEN
249 e1x= x2(i) + x3(i) - x1(i) - x4(i)
250 e1y= y2(i) + y3(i) - y1(i) - y4(i)
251 e1z= z2(i) + z3(i) - z1(i) - z4
252 e2x= x3(i) + x4(i) - x1(i) - x2(i)
253 e2y= y3(i) + y4(i) - y1(i) - y2(i)
254 e2z= z3(i) + z4(i) - z1(i) - z2(i)
272 e3x = e1y*e2z-e1z*e2y
273 e3y = e1z*e2x-e1x*e2z
274 e3z = e1x*e2y-e1y*e2x
276 suma = e3x*e3x+e3y*e3y+e3z*e3z
277 suma = one/
max(sqrt(suma),em20)
282 s1 = e1x*e1x+e1y*e1y+e1z*e1z
283 s2 = e2x*e2x+e2y*e2y+e2z*e2z
285 e1x = e1x + (e2y *e3z-e2z*e3y)*suma
286 e1y = e1y + (e2z *e3x-e2x*e3z)*suma
287 e1z = e1z + (e2x *e3y-e2y*e3x)*suma
289 suma = e1x*e1x+e1y*e1y+e1z*e1z
290 suma = one/
max(sqrt(suma),em20)
295 e2x = e3y * e1z - e3z * e1y
296 e2y = e3z * e1x - e3x * e1z
297 e2z = e3x * e1y - e3y * e1x
302 irep = irep_fricmi(i)
308 vr = v1*e1x+ v2*e1y + v3*e1z
309 vs = v1*e2x+ v2*e2y + v3*e2z
310 suma=
max(sqrt(vr*vr + vs*vs) , em20)
315 dir1(i,1) = aa*e1x+bb*e2x
316 dir1(i,2) = aa*e1y+bb*e2y
317 dir1(i,3) = aa*e1z+bb*e2z
319 dir2(i,1) = aa*e2x-bb*e1x
320 dir2(i,2) = aa*e2y-bb*e1y
321 dir2(i,3) = aa*e2z-bb*e1z
343 1 INTFRIC , JLT ,IPARTFRICSI ,IPARTFRICMI ,ADPARTS_FRIC ,
344 2 NSET , TABCOUPLEPARTS_FRIC,NPARTFRIC ,TABPARTS_FRIC ,TABCOEF_FRIC ,
345 3 FRIC , VISCF , FROT_P ,FRIC_COEFS ,FRICC ,
346 4 VISCFFRIC , NTY , MFROT ,IORTHFRIC ,IFRIC ,
347 5 JLT_TIED , TINT ,TEMPI ,NPC ,TF ,
348 6 TEMP , H1 ,H2 ,H3 ,H4 ,
349 7 IX1 , IX2 ,IX3 ,IX4 ,IFORM )
358#include "implicit_f.inc"
359#include "comlock.inc"
363#include "mvsiz_p.inc"
367 INTEGER INTFRIC,JLT,NFRIC_P ,NSET ,NPARTFRIC ,NTY ,MFROT ,IORTHFRIC ,IFRIC ,
369 INTEGER IPARTFRICSI(*), IPARTFRICMI(*), ADPARTS_FRIC(NPARTFRIC+1),
370 . (NSET),TABPARTS_FRIC(NPARTFRIC) ,NPC(*) ,
371 . IX1(MVSIZ),IX2(MVSIZ),IX3(MVSIZ),IX4(MVSIZ)
374 . FRIC_COEFS(MVSIZ,10),TABCOEF_FRIC (12*(NSET+1)),FRICC(*), VISCFFRIC(*),
375 . TF(*) , TEMP(*) ,TEMPI(MVSIZ) ,H1(MVSIZ) ,H2(MVSIZ) ,H3(MVSIZ) ,H4(MVSIZ) ,
380 INTEGER I ,J ,K ,IPS ,IPM ,IP ,IPMID ,ADRI ,ADRF ,ADRCOEF ,IPSL ,IPML ,IPI ,IPF ,
382 my_real ADR ,THI ,TM ,DYDX
394 IF (intfric == 0)
THEN
397 IF(mfrot/=0) fric_coefs(i,1:10) = frot_p(1:10)
405 thi = (tempi(i)+tint)/2
406 fricc(i) = fricc(i)*finter(ifric,thi,npc,tf,dydx)
410 tm = h1(i)*temp(ix1(i)) + h2(i)*temp(ix2(i))
411 . + h3(i)*temp(ix3(i)) + h4(i)*temp(ix4(i))
412 thi = (tempi(i)+tm)/2
413 fricc(i) = fricc(i)*finter(ifric,thi,npc,tf,dydx)
423 fricc(i) = tabcoef_fric(1)
424 viscffric(i) = tabcoef_fric(2)
427 fric_coefs(i,j) = tabcoef_fric(j+2)
431 IF(nty == 24.OR.nty == 25.OR.nty==21)
THEN
438 ipsl = ipartfricsi(i)
439 ipml = ipartfricmi(i)
442 ips = tabparts_fric(ipsl)
447 ipm = tabparts_fric(ipml)
452 IF(ips/=0.AND.ipm/=0)
THEN
453 IF(ipsl > ipml )
THEN
463 adri = adparts_fric(ipsl)
466 adrf = adparts_fric(ipsl+1)-1
471 IF(adri == adrf )
THEN
472 ipi = tabcoupleparts_fric(adri)
479 DO WHILE ((adrf-adri) >= 1)
480 adr = (adrf-adri)*half
482 ipmid = tabcoupleparts_fric(k)
483 ipf = tabcoupleparts_fric(adrf)
484 ipi = tabcoupleparts_fric(adri)
485 IF(ipmid == ipm)
THEN
488 ELSEIF(ipi == ipm)
THEN
491 ELSEIF(ipf == ipm)
THEN
494 ELSEIF (ipmid < ipm)
THEN
496 ELSEIF (ipmid > ipm)
THEN
504 IF(iorthfric==0)
THEN
505 IF(adrcoef /= 0)
THEN
506 fricc(i) = tabcoef_fric(lenc*adrcoef+1)
507 viscffric(i) = tabcoef_fric(lenc*adrcoef+2)
510 fric_coefs(i,j) = tabcoef_fric(lenc*adrcoef+j+2)
515 IF(adrcoef /= 0)
THEN
516 fricc(i) = tabcoef_fric(lenc+2*lenc*(adrcoef-1)+1)
517 viscffric(i) = tabcoef_fric(lenc+2*lenc*(adrcoef-1)+2)
520 fric_coefs(i,j) = tabcoef_fric(lenc+2*lenc*adrcoef+j+2)
subroutine frictionparts_model_ortho(intfric, jlt, ipartfricsi, ipartfricmi, adparts_fric, nset, tabcoupleparts_fric, npartfric, tabparts_fric, tabcoef_fric, fric, viscf, frot_p, fric_coefs, fricc, viscffric, nty, mfrot, iorthfric, fric_coefs2, fricc2, viscffric2, ifricorth, nforth, nfisot, indexorth, indexisot, jlt_tied, irep_fricmi, dir_fricmi, ix3, ix4, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, ce_loc, dir1, dir2)
subroutine frictionparts_model_isot(intfric, jlt, ipartfricsi, ipartfricmi, adparts_fric, nset, tabcoupleparts_fric, npartfric, tabparts_fric, tabcoef_fric, fric, viscf, frot_p, fric_coefs, fricc, viscffric, nty, mfrot, iorthfric, ifric, jlt_tied, tint, tempi, npc, tf, temp, h1, h2, h3, h4, ix1, ix2, ix3, ix4, iform)