Télécharger rayo-2D-3.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : rayo-2D-3.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. ************************************************************************
  6. * *
  7. * Rayonnement thermique en milieu transparent: *
  8. * *
  9. * vérification du bon fonctionnement de l'opérateur FFOR dans le cas *
  10. * général (traitement des parties cachées) sur un cas thermiquement *
  11. * simple avec axe de symétrie. *
  12. * *
  13. * Test 2D-plan sur un problème à symétrie cylindrique 1D: *
  14. * -------------------- *
  15. * on considère 3 cylindres coaxiaux de rayons 25mm, 50mm et 100mm *
  16. * conducteurs et d'emissivité 1. La température des cylindres intérieur*
  17. * et extérieur est uniforme (respectivement 1000K et 2000K) et on *
  18. * détermine la température d'équilibre du cylindre intermédiaire. *
  19. * (conventions: indices 1,2,3 pour les cylindres de rayon 25,50,100mm) *
  20. * *
  21. * Jeu de données identique au cas 2D-axis :rayo-axi-2.dgibi *
  22. * hormis la valeur des 2 paramètres: *
  23. * 'xrev' vrai : géométrie axisymétrique *
  24. * faux : 2D plane *
  25. * 'x2cav' vrai : on considère les 2 cavités séparément *
  26. * faux : l'ensemble des 2 cavités *
  27. * *
  28. ************************************************************************
  29.  
  30. xrev = faux ; x2cav = vrai ;
  31.  
  32. graph = faux ;
  33.  
  34. si xrev ;
  35. option echo 1 dime 2 elem qua4 mode axis ;
  36. sinon;
  37. option echo 1 dime 2 elem qua4 ;
  38. finsi;
  39.  
  40. *-------------------------------
  41. * Données physiques du problème
  42. *-------------------------------
  43.  
  44. r1 = 25e-3 ; r2 = 50e-3 ; r3 = 100e-3 ;
  45. T1 = 1000. ; T3 = 2000. ;
  46. emis = 1. ; lamb = 20. ;
  47.  
  48. *-------------------------------
  49. * Solution analytique
  50. *-------------------------------
  51.  
  52. si xrev ;
  53. f21 = (r1*r1)/(r2*r2) ;
  54. sinon;
  55. f21 = r1/r2 ;
  56. finsi;
  57. f22 = 1. - f21 ;
  58. M1 = T1**4. ; M3 = T3**4. ;
  59. M2 = ( (f21*M1) + M3 )/(2.-f22) ;
  60. T2_ana = M2**(0.25) ;
  61.  
  62. *-------------------------------
  63. * Maillage
  64. *-------------------------------
  65.  
  66. C = 0. 0. ;
  67.  
  68. * sphère 1
  69.  
  70. p1_sud = 0. ( -1. * r1 ) ;
  71. p1_equa = r1 0. ;
  72. p1_nord = 0. r1 ;
  73. d1 = r1/3 ;
  74. c1_inf = cerc p1_sud C p1_equa DINI d1 DFIN d1;
  75. c1_sup = cerc p1_equa C p1_nord DINI d1 DFIN d1;
  76. c1_tot = c1_inf et c1_sup ;
  77. c1_int = c1_tot homo C 0.999 ;
  78. c1_ext = c1_tot homo C 1.001 ;
  79. sphere1 = regl c1_int c1_ext ;
  80.  
  81. * sphère 2
  82.  
  83. p2_sud = 0. ( -1. * r2 ) ;
  84. p2_equa = r2 0. ;
  85. p2_nord = 0. r2 ;
  86. d2 = r2/3 ;
  87. c2_inf = cerc p2_sud C p2_equa DINI d2 DFIN d2;
  88. c2_sup = cerc p2_equa C p2_nord DINI d2 DFIN d2;
  89. c2_tot = c2_inf et c2_sup ;
  90. c2_int = c2_tot homo C 0.999 ;
  91. c2_ext = c2_tot homo C 1.001 ;
  92. sphere2 = regl c2_int c2_ext ;
  93.  
  94. * sphère 3
  95.  
  96. p3_sud = 0. ( -1. * r3 ) ;
  97. p3_equa = r3 0. ;
  98. p3_nord = 0. r3 ;
  99. d3 = r3/3 ;
  100. c3_inf = cerc p3_sud C p3_equa DINI d3 DFIN d3;
  101. c3_sup = cerc p3_equa C p3_nord DINI d3 DFIN d3;
  102. c3_tot = c3_inf et c3_sup ;
  103. c3_int = c3_tot homo C 0.999 ;
  104. c3_ext = c3_tot homo C 1.001 ;
  105. sphere3 = regl c3_int c3_ext ;
  106.  
  107. * on controle l'orientation des elements pour les cavités rayonnantes
  108.  
  109. cavi_12 = (inve c1_ext) et c2_int ;
  110. cavi_23 = (inve c2_ext) et c3_int ;
  111. cavi_tot = cavi_12 et cavi_23 ;
  112.  
  113. tout = sphere1 et sphere2 et sphere3 ;
  114.  
  115. si graph ;
  116. trac tout ;
  117. finsi ;
  118.  
  119. *-------------------------------
  120. * Conduction
  121. *-------------------------------
  122.  
  123. mcd = mode tout thermique ;
  124. k = mate mcd 'K' lamb ;
  125. cnd = cond mcd k ;
  126.  
  127. *-------------------------------
  128. * Modèles de rayonnement
  129. *-------------------------------
  130. pptt= 0 1.;
  131. 'SI' xrev;
  132. tt = 'TEXTE' ' ';
  133. 'SINON' ;
  134. tt= 'TEXTE' 'SYMETRIE C PPTT';
  135. 'FINSI';
  136.  
  137. si x2cav;
  138. mr12 = mode cavi_12 thermique rayonnement 'CAVITE'
  139. SYMETRIE C pptt CONS 'CAV1';
  140. e12 = mate mr12 'EMIS' emis ;
  141.  
  142. mr23 = mode cavi_23 thermique rayonnement 'CAVITE'
  143. tt CONS 'CAV1';
  144. e23 = mate mr23 'EMIS' emis ;
  145. sinon;
  146. mrtot= mode cavi_tot thermique rayonnement 'CAVITE'
  147. tt;
  148. etot = mate mrtot 'EMIS' emis ;
  149. finsi;
  150.  
  151. *-------------------------------
  152. * Facteurs de forme et matrices de rayonnement
  153. *-------------------------------
  154.  
  155. si x2cav ;
  156. *opti 'IMPI' 1 ;
  157. si xrev ;
  158. ff12 = ffor mr12 e12;
  159. ff23 = ffor mr23 e23;
  160. sinon;
  161. ff12 = ffor mr12 e12;
  162. ff23 = ffor mr23 e23;
  163. finsi;
  164. *opti 'IMPI' 0 ;
  165.  
  166. cham12 = raye mr12 ff12 e12 ;
  167. cham23 = raye mr23 ff23 e23 ;
  168.  
  169. sinon;
  170. *opti 'IMPI' 1 ;
  171. si xrev ;
  172. fftot= ffor mrtot etot;
  173. sinon;
  174. fftot = ffor mrtot etot;
  175. finsi;
  176. *opti 'IMPI' 0 ;
  177.  
  178. chamtot = raye mrtot fftot etot ;
  179.  
  180. finsi;
  181.  
  182. *-------------------------------
  183. * Conditions aux limites
  184. *-------------------------------
  185.  
  186. c1 = bloq sphere1 'T' ;
  187. tim1 = depi c1 T1 ;
  188. c3 = bloq sphere3 'T' ;
  189. tim3 = depi c3 T3 ;
  190.  
  191. *-------------------------------
  192. * Algorithme de résolution
  193. *-------------------------------
  194.  
  195. *** Initialisation de la température ...
  196.  
  197. tp = manu chpo tout 1 'T' T3 natu 'DIFFUS';
  198. nbpsup = nbno tout ;
  199.  
  200. *** Résolution (par itérations) ...
  201.  
  202. * Coeff. de relaxation ...
  203. alfa = 0.3 ;
  204.  
  205. listemp = prog ;
  206. listres = prog ;
  207.  
  208. maxiter = 100 ;
  209. critconv = 1.e-5 ;
  210. * opti echo 1 ;
  211. REPE bloc1 ;
  212.  
  213. nbiter = &bloc1 ;
  214.  
  215. * traitement du rayonnement
  216.  
  217. si x2cav ;
  218. t_c12 = redu (exco 'T' tp 'T') cavi_12 ;
  219. te_c12 = chan 'CHAM' t_c12 mr12 'GRAVITE' ;
  220. cr12 = rayn mr12 cham12 te_c12 ;
  221.  
  222. t_c23 = redu (exco 'T' tp 'T') cavi_23 ;
  223. te_c23 = chan 'CHAM' t_c23 mr23 'GRAVITE' ;
  224. cr23 = rayn mr23 cham23 te_c23 ;
  225. crtot = cr12 et cr23 ;
  226.  
  227. sinon;
  228. t_tot = redu (exco 'T' tp 'T') cavi_tot;
  229. te_tot = chan 'CHAM' t_tot mrtot 'GRAVITE' ;
  230. crtot= rayn mrtot chamtot te_tot ;
  231.  
  232. finsi;
  233.  
  234. cndtot = crtot et cnd et c1 et c3 ;
  235. residu = cndtot * tp ;
  236. normres = ((xtx (exco 'Q' residu)) / nbpsup) ** 0.5 ;
  237. * mess ' La norme du flux résiduel = ' normres ;
  238. si((nbiter > 1) et (normres < critconv)) ;
  239. mess 'Convergence à l itération ' (nbiter-1) ;
  240. quitter bloc1 ;
  241. finsi ;
  242. si(nbiter > maxiter) ;
  243. mess 'Erreur ! Pas de convergence après ' (nbiter-1)
  244. ' itérations !' ;
  245. erre 2 ;
  246. quitter bloc1 ;
  247. finsi ;
  248. listres = listres et (prog normres) ;
  249.  
  250. * mess '---------------------------------------' ;
  251. * mess 'Itération N° ' &bloc1 ;
  252.  
  253. tt = resou cndtot (tim1 et tim3) ;
  254. dt = exco 'T' (tt - tp) 'T' ;
  255. normdt = ((xtx dt) / nbpsup) ** 0.5 ;
  256. * mess ' La norme de delta t = ' normdt ;
  257.  
  258. tn = (alfa * tt) + ((1.-alfa) * tp) ;
  259. tp = tn ;
  260.  
  261.  
  262. FIN bloc1 ;
  263. * opti echo 1 ;
  264.  
  265. *-------------------------------
  266. * Post-traitement ...
  267. *-------------------------------
  268.  
  269. titre 'Champ de température final' ;
  270. si(graph) ; trac sphere2 (exco 'T' tn) ; finsi ;
  271.  
  272. Temp = exco 'T' tt 'T' ;
  273. T2 = redu sphere2 Temp ;
  274.  
  275. RESI=maxi( ABS((T2 - T2_ana)/T2_ana));
  276. mess 'Problème à symétrie cylindrique';
  277. mess 'Solution analytique ' T2_ana ;
  278. mess 'Erreur relative ' (100*RESI) '%' ;
  279. SI (RESI &lt;EG 2E-3);
  280. ERRE 0;
  281. SINO;
  282. ERRE 5;
  283. FINSI;
  284.  
  285. fin;
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  

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