Télécharger translin.procedur

Retour à la liste

Numérotation des lignes :

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

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