Download chgele.eso

Back to the list

   1 : C CHGELE    SOURCE    PV        09/03/12    21:17:02     6325           
   2 :       SUBROUTINE CHGELE(EPSILO,NDIM,JREBO,XNREB
   3 :      $     ,TARI,XARI2,DTREEL,IVPT,MELEME,IFACEL,IZCENT
   4 :      $     ,IELTFA,IZVIT,IZUN,IEL1,TDEP,XDEP2,JFACE,ICHGZ,IZSH)
   5 : 
   6 : ****************************************************************************
   7 : *** SP 'CHGELE' : permet de determiner le prochain élément traversé par la
   8 : *** particule, les donnees de sortie de la particule deviennent alors les 
   9 : *** données d'entrée. 'CHGELE' traite le cas particulier de passage de la
  10 : *** particule aux noeuds ou aux aretes des elements traversés.
  11 : ***
  12 : *** APPELES 1 = 'TRJIEL', 'TRJFAC'
  13 : *** APPELES 2 = 'EXCEPT'
  14 : *** 
  15 : *** E = 'EPSILO' marge relative acceptée position pt % element
  16 : ***     'NDIM' dimension de l'espace
  17 : ***     'JREBO' n° local face impermeable ou se trouve particule
  18 : ***     'XNREB' vecteur normal à la face impermeable
  19 : ***     'TARI' tps réel d'arrivée à l'interface de sortie
  20 : ***     'XARI2' coords réelles d'arrivée à interface de sortie
  21 : ***     'DTREEL' pas de tps reel de calcul
  22 : ***     'IVPT' entier valant 1 en regime permanent
  23 : ***     'MELEME' pteur sur le maillage du domaine etudié
  24 : ***     'IFACEL' pteur sur la table " DOMAINE.FACEL"
  25 : ***     'IZCENT' pteur sur la table "DOMAINE.CENTRE"
  26 : ***     'IELTFA' pteur sur la table "DOMAINE.ELTFA"
  27 : ***     'IZVIT' segment decrivant les vitesses (<- 'TRJVIT' OU 'TRJFLU')
  28 : ***     'IZUN' segmt content flux aux faces % ss-maillage de 'IEL1' 
  29 : ***
  30 : *** E/S = 'IEL1' n° global de l'élément suivant contenant particule
  31 : ***       'TDEP' tps réel écoulé jusqu' au pt de départ de l'élémt suivant
  32 : ***       'XDEP2' coords réelles départ ds élémt suivant 
  33 : ***       'JFACE' n° local interface de l'element suivant
  34 : ***       'ICHGZ' vaut 1 si saut précédent effectif et 0 sinon
  35 : ***       'IZSH' segment content coord reelles noeuds, fcts forme et base
  36 : ***
  37 : *** Rq : on considere que le vecteur aleatoire z est à retirer dans tous
  38 : ***      les cas apres chgt d'element meme si le saut précédent n'est pas
  39 : ***      effectif (diffusion compense convection, pas d'element voisin,...)
  40 : ***
  41 : ***             Auteur Cyril Nou
  42 : ***************************************************************************
  43 : 
  44 : 
  45 :       IMPLICIT INTEGER(I-N)
  46 :       IMPLICIT REAL*8 (A-H,O-Z)
  47 : -INC SMELEME
  48 : -INC SMCHAML
  49 :       POINTEUR IZCENT.MELEME,IELTFA.MELEME,IFACEL.MELEME
  50 :       SEGMENT IZVIT 
  51 :          REAL*8 TEMTRA(NVIPT)
  52 :          INTEGER IPUN(NBS),IDUN(NBS),IPVPT(NVIPT),IFORML
  53 :       ENDSEGMENT
  54 :       SEGMENT IZVPT
  55 :          INTEGER IPUN1(NBS),IPUMAX
  56 :       ENDSEGMENT
  57 :       SEGMENT IZUN
  58 :          REAL*8 UN(I1,I2,I3)
  59 :       ENDSEGMENT
  60 :       SEGMENT IZUMAX
  61 :            REAL*8 UMAX(NBREL)
  62 :       ENDSEGMENT
  63 :       SEGMENT IZSH
  64 :           REAL*8 SHP(6,MNO9),SHY(12,MNO9),XYZL(3,MNO9)
  65 :       ENDSEGMENT
  66 :       DIMENSION XDEP2(3),XARI2(3),Z(3),XNREB(3)
  67 : 
  68 : ***   l'arrivée devient l'entrée pour l'élément suivant
  69 :       TDEP=TARI
  70 :       DO 10 I=1,NDIM
  71 :          XDEP2(I)=XARI2(I)
  72 :  10   CONTINUE
  73 : ***   test position pt % noeuds/aretes avec renvoi 'IEL2' ou traj a lieu
  74 :       NVOISI=0
  74 :       CALL EXCEPT(EPSILO,NDIM,JREBO,XNREB,MELEME,IZCENT,IELTFA
  75 :      $     ,IZVIT,IVPT,IEL1,TDEP,DTREEL,XDEP2,IZSH,IZUN,IEL2,NVOISI)
  76 : ***   chgt element classique a partir d'une face
  77 :       IF (NVOISI.EQ.0) THEN
  78 :          IF (JREBO.LE.0) THEN
  79 : ***         cherche n° 'IEL2' qui a avec 'IEL1' face commune (globale) 'NF'
  79 :             CALL TRJIEL(IEL1,IEL2,JFACE,NF,IFACEL,IZCENT,IELTFA)
  80 :             IEL1=IEL2
  81 : ***         'JFACE' n° local dans 'IEL1' associé à face de n° global 'NF'
  81 :             CALL TRJFAC(IEL1,NF,JFACE,IELTFA)
  82 :          ENDIF
  83 : ***   chgt element via noeud ou arete (pas de face traversee)
  84 :       ELSEIF (NVOISI.GT.0) THEN
  85 :          IEL1=IEL2
  86 :          JFACE=0
  87 :       ENDIF
  88 : ***   chgt vecteur aleatoire saut suivant (m si saut precedent non effectif)
  89 :       ICHGZ=1
  90 : 
  91 :       RETURN
  92 :       END
  93 : 
  94 :  
  95 :  
  96 :  
  97 :  

© Cast3M 2003 - All rights reserved.
Disclaimer