Télécharger tran4.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : tran4.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. *******************************************
  6. * Test tran4.dgibi: jeux de données *
  7. * --------------------------------- *
  8. *******************************************
  9.  
  10. * SI GRAPH = N PAS DE GRAPHIQUE AFFICHE
  11. * SINON SI GRAPH DIFFERENT DE N TOUS
  12. * LES GRAPHIQUES SONT AFFICHES
  13.  
  14. GRAPH = 'N' ;
  15.  
  16. SAUT PAGE;
  17. SI (NEG GRAPH 'N') ;
  18. OPTI ECHO 1 ;
  19. OPTI TRAC PSC ;
  20. SINO ;
  21. OPTI ECHO 0 ;
  22. FINSI ;
  23.  
  24. SAUT PAGE;
  25.  
  26. *******************************************
  27. * pour calcul complet mettre complet=vrai;
  28. *******************************************
  29. complet = vrai;
  30.  
  31. *-----------------------------------------*
  32. * TRAN4 *
  33. * *
  34. * Test de l'option changement de phase de *
  35. * l'opérateur capacité et de l'algorithme *
  36. * de transit3 *
  37. *******************************************
  38. * PROBLEME DE STEPHAN UNIDIMENSIONNEL *
  39. * *
  40. * Transport de la chaleur par diffusion *
  41. * uniquement *
  42. * *
  43. * T(0,t) = 0 SI t<0 *
  44. * T(0,t) = 2 SI t>0 *
  45. * ------------------------------------- *
  46. * | BARRE | *
  47. * ------------------------------------- *
  48. * x=0 T=0° *
  49. * à l'inFINi *
  50. * *
  51. * Changement de phase à 1° avec chaleur *
  52. * latente massique L. Toutes les autres *
  53. * caractéristiques sont egales à 1. *
  54. * *
  55. * Recherche de l'avancée du front de *
  56. * changement de phase en fonction du temps*
  57. * (entre 0 ET 1 seconde) *
  58. * *
  59. * REFERENCE pour la solution analytique *
  60. * "Conduction of Heat in Solids" *
  61. * H S Carslaw and J C Jaeger *
  62. * Oxford Clarendon Press 1959 *
  63. * ch XI p291 *
  64. *-----------------------------------------*
  65.  
  66. *==========================================
  67. * paramètres pour l'integration numérique
  68.  
  69. * Pour le test on conseille
  70. * dt=0.025 dx=0.01 EPSILON=0.1
  71.  
  72. * largeur du changement de phase
  73. EPSILON = 0.1 ;
  74. * chaleur latente
  75. L = 4.7427 ;
  76. * constante de la solution analytique
  77. BETA = 0.25 ;
  78. * pas de temps
  79. DT = 0.025 ;
  80. * pas d'espace
  81. DX = 0.05 ;
  82. *==========================================
  83.  
  84. * MAILLAGE avec des QUA4
  85. OPTI DIME 2 ELEM SEG2;
  86. DENS DX ;
  87. p1 = 0. 0. ;
  88. p4 = 0. DX ;
  89. DENS (4.*DX) ;
  90. p2 = 10. 0. ;
  91. p3 = 10. DX ;
  92. *
  93. li1 = d p1 p2 ;
  94. li2 = d 1 p2 p3 ;
  95. li3 = d p3 p4 ;
  96. li4 = d 1 p4 p1 ;
  97. OPTI ELEM QUA4 ;
  98. su1 = DALL li1 li2 li3 li4 'PLAN' ;
  99.  
  100. SI(NEG GRAPH 'N');
  101. TRAC 'QUAL' su1 ;
  102. FINSI;
  103.  
  104. * MODELE DE CALCUL
  105. mod1 = MODE su1 THERMIQUE 'QUA4' ;
  106. mod2 = MODE su1 'CHANGEMENT_PHASE' 'INCO' 'T' 'Q' ;
  107.  
  108. * CARACTERISTIQUES
  109. mat = MATE mod1 'C' 1. 'K' 1. 'RHO' 1. ;
  110. mat2 = MATE mod2 'PRIM' 1. 'DUAL' L;
  111.  
  112. * TEMPÉRATURE IMPOSÉE EN X=0
  113. bl1 = BLOQ 'T' li4 ;
  114. timp1 = DEPI bl1 2. ;
  115. ev1 = EVOL MANU ABS (PROG 0. 1.) ORD (PROG 1. 1.);
  116. cha = CHAR TIMP timp1 ev1;
  117.  
  118. * TABLE POUR THERMIC
  119. xtab = TABL ;
  120. xtab.temperatures = TABL;
  121. xtab.temperatures . 0 = ( MANU CHPO su1 1 'T' 0. ) + ( MANU CHPO li4 1 'T' 2. ) ;
  122. xtab.'MODELE' = mod1 et mod2 ;
  123. xtab.'CARACTERISTIQUES' = mat et mat2 ;
  124. xtab.'CHARGEMENT' = cha;
  125. xtab.'BLOCAGES_THERMIQUES' = bl1 ;
  126.  
  127. SI complet ;
  128. tFIN = 1.;
  129. SINON;
  130. tFIN = 0.25;
  131. FINSI;
  132.  
  133. xtab.'TEMPS_CALCULES' = PROG 0. pas DT tFIN;
  134. xtab.'PROCEDURE_THERMIQUE' = DUPONT;
  135. SI complet;
  136. xtab.'CRITERE' = 1E-2;
  137. SINON;
  138. xtab.'CRITERE' = 5E-2;
  139. FINSI;
  140. xtab.'RELAXATION_THETA' = 1.;
  141.  
  142. * CALCUL
  143. PASAPAS xtab ;
  144.  
  145. * ANALYSE DES RESULTATS
  146.  
  147. * le front avance comme 2*beta*(t**0.5)
  148. * beta ET Chaleur latente sont liés
  149.  
  150. LTPS = PROG 0.;
  151. LFR = PROG 0. ;
  152. LFRTHEO = PROG 0.;
  153. LFRSANS = PROG 0. ;
  154.  
  155. * BOUCLE SUR LES PAS DE TEMPS
  156. npas = (DIME (xtab.temps)) - 1;
  157. REPE analyse npas;
  158. ite = &analyse;
  159. temp1 = xtab. temps . ite ;
  160. ev1 = EVOL CHPO (xtab. temperatures . ite ) ( li1) 'T';
  161. lt = EXTR ev1 'T' ;
  162.  
  163. * boucle sur les points de la droite li1 :
  164. * recherche du point dont T vaut 1
  165. REPE trak ( DIME lt) ;
  166. tt2 = EXTR lt (&trak) ;
  167. SI ( tt2 < 1. ) ;
  168. xx1 = EXTR ( EXTR ev1 'ABSC' ) (&trak - 1) ;
  169. tt1 = EXTR lt (&trak - 1) ;
  170. xx2 = EXTR ( EXTR ev1 'ABSC' ) &trak ;
  171.  
  172. * Interpolation entre deux noeuds
  173. * xx est la position du front
  174. xx = xx1+((1. - tt1 )*( xx2 - xx1 ) / ( tt2 - tt1 ));
  175. QUITTER trak ;
  176. FINSI ;
  177. FIN trak ;
  178.  
  179. xxtheo = 2. * beta * ( temp1 ** 0.5 ) ;
  180. xxsans = 0.95 * ( temp1 ** 0.5 ) ;
  181.  
  182. * TITR 'Instant' (xtab. temps . ite) ;
  183. * dess ev1 ;
  184.  
  185. MESS 'TEMPS' temp1 ' Front =' xx 'Valeur Theorique' xxtheo;
  186. ltps = ltps ET ( PROG temp1 ) ;
  187. lfr = lfr ET ( PROG xx) ;
  188. lfrtheo = lfrtheo ET ( PROG xxtheo ) ;
  189. lfrsans = lfrsans ET ( PROG xxsans ) ;
  190. FIN analyse ;
  191.  
  192. * VISUALISATION
  193. evfr = EVOL BLEU MANU 'TEMPS' ltps 'ABSCISSE' lfr ;
  194. evfrtheo = EVOL ROUG MANU 'TEMPS' ltps 'ABSCISSE' lfrtheo ;
  195. evfrsans = EVOL VERT MANU 'TEMPS' ltps 'ABSCISSE' lfrsans ;
  196.  
  197. SI(NEG GRAPH 'N');
  198. TITR 'Avance du front : EPSILON=' EPSILON 'Dt=' dt 'Dx=' dx ;
  199. DESS ( evfr ET evfrtheo ) ;
  200. FINSI;
  201.  
  202.  
  203. *Retrait du premier terme nul des LISTREEL
  204. LENT1 = LECT;
  205. REPE SURIND ((DIME lfr) - 1);
  206. Indice = &SURIND;
  207. MESS Indice;
  208. LENT1 = LENT1 ET (LECT (Indice+1));
  209.  
  210. FIN SURIND;
  211.  
  212. lfr2 = EXTR lfr LENT1;
  213. lfrtheo2 = EXTR lfrtheo LENT1;
  214.  
  215. erreu=100. * (abs(lfr2 - lfrtheo2) / lfrtheo2);
  216.  
  217. MESS 'Erreur Maximale : ' (MAXI erreu) ;
  218.  
  219. * Message d'erreur
  220. SI ( (MAXI erreu) > 13. ) ;
  221. MESS 'Résultat incorrect' ;
  222. ERRE 5 ;
  223. FINSI ;
  224.  
  225. *OPTI SAUV 'test.res' ;
  226. *SAUV evfr evfrtheo evfrsans ;
  227. FIN ;
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  

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