Télécharger translin.procedur

Retour à la liste

Numérotation des lignes :

  1. * TRANSLIN PROCEDUR MB234859 24/09/11 21:15:04 12008
  2. 'DEBPROC' TRANSLIN PRECED*'TABLE';
  3.  
  4. *----------------------------------------------------------------------*
  5. * *
  6. * T R A N S L I N *
  7. * --------------- *
  8. * *
  9. * RESOLUTION D'UN PROBLEME DE THERMIQUE TRANSITOIRE LINEAIRE *
  10. * METHODE A UN PAS DE TEMPS ( THETA SCHEMA ) *
  11. * *
  12. * ETAB, TABLE CONTENANT EN ENTREE : *
  13. * *
  14. * INDICE 'TEMPERATURES' CHAMP DE TEMPERATURE INITIAL AU PAS 0 *
  15. * INDICE 'MOD_THE' OBJET MODELE THERMIQUE *
  16. * INDICE 'MOD_CON' OBJET MODELE CONVECTION *
  17. * INDICE 'BLOCAGES_THERMIQUES' MATRICE DE BLOCAGE *
  18. * INDICE 'MAT_THE' OBJET MATERIAU THERMIQUE. *
  19. * CE CHAMP PEUT AVOIR DES COMPOSANTES DE *
  20. * TYPE FLOTTANT OU EVOLUTION *
  21. * INDICE 'MAT_CON' OBJET MATERIAU CONVECTION *
  22. * INDICE 'CHARGEMENT' CHARGEMENT DECRIVANT LES : *
  23. * VALEURS DES VARIABLES EXTERNES (EX: TE, *
  24. * FLUX,TEMPERATURES IMPOSEES ,...) *
  25. * VALEURS DES VARIABLES EXTERNES *
  26. * INDICE 'TEM_CALC' LISTREEL : TEMPS DES RESULTATS A CALCULER *
  27. * INDICE 'RELAXATION_THETA' VALEUR DU 1 COEFFICIENT DE RELAXATION *
  28. * (VALEUR PAR DEFAUT 0.5) *
  29. * INDICE 'SOUS-RELAXATION' VALEUR DU 2 COEFFICIENT DE RELAXATION *
  30. * (VALEUR PAR DEFAUT 0.5) *
  31. * *
  32. * REMARQUE : CERTAINES VARIABLES ONT DES NOMS IMPOSES. *
  33. * LE TEMPS : TEMP *
  34. * LA TEMPERATURE : T *
  35. * LES TEMPERATURES IMPOSEES : TIMP *
  36. * LES FLUX : Q *
  37. * *
  38. * LE NOM DES AUTRES VARIABLES EST LAISSE AU CHOIX DE *
  39. * L'UTILISATEUR *
  40. * *
  41. * D.R., LE 29 JUIN 1988. VERSION DU 18 JANVIER 1989. *
  42. * *
  43. *----------------------------------------------------------------------*
  44.  
  45. ERR_VAL = FAUX;
  46.  
  47. ********************************************************************
  48. * Recuperation de l'information contenue dans ETAB *
  49. ********************************************************************
  50.  
  51. *------- Initialisation de la liste des temps à calculer ---------
  52. ETAB = PRECED.'WTABLE';
  53. CONTI = PRECED.'CONTINUATION';
  54. ESTIM = PRECED.'ESTIMATION';
  55. *
  56. TE_CALC = ETAB.'TEM_CALC' ;
  57. DCALC = 'DIME' TE_CALC;
  58.  
  59. *-------------- Calcul du premier pas de calcul -------------------
  60.  
  61. TEM1 = 'EXTR' TE_CALC 1;
  62. TEM0 = CONTI.'TEMPS' ;
  63. T_PAS = TEM1 -TEM0;
  64.  
  65. *----------- Initialisation du champ de temperatures ------------
  66.  
  67. U0 = CONTI.'TEMPERATURES' ;
  68.  
  69. *---------- y-a-t-il definition des coefficients lambda ----------
  70.  
  71. 'SI' ( 'EXISTE' ETAB 'RELAXATION_THETA' ) ;
  72. LAMBDA1 = ETAB.'RELAXATION_THETA' ;
  73. 'SINON' ;
  74. LAMBDA1 = 1. ;
  75. 'FINSI' ;
  76. 'SI' ( 'EXISTE' ETAB 'SOUS-RELAXATION' ) ;
  77. LAMBDA2 = ETAB.'SOUS-RELAXATION' ;
  78. 'SINON' ;
  79. LAMBDA2 = 1. ;
  80. 'FINSI' ;
  81.  
  82. *------- Cas particulier ou il n'y a pas de CAPACITE ------------------*
  83. *- Ceci correspond au cas ou, au moins, une des 2 composantes 'C ' -*
  84. *- et/ou 'RHO ' n'est pas definie dans le materiau (facultatives). -*
  85.  
  86. ICPCONS = WTAB.'CAPACONST' ;
  87. IKCONS = WTAB.'CONDCONST' ;
  88.  
  89. LCOMPM = 'EXTRAIRE' ETAB.'MAT_THE' 'COMP' ;
  90. ICAPA = ('EXISTE' LCOMPM 'C ') 'ET' ('EXISTE' LCOMPM 'RHO ') ;
  91. ICAPA = ICAPA 'OU' ICPCONS ;
  92. * En regime stationnaire (sans CAPACITE), on force LAMBDA1 et LAMBDA2
  93. * a 1. Sinon on ne resout pas le bon probleme !
  94. 'SI' ('NON' ICAPA) ; LAMBDA1 = 1. ; LAMBDA2 = 1. ; 'FINSI' ;
  95.  
  96. ********************************************************************
  97. * Rappel des donnees du probleme *
  98. ********************************************************************
  99.  
  100. 'SI' ('EGA' ETAB.'PAS' 1) ;
  101. 'SAUTER' 1 'LIGNE';
  102. 'MESS' '---- Probleme de thermique transitoire linéaire ----';
  103. 'MESS' '---- Méthode à un pas de temps (THETA méthode) ----';
  104. 'SAUTER' 1 'LIGNE';
  105. 'MESS' 'Données utilisées du problème :';
  106. 'SAUTER' 1 'LIGNE';
  107. 'MESS' ' Champ de températures à l instant : ' TEM0;
  108. 'MESS' ' Coefficient de relaxation : ' LAMBDA1;
  109. 'MESS' ' Coefficient de sous-relaxation : ' LAMBDA2;
  110. 'SI' ('NEG' ('DIME' ETAB.'BLOCAGES_THERMIQUES') 0);
  111. 'MESS' ' Présence de températures imposées.';
  112. 'SINON';
  113. 'MESS' ' Pas de températures imposées.';
  114. 'FINSI';
  115. 'SI' ('EXISTE' (ETAB.'CHARGEMENT') 'Q ');
  116. 'MESS' ' Présence de flux.';
  117. 'SINON';
  118. 'MESS' ' Pas de présence de flux.';
  119. 'FINSI';
  120. 'SI' ETAB.'CONVECTION';
  121. 'MESS' ' Présence de convection.';
  122. 'SINON';
  123. 'MESS' ' Pas de terme convectif.';
  124. 'FINSI';
  125. 'SI' ('NON' ICAPA) ;
  126. 'MESS' ' Probleme de thermique lineaire stationnaire' ;
  127. 'FINSI' ;
  128. 'SI' ICPCONS ;
  129. 'MESS' ' Présence d une capacite constante.';
  130. 'FINSI';
  131. 'SI' IKCONS ;
  132. 'MESS' ' Présence d une conductivite constante.';
  133. 'FINSI';
  134. 'MESS' ' ';
  135. 'FINSI';
  136.  
  137. ********************************************************************
  138. * Boucle sur les pas de temps *
  139. ********************************************************************
  140. INOBLOT = 'EGA' ('DIME' ETAB.'BLOCAGES_THERMIQUES') 0 ;
  141.  
  142. 'REPETER' BOUC_SO ;
  143. ITE3 = &BOUC_SO;
  144.  
  145. *-------------------- Condition de fin de boucle ------------------
  146.  
  147. TEMM = (LAMBDA2 * TEM1) + ((1 - LAMBDA2) * TEM0);
  148.  
  149. 'MESS' ' ';
  150. 'MESS' '---- Calcul du champ de température au temps :'TEM1;
  151. 'MESS' ' ';
  152.  
  153. *****************************************************************
  154. * Gestion des variables externes *
  155. *****************************************************************
  156.  
  157. *--------------- Si convection on cherche TE --------------------
  158.  
  159. 'SI' ETAB.'CONVECTION';
  160. CH_TE = 'TIRE' (ETAB.'CHARGEMENT') 'TECO' TEMM;
  161. 'FINSI';
  162.  
  163. *--------------------- On cherche les flux -----------------------
  164.  
  165. 'SI' ('EXISTE' (ETAB.'CHARGEMENT') 'Q ');
  166. CH_FL = 'TIRE' (ETAB.'CHARGEMENT') 'Q ' TEMM;
  167. 'FINSI';
  168.  
  169. *------------- Calcul de la matrice de conductivité ----------------
  170.  
  171. MAT_COND = 'CONDU' ETAB.'MOD_THE' ETAB.'MAT_THE';
  172. 'SI' IKCONS ;
  173. MAT_COND = MAT_COND 'ET' ETAB.'CONDUCTIVITE_CONSTANTE' ;
  174. 'FINS' ;
  175.  
  176. *----------------- y-a-t-il des blocages ---------------------------
  177.  
  178. 'SI' INOBLOT ;
  179. MAT_BLOC = 'EXTR' MAT_COND 'RIGI' 'MULT';
  180. 'SINON';
  181. MAT_BLOC = ETAB.'BLOCAGES_THERMIQUES';
  182. 'FINSI';
  183. 'SI' ('NON' ('EXISTE' (ETAB.'CHARGEMENT') 'TIMP'));
  184. CH_TI = 'DEPI' MAT_BLOC 0.;
  185. 'SINON';
  186. CH_TI = 'TIRE' (ETAB.'CHARGEMENT') 'TIMP' TEM1;
  187. 'FINSI';
  188.  
  189. *----------------- Calcul de la matrice de capacite -----------------
  190.  
  191. 'SI' ICAPA ;
  192. MAT_CAPA = 'CAPACITE' ETAB.'MOD_THE' ETAB.'MAT_THE';
  193. ETAB.'CAPA_COURANTE' = MAT_CAPA ;
  194. 'FINSI' ;
  195. 'SI' ICPCONS ;
  196. MAT_CAPA = MAT_CAPA 'ET' ETAB.'CAPACITE_CONSTANTE' ;
  197. ETAB.'CAPA_COURANTE' = MAT_CAPA ;
  198. 'FINSI' ;
  199.  
  200. *---------------- Calcul de la matrice regularisee -----------------
  201.  
  202. MAT_RIGI = MAT_COND * LAMBDA1 ;
  203. B1 = MAT_COND * (LAMBDA1 - 1.) ;
  204. 'SI' ICAPA ;
  205. A1 = MAT_CAPA / T_PAS ;
  206. MAT_RIGI = MAT_RIGI 'ET' A1 ;
  207. B1 = B1 'ET' A1 ;
  208. 'FINSI' ;
  209. MAT_RIGI = MAT_RIGI 'ET' MAT_BLOC ;
  210. MAT_CHPO = B1 * U0 ;
  211. 'SI' ('EXISTE' (ETAB.'CHARGEMENT') 'Q ');
  212. MAT_CHPO = MAT_CHPO + CH_FL ;
  213. 'FINSI' ;
  214. MAT_CHPO = MAT_CHPO + CH_TI ;
  215.  
  216. *******************************************************************
  217. * On genere les termes de convection *
  218. *******************************************************************
  219.  
  220. 'SI' ETAB.'CONVECTION';
  221. * RIG_CON = 'COND' ETAB.'MOD_CON' ETAB.'MAT_CON' ;
  222. CHAL_TE = 'CONV' ETAB.'MOD_CON' ETAB.'MAT_CON' CH_TE ;
  223. * MAT_RIGI = MAT_RIGI 'ET' RIG_CON;
  224. MAT_CHPO = MAT_CHPO + CHAL_TE;
  225. 'FINSI';
  226.  
  227. *--------------------- Calcul d'un pas ----------------------------
  228.  
  229. U1 = 'RESOUDRE' MAT_RIGI MAT_CHPO ;
  230.  
  231. *---------------- Appel a une procedure utilisateur -----------------
  232.  
  233. ETAB.'THER_COURANT' = U1 ;
  234. 'SI' (ETAB.'PROCEDURE_PERSO2');
  235. ETAB.'TEMI' = U1 ;
  236. PERSO2 PRECED ;
  237. ETAB = 'ENLEVER' ETAB 'TEMI' ;
  238. 'SI' ('EXIS' PRECED 'ARRET') ;
  239. ETAB . 'ARRET' = PRECED . 'ARRET' ;
  240. 'FINS' ;
  241. 'FINSI';
  242.  
  243. *******************************************************************
  244. * Reinitialisation des variables en vue du pas suivant *
  245. *******************************************************************
  246.  
  247. 'SI' ((ITE3 + 1) '<EG' DCALC);
  248. TEM0 = TEM1;
  249. TEM1 = 'EXTR' TE_CALC (ITE3 + 1);
  250. T_PAS = TEM1 - TEM0;
  251. U0 = U1 ;
  252. 'SINON';
  253. 'QUITTER' BOUC_SO;
  254. 'FINSI';
  255.  
  256. *------------------------ On fait le menage -----------------------
  257.  
  258. 'MENAGE' ;
  259.  
  260. 'FIN' BOUC_SO ;
  261.  
  262. *---------- Initialisation de ETAB en vue d'une reprise ----------
  263.  
  264. STAB = 'TABLE' ;
  265. STAB.'ERREUR' = ERR_VAL ;
  266. STAB.'INITIAL(2)' = U1 ;
  267. STAB.'CLIT' = MAT_BLOC ;
  268. *
  269. ESTIM.'TEMPERATURES' = U1 ;
  270. ESTIM.'REACTIONS_THERMIQUES' = 'REAC' MAT_BLOC U1 ;
  271. *
  272. 'FINPROC' STAB ;
  273.  
  274.  
  275.  

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