Télécharger yla12t.eso

Retour à la liste

Numérotation des lignes :

yla12t
  1. C YLA12T SOURCE CB215821 20/11/25 13:43:58 10792
  2. C YLAP12 SOURCE GOUNAND 01/09/10 21:16:17 4198
  3. SUBROUTINE YLA12T(IGRTC,IQIMP,
  4. & MELEMC,MELEMF,MELEFL,ISURF,INORM,IDIAM,
  5. & ICHFLU,DT)
  6. C
  7. C************************************************************************
  8. C
  9. C PROJET : CASTEM 2000
  10. C
  11. C NOM : YLA12T
  12. C
  13. C DESCRIPTION : Subroutine appellée par YLAP11
  14. C
  15. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  16. C
  17. C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/LTMF
  18. C
  19. C************************************************************************
  20. C
  21. C
  22. C ENTRÉES:
  23. C *******
  24. C
  25. C MU (REAL*8) : viscosité dynamique (kg/m^3 * m^2/s dans le SI)
  26. C
  27. C KAPPA (REAL*8) : conductivité thermique (J / (s m K))
  28. C
  29. C CV (REAL*8) : chaleur spécifique à volume constant (J / (kg K))
  30. C
  31. C IROC : pointeur du CHAMPOINT "CENTRE" densité (kg/m^3)
  32. C
  33. C IVITC : pointeur du CHAMPOINT "CENTRE" vitesse
  34. C
  35. C IGRVC : pointeur du CHAMPOINT "FACE" gradient de vitesse
  36. C
  37. C IGRTC : pointeur du CHAMPOINT "FACE" gradient de
  38. C température
  39. C
  40. C IVIMP : pointeur de CHAMPOINT vitesse imposé (sur des
  41. C points FACE)
  42. C
  43. C ITAUIM : pointeur de CHAMPOINT tenseur de contraintes
  44. C visqueux imposé (sur des points FACE)
  45. C
  46. C IQIMP : pointeur de CHAMPOINT flux de chaleur imposé
  47. C (sur des points FACE)
  48. C
  49. C MELEMC : pointeur du maillage "CENTRE"
  50. C
  51. C MELEMF : pointeur du maillage "FACE"
  52. C
  53. C MELEFL : pointeur du maillage "FACEL"
  54. C
  55. C ISURF : pointeur du CHAMPOINT "FACE" qui contient les
  56. C surfaces de faces
  57. C
  58. C INORM : pointeur du CHAMPOINT "FACE" qui contient les
  59. C normales aux facesP12
  60. C
  61. C IDIAM : pointeur du CHAMPOINT "CENTRE" qui contient le
  62. C diamètre des elts
  63. C
  64. C
  65. C SORTIES
  66. C *******
  67. C
  68. C ICHFLU : pointeur du CHAMPOINT "FACE" qui contient les
  69. C flux diffusives aux interface
  70. C
  71. C DT (REAL*8) : pas de temps de stabilité donné par le critère
  72. C de Fourier
  73. C
  74. C***********************************************************************
  75. C
  76. C**** N.B.: Traitement des conditions aux bords
  77. C
  78. C 'VIMP' : la vitesse imposé n'importe ou!
  79. C
  80. C 'QIMP' : flux de chaleur imposé n'importe ou
  81. C
  82. C 'TAUI' : tenseur de contraintes visqueux imposé n'importe ou
  83. C
  84. C
  85. IMPLICIT INTEGER(I-N)
  86.  
  87. -INC PPARAM
  88. -INC CCOPTIO
  89. -INC CCREEL
  90. -INC SMCHPOI
  91. -INC SMELEME
  92. -INC SMCOORD
  93. -INC SMLENTI
  94. -INC SMLMOTS
  95. C
  96. POINTEUR MPROC.MPOVAL, MPVITC.MPOVAL, MPGRVF.MPOVAL,
  97. & MPGRTF.MPOVAL,
  98. & MPVIMP.MPOVAL, MPTAUI.MPOVAL, MPQIMP.MPOVAL,
  99. & MPSURF.MPOVAL, MPNORM.MPOVAL, MPDIAM.MPOVAL,
  100. & MPFLUX.MPOVAL
  101. C
  102. POINTEUR MELEMC.MELEME,MELEMF.MELEME,MELEFL.MELEME
  103. POINTEUR MLCENT.MLENTI,MLEVIM.MLENTI,MLEQIM.MLENTI,MLETAI.MLENTI
  104. C
  105. C**** Variables de COOPTIO
  106. C
  107. C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  108. C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ
  109. C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES
  110. C & ,IECHO, IIMPI, IOSPI
  111. C & ,IDIM
  112. CC & ,MCOORD
  113. C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  114. C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  115. C & ,NORINC,NORVAL,NORIND,NORVAD
  116. C & ,NUCROU, IPSAUV
  117. CC
  118. INTEGER IROC,IVITC,IGRVC,IGRTC,IVIMP,ITAUIM,IQIMP
  119. & ,ISURF,INORM,IDIAM,ICHFLU
  120. & ,NFAC, NLCF, NGCF, NGCF1, NGCEG, NGCED
  121. & ,NLCEG,NLCED,NLFVI,NLFTI,NLFQI
  122. & ,IGEOM,ICORX1,ICORXG,ICORXD
  123.  
  124. REAL*8 MU, DT, UNSDT
  125. & ,UXG,UYG
  126. & ,XG,YG,XFMXG,YFMYG,DRG
  127. & ,UXD,UYD
  128. & ,XD,YD,XFMXD,YFMYD,DRD,ALPHA,UMALPH
  129. & ,UXF,UYF,DUXXF,DUXYF,DUYXF,DUYYF,DTXF,DTYF
  130. & ,DSTDU,TAUXX,TAUXY,TAUYY,QX,QY,XF,YF
  131. & ,CNX, CNY, ORIENT, RO, DIAM, DIAM2, CELL, SURF
  132. C
  133. CHARACTER*8 TYPE
  134. C
  135. C**** Initialisation de 1/DT
  136. C
  137. UNSDT = 0.0D0
  138. C
  139. C**** KRIPAD pour la correspondance global/local de centre
  140. C
  141. CALL KRIPAD(MELEMC,MLCENT)
  142. C
  143. C EN KRIPAD
  144. C SEGACT MELEMC
  145. C SEGACT MLCENT
  146. C
  147. CALL LICHT(IGRTC,MPGRTF,TYPE,IGEOM)
  148. CALL LICHT(ISURF,MPSURF,TYPE,IGEOM)
  149. CALL LICHT(INORM,MPNORM,TYPE,IGEOM)
  150. CALL LICHT(IDIAM,MPDIAM,TYPE,IGEOM)
  151. CALL LICHT(ICHFLU,MPFLUX,TYPE,IGEOM)
  152. C
  153. C EN LICHT
  154. C SEGACT*MOD MPROC
  155. C SEGACT*MOD MPVITC
  156. C SEGACT*MOD MPGRVF
  157. C SEGACT*MOD MPGRTF
  158. C SEGACT*MOD MPSURF
  159. C SEGACT*MOD MPNORM
  160. C SEGACT*MOD MPDIAM
  161. C SEGACT*MOD MPFLUX
  162. C
  163. IF(IQIMP .NE. 0)THEN
  164. CALL LICHT(IQIMP,MPQIMP,TYPE,IGEOM)
  165. C SEGACT*MOD MPQIMP
  166. CALL KRIPAD(IGEOM,MLEQIM)
  167. C SEGACT IGEOM
  168. C SEGACT MLEQIM
  169. MELEME = IGEOM
  170. C SEGDES MELEME
  171. ENDIF
  172. C
  173. SEGACT MELEFL
  174. SEGACT MELEMF
  175. NFAC = MELEMF.NUM(/2)
  176. C
  177. C**** Boucle sur les faces
  178. C
  179. DO NLCF = 1, NFAC, 1
  180. C
  181. C******* NLCF = numero local du centre de facel
  182. C NGCF = numero global du centre de facel
  183. C NLCF1 = numero local du centre de face
  184. C NGCEG = numero global du centre ELT "gauche"
  185. C NLCEG = numero local du centre ELT "gauche"
  186. C NGCED = numero global du centre ELT "droite"
  187. C NLCED = numero local du centre ELT "droite"
  188. C
  189. NGCF = MELEMF.NUM(1,NLCF)
  190. NGCF1 = MELEFL.NUM(2,NLCF)
  191. IF(NGCF .NE. NGCF1)THEN
  192. MOTERR(1:40)= 'FACEL et FACE = ? '
  193. CALL ERREUR(5)
  194. GOTO 9999
  195. ENDIF
  196. C
  197. NGCEG = MELEFL.NUM(1,NLCF)
  198. NGCED = MELEFL.NUM(3,NLCF)
  199. NLCEG = MLCENT.LECT(NGCEG)
  200. NLCED = MLCENT.LECT(NGCED)
  201. C
  202. C******* On controlle si sur NGCF on impose de CL
  203. C
  204. C NLFVI = numero local du centre de face sul le maillage des
  205. C "vitesses" "imposées"
  206. C
  207. C NLFTI = numero local du centre de face sul le maillage des
  208. C "tau" "imposés"
  209. C
  210. C NLFQI = numero local du centre de face sul le maillage des
  211. C "q" "imposés"
  212. C
  213. IF(IQIMP .NE. 0)THEN
  214. NLFQI = MLEQIM.LECT(NGCF)
  215. ELSE
  216. NLFQI = 0
  217. ENDIF
  218. C
  219. IF(NGCEG .NE. NGCED)THEN
  220. C
  221. C********** Parametres geometriques
  222. C
  223.  
  224. C CB215821 : Modification pour faire le calcul independamment de la dimension...
  225. ICORX1 = ((IDIM + 1) * (NGCF - 1))+1
  226. ICORXG = ((IDIM + 1) * (NGCEG - 1))+1
  227. ICORXD = ((IDIM + 1) * (NGCED - 1))+1
  228. DRG = 0.
  229. DRD = 0.
  230.  
  231. DO ILADIM=1,IDIM
  232. XF = MCOORD.XCOOR(ICORX1+(ILADIM-1))
  233. XG = MCOORD.XCOOR(ICORXG+(ILADIM-1))
  234. XD = MCOORD.XCOOR(ICORXD+(ILADIM-1))
  235. XFMXG = XF - XG
  236. XFMXD = XF - XD
  237. DRG = DRG + (XFMXG*XFMXG)
  238. DRD = DRD + (XFMXD*XFMXD)
  239. ENDDO
  240.  
  241. DRG=SQRT(DRG)
  242. DRD=SQRT(DRD)
  243. C CB215821 Fin de la modification...
  244.  
  245. C
  246. C********** F=G -> DRG = 0 -> ALPHA = 0
  247. ALPHA=DRG/(DRG+DRD)
  248. UMALPH= 1.0D0 - ALPHA
  249. C
  250. C
  251. C********** Les valeurs à l'interface
  252. C
  253. C DRG=0 -> F=G
  254. C
  255. C
  256. C********** Flux de chaleur
  257. C
  258. c IF(NLFQI .GT. 0)THEN
  259. c QX = MPQIMP.VPOCHA(NLFQI,1)
  260. c ELSE
  261. C************* Gauche
  262. DTXF = MPGRTF.VPOCHA(NLCF,1)
  263. C
  264. C CORRECTION
  265. QX = -1.0D0 * DTXF
  266. C
  267. c ENDIF
  268. ELSE
  269. C
  270. C********** MURS
  271. C
  272. C Etat a gauche = Etat droite
  273. C
  274.  
  275. ALPHA=0.0D0
  276. UMALPH=1.0D0
  277. C
  278. C********** Parametres geometriques
  279. C
  280.  
  281. C CB215821 : Tout ce qui est la semble inutile...
  282. C ICORX1 = ((IDIM + 1) * (NGCF - 1))+1
  283. C XF = MCOORD.XCOOR(ICORX1)
  284. C YF = MCOORD.XCOOR(ICORX1+1)
  285. C
  286. C ICORXG = ((IDIM + 1) * (NGCEG - 1))+1
  287. C XG = MCOORD.XCOOR(ICORXG)
  288. C YG = MCOORD.XCOOR(ICORXG+1)
  289. C XFMXG = XF - XG
  290. C YFMYG = YF - YG
  291.  
  292. C
  293. C********** Flux de chaleur
  294. C
  295. c IF(NLFQI .GT. 0)THEN
  296. c QX = MPQIMP.VPOCHA(NLFQI,1)
  297. c ELSE
  298. C************* Gauche
  299. DTXF = MPGRTF.VPOCHA(NLCF,1)
  300. c DTYF = MPGRTF.VPOCHA(NLCF,2)
  301. C
  302. C CORRECTION
  303. QX = -1.0D0 * DTXF
  304. C
  305. c ENDIF
  306. ENDIF
  307. C
  308. C******* On calcule le sign du pruduit scalare
  309. C (Normales de Castem) * (vecteur "gauche" -> "centre")
  310. C
  311. c CNX = MPNORM.VPOCHA(NLCF,1)
  312. c CNY = MPNORM.VPOCHA(NLCF,2)
  313. c ORIENT = CNX * XFMXG + CNY * YFMYG
  314. c ORIENT = SIGN(1.0D0,ORIENT)
  315. c IF(ORIENT .NE. 1.0D0)THEN
  316. c MOTERR(1:40)=
  317. c & 'LAPN , subroutine ylap12.eso. '
  318. c WRITE(IOIMP,*) MOTERR(1:40)
  319. c CALL ERREUR(5)
  320. c GOTO 9999
  321. c ENDIF
  322. C
  323. C******* Le flux aux interfaces
  324. C
  325. SURF = MPSURF.VPOCHA(NLCF,1)
  326. MPFLUX.VPOCHA(NLCF,1) =
  327. & ( QX ) * SURF
  328. C
  329. C****** Le pas de temps
  330. C
  331. c RO=UMALPH +
  332. c & ALPHA
  333. c DIAM = UMALPH*MPDIAM.VPOCHA(NLCEG,1) +
  334. c & ALPHA*MPDIAM.VPOCHA(NLCED,1)
  335. c DIAM2=DIAM*DIAM
  336. c CELL = 4.0D0*MU / (DIAM2*RO)
  337. c CELL = MAX(CELL, (4.0D0/(DIAM2*RO)))
  338. C
  339. c IF(CELL .GT. UNSDT)THEN
  340. c UNSDT = CELL
  341. c ENDIF
  342. C
  343. ENDDO
  344. C
  345. C
  346. c DT = 1.0D0 / (UNSDT + XPETIT)
  347. DT = 1.0D0
  348. C
  349. C SEGDES MELEFL
  350. C SEGDES MELEMF
  351. C SEGDES MELEMC
  352. C SEGDES MPSURF
  353. C SEGDES MPNORM
  354. C SEGDES MPDIAM
  355. SEGSUP MLCENT
  356. C
  357. C SEGDES MPGRTF
  358. C SEGDES MPFLUX
  359. C
  360. C IF(IQIMP .NE. 0)THEN
  361. C SEGDES MPQIMP
  362. C SEGDES MLEQIM
  363. C ENDIF
  364. C
  365. 9999 CONTINUE
  366. END
  367.  
  368.  
  369.  
  370.  

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