Download trjcdt.eso

Back to the list

   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