1 : C TRJCDT SOURCE CHAT 05/01/13 03:48:54 5004 2 : SUBROUTINE TRJCDT(NDIM,DIAM,IZVIT,IVPT,IEL1,DIFL,DIFT,UCEN,DTCALC) 3 : *************************************************************************** 4 : *** SP 'TRJCDT' : permet de choisir un pas de tps judicieux (traversée 5 : *** de la maille en 5 pas de tps en moyenne) pour le calcul de 6 : *** l'avancée de la particule dans la maille par convection+diffusion. 7 : *** 8 : *** APPELES 1 = aucun 9 : *** APPELES 2 = aucun 10 : *** 11 : *** E = 'NDIM' dimension de l'espace 12 : *** 'DIAM' "longueur caracteristique" de la maille considérée 13 : *** 'IZVIT' segment decrivant les vitesses (<- 'TRJVIT' OU 'TRJFLU') 14 : *** 'IVPT' entier valant dans le cas du régime permanent 15 : *** 'IEL1' n° global de l'element contenant particule 16 : *** 'DIFL' coefficient dispersion longitudinal ds element 17 : *** 'DIFT' coefficient dispersion transversal ds element 18 : *** 'UCEN' vitesse ds element reel au pt centre 19 : *** 20 : *** S = 'DTCALC' pas de tps utilisé pour calcul saut particule 21 : *** 22 : *** Rq : critere convectif, dtcalcul=1/5*(diam/ucentre) 23 : *** critere diffusif, dtcalcul=1/5*diam²/(6*max(dl,dt)) 24 : *** 25 : *** ORIGINE = CYRIL NOU 26 : ****************************************************************************** 27 : IMPLICIT INTEGER(I-N) 28 : IMPLICIT REAL*8 (A-H,O-Z) 29 : SEGMENT IZSH 30 : REAL*8 SHP(6,MNO9),SHY(12,MNO9),XYZL(3,MNO9) 31 : ENDSEGMENT 32 : SEGMENT IZVIT 33 : REAL*8 TEMTRA(NVIPT) 34 : INTEGER IPUN(NBS),IDUN(NBS),IPVPT(NVIPT),IFORML 35 : ENDSEGMENT 36 : SEGMENT IZVPT 37 : INTEGER IPUN1(NBS),IPUMAX 38 : ENDSEGMENT 39 : SEGMENT IZUN 40 : REAL*8 UN(I1,I2,I3) 41 : ENDSEGMENT 42 : SEGMENT IZUMAX 43 : REAL*8 UMAX(NBREL) 44 : ENDSEGMENT 45 : DIMENSION UCEN(3) 46 : 47 : *** recuperation de la vitesse ou flux maximal dans l'element 'IEL1' 48 : IZVPT=IPVPT(IVPT) 49 : SEGACT IZVPT 50 : IZUMAX=IPUMAX 51 : SEGACT IZUMAX 52 : UEM=UMAX(IEL1) 53 : SEGDES IZUMAX 54 : SEGDES IZVPT 55 : *** initialisation à -1 des variables de travail 56 : DTC=-1.D0 57 : DTD=-1.D0 58 : DTCALC=-1.D0 59 : DIFCAL=-1.D0 60 : *** calcul de la norme de la vitesse au centre (moyenne sur element) 61 : UNORM=0.D0 62 : DO 10 I=1,NDIM 63 : UNORM=UNORM+UCEN(I)**2 64 : 10 CONTINUE 65 : UNORM=SQRT(UNORM) 66 : *** pas de tps selon un critere convectif 67 : IF (UNORM.GT.0.D0) DTC=DIAM/(5*UNORM) 68 : *** recuperation du coeff dispersion max 69 : IF (DIFL.GE.DIFT) THEN 70 : DIFCAL=DIFL 71 : ELSE 72 : DIFCAL=DIFT 73 : ENDIF 74 : *** pas de tps selon un critere diffusif 75 : IF (DIFCAL.GT.0.D0) DTD=(DIAM)**2/(5*6*DIFCAL) 76 : *** on choisit le min pour pas de tps de calcul 77 : IF (DTC.GT.0.D0) THEN 78 : IF (DTD.GT.0.D0) THEN 79 : IF (DTC.GE.DTD) THEN 80 : DTCALC=DTD 81 : ELSE 82 : DTCALC=DTC 83 : ENDIF 84 : ELSE 85 : *** cas ou pas de diffusion 86 : DTCALC=DTC 87 : ENDIF 88 : ELSE 89 : IF (DTD.GT.0.D0) THEN 90 : *** cas ou pas de convection 91 : DTCALC=DTD 92 : ELSE 93 : *** aucun mouvement! (ni convection, ni diffusion) 94 : IEL1=-1 95 : ENDIF 96 : ENDIF 97 : 98 : RETURN 99 : END 100 : 101 : 102 : 103 :
© Cast3M 2003 - All rights reserved.
Disclaimer