Télécharger inimur.procedur

Retour à la liste

Numérotation des lignes :

  1. * INIMUR PROCEDUR MAGN 01/10/16 21:15:16 4216
  2. 'DEBPROC' INIMUR rxt*TABLE tbt*TABLE ;
  3.  
  4. *------------------------------------------------------------
  5. * Procedure d'initialisation des murs pour la procedure ENCEINTE
  6. *
  7. * La definition des murs se fait de la facon suivante :
  8. * 1/ on definit les materiaux utilises et leurs proprietes
  9. * rxt.'MATMUR' = TABLE ;
  10. * rxt.'MATMUR'.'NMAT' = 2 ; Nombre de materiaux definis
  11. * rxt.'MATMUR'.'LAMBDA'.1 = 0.15 ; Definition de Lambda (W/m/K)
  12. * rxt.'MATMUR'.'ROCP'.1 = 120000. ; Definition de rho*cp (J/M3/K)
  13. *
  14. * 2/ on definit les murs en contact avec le fluide
  15. * rxt.'TABMUR' = TABLE ;
  16. * rxt.'TABMUR'.'NMUR' = 3 ; Nombre de murs
  17. * rxt.'TABMUR'.'TYPE'.1 = 'THERM' ou 'CLIMT' thermique paroi ou CLIM
  18. * rxt.'TABMUR'.'MAILLAGE'.1 = mail1 ; maillage associe au mur
  19. * surface ou volume suivant TYPE
  20. * rxt.'TABMUR'.'MATER'.1 = 1 ou 2 : numero du materiau si TYPE=THERM
  21. * rxt.'TABMUR'.'TPINI'.1 = cste ou 'Tp1' : conditions initiales
  22. * cste : si THERM
  23. * 'Tp1' : nom de Tp(t) dans rxt.scenario
  24. * pour CLIMT
  25. *----------------------------------------------------------------
  26. * Entree : TABLE RXT
  27. * Sortie : TABLE RXT avec aux indices suivants :
  28. * 'vtp' : maillage contenant les elements pour la thermique paroi
  29. * 'rocpb' : CHAMPOINT SCAL CENTRE sur $vtp contenant les rhocp
  30. * 'lamb' : CHAMPOINT SCAL CENTRE sur $vtp contenant les lambda
  31. * 'paroif' : paroi du fluide en contact avec des murs THERM
  32. * 'THERMP' : logique pour le traitement de la thermique paroi
  33. * 'paroic' : maillage pour la condensation (surface totale THERM et
  34. * CLIMT ) = PAROIC1 ET MTPI
  35. * 'paroic1' : maillage pour l'equation en TF (que murs THERM)
  36. * 'mtpi' : maillage pour les CLIM de TF (que murs CLIMT)
  37. * 'TPAROIC' : logique pour le traitement des parois condensantes
  38. * 'TTIMP' : logique pour le traitement des CLIM sur TF
  39. * Il faut aussi les modeles correspondants a chaque maillage
  40. * $vtp $paroic $paroic1 $mtpi $paroif
  41. * Un CHAMPOINT TP0 sur $vtp pour les CI de l'inconnue TP (SOMMET)
  42. TBM = rxt.'TABMUR' ;
  43. THERMP = FAUX ;
  44. TPAROIC = FAUX ;
  45. TTIMP = FAUX ;
  46. NBMUR = TBM.'NMUR' ;
  47. NTHER = 0 ;
  48. NCLIM = 0 ;
  49. T_MTHER = TABLE 'VECTEUR' ;
  50. T_MCLIM = TABLE 'VECTEUR' ;
  51. T_LAMBD = TABLE 'VECTEUR' ;
  52. T_ROCP = TABLE 'VECTEUR' ;
  53. T_TTP0 = TABLE 'VECTEUR' ;
  54. T_CTP0 = TABLE 'VECTEUR' ;
  55.  
  56. vtf=rxt.'vtf' ;
  57.  
  58. 'REPETER' BOUC0 NBMUR ;
  59. 'SI' ('EGA' TBM.'TYPE' . &BOUC0 'ADIAB') ;
  60. mess '============> Paroi adiabatique <============' ;
  61. 'SI' (NON ('EGA' ('VALE' 'DIME') 3 )) ;
  62. paroif = (cont vtf) ;
  63. 'SINON' ;
  64. paroif = (enve vtf) ;
  65. 'FINSI' ;
  66. GEO.'paroif' = paroif ;
  67. 'QUITTER' inimur ;
  68. 'FINSI' ;
  69. 'FIN' BOUC0 ;
  70.  
  71. 'REPETER' BOUC1 NBMUR ;
  72. *-- On regarde le type pour mettre a jour les variables logiques
  73. 'SI' ( 'NON' ( ('EGA' TBM.'TYPE' . &BOUC1 'THERM') 'OU'
  74. ('EGA' TBM.'TYPE' . &BOUC1 'CLIMT') 'OU'
  75. ('EGA' TBM.'TYPE' . &BOUC1 'CLIMI') ) ) ;
  76. 'ERRE' 5 ;
  77. 'FINSI' ;
  78. 'SI' ( 'EGA' TBM.'TYPE' . &BOUC1 'THERM' ) ;
  79. NTHER = NTHER + 1 ;
  80. 'SI' ( 'NON' THERMP ) ;
  81. vtp = TBM.'MAILLAGE' . &BOUC1 ;
  82. 'SINON' ;
  83. vtp = rxt.'vtp' 'ET' TBM.'MAILLAGE'. &BOUC1 ;
  84. 'FINSI' ;
  85. T_MTHER.NTHER = TBM.'MAILLAGE' . &BOUC1 ;
  86. IMATM = TBM.'MATER' . &BOUC1 ;
  87. TMAT = rxt.'MATMUR' ;
  88. T_LAMBD . NTHER = TMAT.'LAMBDA' . IMATM ;
  89. T_ROCP . NTHER = TMAT.'ROCP' . IMATM ;
  90. T_TTP0 . NTHER = TBM.'TPINI' . &BOUC1 ;
  91. THERMP = VRAI ;
  92. TPAROIC = VRAI ;
  93. 'FINSI' ;
  94. 'SI' ( 'EGA' TBM.'TYPE' . &BOUC1 'CLIMT' ) ;
  95. NCLIM = NCLIM + 1 ;
  96. 'SI' ( 'NON' TTIMP ) ;
  97. mtpi = TBM.'MAILLAGE' . &BOUC1 ;
  98. 'SINON' ;
  99. mtpi = mtpi 'ET' TBM.'MAILLAGE' . &BOUC1 ;
  100. 'FINSI' ;
  101. T_MCLIM . NCLIM = TBM.'MAILLAGE' . &BOUC1 ;
  102. T_CTP0 . NCLIM = TBM.'TPINI' . &BOUC1 ;
  103. TPAROIC = VRAI ;
  104. TTIMPI= FAUX ;
  105. TTIMP = VRAI ;
  106. 'FINSI' ;
  107. 'SI' ( 'EGA' TBM.'TYPE' . &BOUC1 'CLIMI' ) ;
  108. NCLIM = NCLIM + 1 ;
  109. 'SI' ( 'NON' TTIMP ) ;
  110. mtpi = TBM.'MAILLAGE' . &BOUC1 ;
  111. 'SINON' ;
  112. mtpi = mtpi 'ET' TBM.'MAILLAGE' . &BOUC1 ;
  113. 'FINSI' ;
  114. T_MCLIM . NCLIM = TBM.'MAILLAGE' . &BOUC1 ;
  115. T_CTP0 . NCLIM = TBM.'TPINI' . &BOUC1 ;
  116. TPAROIC = VRAI ;
  117. TTIMP = VRAI ;
  118. TTIMPI= VRAI ;
  119. 'FINSI' ;
  120. 'FIN' BOUC1 ;
  121. *---------------------------------------------------------
  122. * Traitement des maillages THERMIQUE PAROI
  123. 'SI' ( THERMP ) ;
  124. 'MESS' '==> THERMIQUE PAROI ' ;
  125. vtf = rxt.'vtf' ;
  126. vtp = rxt.'vtp' ;
  127. Mvtf = GEO.'Mvtf' ;
  128. 'SI' (NON ('EGA' ('VALE' 'DIME') 3 )) ;
  129. paroif = inte (cont vtf) (cont vtp) ;
  130. 'SINON' ;
  131. paroif = inte (enve vtf) (enve vtp) ;
  132. 'FINSI' ;
  133. paroic = paroif ;
  134. paroic1 = paroif ;
  135. 'SI' TBT.'GRAPH' ;
  136. 'TRACE' paroic 'TITR' 'Surface contact FLUIDE/THERM' ;
  137. 'FINSI' ;
  138.  
  139. 'SI' (exist rxt 'paroif') ;
  140. paroif = rxt.'paroif' et paroif ;
  141. 'FINSI' ;
  142. *--- Creation du modele sur le maillage VTP
  143. 'SI' TBT.'GRAPH' ;
  144. 'TRACE' vtp 'TITR' 'Maillage pour THERMIQUE ' ;
  145. 'FINSI' ;
  146. Mvtp = 'CHAN' vtp 'QUAF' ;
  147. 'ELIM' GEO.'epsi' (Mvtf 'ET' Mvtp) ;
  148. $vtp = 'MODE' Mvtp 'NAVIER_STOKES' TBT.'discr' ;
  149.  
  150. *--- Creation des champs points sur VTP : Lambda, rocp et Tp0
  151. lambda = 'KCHT' $vtp SCAL SOMMET 0.0 ;
  152. rocpb = 'KCHT' $vtp SCAL SOMMET 0.0 ;
  153. Tp0 = 'KCHT' $vtp SCAL SOMMET 0.0 ;
  154.  
  155. 'REPETER' BOUC2 NTHER ;
  156. maili = T_MTHER . &BOUC2 ;
  157. tempo = 'MANU' 'CHPO' maili 1 'SCAL' T_LAMBD . &BOUC2
  158. 'NATURE' 'DISCRET' ;
  159. lambda = 'KCHT' $vtp SCAL SOMMET lambda tempo ;
  160. tempo = 'MANU' 'CHPO' maili 1 'SCAL' T_ROCP . &BOUC2
  161. 'NATURE' 'DISCRET' ;
  162. rocpb = 'KCHT' $vtp SCAL SOMMET rocpb tempo ;
  163. tempo = 'MANU' 'CHPO' maili 1 'SCAL' T_TTP0 . &BOUC2
  164. 'NATURE' 'DISCRET' ;
  165. Tp0 = 'KCHT' $vtp SCAL SOMMET Tp0 tempo ;
  166. 'FIN' BOUC2 ;
  167. *---- On doit passer par ELNO NOEL pour les points milieux
  168. lambdac= NOEL $vtp lambda ;
  169. rocpc = NOEL $vtp rocpb ;
  170. tp0c = NOEL $vtp Tp0 ;
  171. Tp0 = ELNO $vtp tp0c ;
  172. 'SI' (('EGA' TBT.'discr' 'LINE' ) 'OU' ('EGA' ('VALE' 'DIME') 2)) ;
  173. FACT = 1.0 ;
  174. 'SINON' ;
  175. FACT = 2.0 ;
  176. 'FINSI' ;
  177.  
  178. lambda = 'KCHT' $vtp SCAL CENTRE (lambdac * FACT) ;
  179. rocpb = 'KCHT' $vtp SCAL CENTRE (rocpc * FACT) ;
  180. Tp0 = 'KCHT' $vtp SCAL SOMMET (Tp0 * FACT ) ;
  181. *--- Trace de verification
  182. 'SI' TBT.'GRAPH' ;
  183. lambdan = 'ELNO' $vtp lambda ;
  184. * 'TRACE' lambdan vtp
  185. * 'TITR' 'Conductivite Thermique initiale (W/m/K)' ;
  186. * rocpbn = 'ELNO' $vtp rocpb ;
  187. * 'TRACE' rocpbn vtp
  188. * 'TITR' 'Rho.Cp initiale (J/m3/K)';
  189. Si (exist tic 'TP');
  190. 'TRACE' tic.'TP' vtp
  191. 'TITR' 'Température Initiale (C)';
  192. Finsi ;
  193. 'FINSI' ;
  194. 'FINSI' ;
  195. *---------------------------------------------------------
  196. * Traitement des maillages CONDITIONS AUX LIMITES
  197. 'SI' ( TTIMP ) ;
  198. *--- Ajout des maillages pour paroif et paroic
  199. 'SI' THERMP ;
  200. paroif = paroif 'ET' mtpi ;
  201. paroic = paroic 'ET' mtpi ;
  202. 'SINON' ;
  203. paroif = mtpi ;
  204. paroic = mtpi ;
  205. 'FINSI' ;
  206.  
  207. *--- Creation du modele sur le maillage MTPI
  208. Mmtpi = 'CHAN' mtpi 'QUAF' ;
  209. 'ELIM' GEO.'epsi' (Mvtf 'ET' Mmtpi) ;
  210. $mtpi = 'MODE' Mmtpi 'NAVIER_STOKES' TBT.'discr' ;
  211. mtpi = doma $mtpi maillage ;
  212. GEO.'$mtpi' = $mtpi ;
  213. GEO.'mtpi' = mtpi ;
  214. 'SI' TBT.'GRAPH' ;
  215. 'TRACE' mtpi 'TITR' 'Maillage pour C.L. THERMIQUE ' ;
  216. 'FINSI' ;
  217.  
  218. *--- Creation des champs points sur MTPI : cTp0
  219. cTp0 = 'KCHT' $mtpi SCAL SOMMET 0.0 ;
  220.  
  221. 'REPETER' BOUC3 NCLIM ;
  222. maili = T_MCLIM . &BOUC3 ;
  223. *--- Calcul de la temperature a partir du nom de la table
  224. t = rxt.'scenario'.'t' ;
  225. ctp1 = 'IPOL' 0.0 t (rxt.'scenario'. (T_CTP0 . &BOUC3) ) ;
  226. tempo = 'MANU' 'CHPO' maili 1 'SCAL' ctp1
  227. 'NATURE' 'DISCRET' ;
  228. cTp0 = 'KCHT' $mtpi SCAL SOMMET cTp0 tempo ;
  229. 'FIN' BOUC3 ;
  230. ctp0c = NOEL $mtpi cTp0 ;
  231. cTp0 = ELNO $mtpi ctp0c ;
  232. 'SI' (('EGA' TBT.'discr' 'LINE' ) 'OU' ('EGA' ('VALE' 'DIME') 2)) ;
  233. FACT = 1.0 ;
  234. 'SINON' ;
  235. FACT = 4.0/ 3.0 ;
  236. 'FINSI' ;
  237. cTp0 = 'KCHT' $mtpi SCAL SOMMET (cTp0 * FACT ) ;
  238. *--- Trace de verification
  239. 'SI' TBT.'GRAPH' ;
  240. 'TRACE' cTp0 mtpi
  241. 'TITR' 'Température Initiale (C)';
  242. 'SI' THERMP ;
  243. 'TRACE' (Tp0 et cTp0) (vtp et mtpi)
  244. 'TITR' 'Température Initiale (C)';
  245. 'FINSI' ;
  246. 'FINSI' ;
  247. 'FINSI' ;
  248.  
  249. * Sauvegarde dans la TABLE RXT
  250. *
  251. TBT.'THERMP' = THERMP ;
  252. TBT.'TPAROIC' = TPAROIC ;
  253. TBT.'TTIMP' = TTIMP ;
  254. TBT.'TTIMPI' = TTIMPI ;
  255.  
  256. 'SI' THERMP ;
  257. GEO.'vtp' = vtp ;
  258. GEO.'$vtp' = $vtp ;
  259. GEO.'paroic1' = paroic1 ;
  260. tbt.'lambda' = lambda ;
  261. tbt.'rocpb' = rocpb ;
  262. tbt.'Tp0' = Tp0 ;
  263. 'FINSI' ;
  264.  
  265. GEO.'paroif' = paroif ;
  266.  
  267. 'SI' TPAROIC ;
  268. GEO.'paroic' = paroic ;
  269. 'FINSI' ;
  270.  
  271. 'SI' (TTIMP) ;
  272. TBT.'cTp0' = cTp0 ;
  273. *----------- Sauvegarde pour INTERPOLATION
  274. TBT.'NCLIM'= NCLIM ;
  275. TBT.'T_MCLIM' = T_MCLIM ;
  276. TBT.'T_CTP0' = T_CTP0 ;
  277. 'FINSI' ;
  278. 'FINPROC' ;
  279.  
  280.  

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