Télécharger chgele.eso

Retour à la liste

Numérotation des lignes :

  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
  75. CALL EXCEPT(EPSILO,NDIM,JREBO,XNREB,MELEME,IZCENT,IELTFA
  76. $ ,IZVIT,IVPT,IEL1,TDEP,DTREEL,XDEP2,IZSH,IZUN,IEL2,NVOISI)
  77. *** chgt element classique a partir d'une face
  78. IF (NVOISI.EQ.0) THEN
  79. IF (JREBO.LE.0) THEN
  80. *** cherche n° 'IEL2' qui a avec 'IEL1' face commune (globale) 'NF'
  81. CALL TRJIEL(IEL1,IEL2,JFACE,NF,IFACEL,IZCENT,IELTFA)
  82. IEL1=IEL2
  83. *** 'JFACE' n° local dans 'IEL1' associé à face de n° global 'NF'
  84. CALL TRJFAC(IEL1,NF,JFACE,IELTFA)
  85. ENDIF
  86. *** chgt element via noeud ou arete (pas de face traversee)
  87. ELSEIF (NVOISI.GT.0) THEN
  88. IEL1=IEL2
  89. JFACE=0
  90. ENDIF
  91. *** chgt vecteur aleatoire saut suivant (m si saut precedent non effectif)
  92. ICHGZ=1
  93.  
  94. RETURN
  95. END
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales