Télécharger transit3.procedur

Retour à la liste

Numérotation des lignes :

  1. * TRANSIT3 PROCEDUR FANDEUR 14/10/10 21:15:27 8178
  2. * TRANSIT3 PROCEDUR JEANV 94/10/10 21:51:02 1285
  3. 'DEBPROC' TRANSIT3 ETAB*'TABLE ' ;
  4. *----------------------------------------------------------------------*
  5. * *
  6. * T R A N S I T 3 *
  7. * --------------- *
  8. * *
  9. * RESOLUTION D'UN PROBLEME DE THERMIQUE TRANSITOIRE *
  10. * METHODE A DEUX PAS DE TEMPS ( ALGORITHME DE DUPONT2 ) *
  11. * *
  12. * ETAB, TABLE CONTENANT EN ENTREE : *
  13. * *
  14. * INDICE 'SOUSTYPE' THERMIQUE *
  15. * INDICE 'INITIAL(0)' CHAMP DE TEMPERATURE INITIAL AU PAS 0 *
  16. * INDICE 'INITIAL(1)' CHAMP DE TEMPERATURE INITIAL AU PAS 1 *
  17. * ( LA DONNEE DE CE CHAMP EST FACULTATIVE ) *
  18. * INDICE 'COQUE' TYPE D'ELEMENT COQUE UTILISE *
  19. * INDICE 'EPAI ' EPAISSEUR DE LA COQUE *
  20. * INDICE 'PEAU' PEAU SUR LAQUELLE ECHANGE DE SURFACE *
  21. * S'EFFECTUE DANS LE CAS DES COQUE ('INFE' *
  22. * OU 'SUPE') *
  23. * INDICE 'CONDUCTIVITE' MATRICE DE CONDUCTIVITE *
  24. * OU INDICE 'TABCOND' TABLE DES OBJETS D'EVOLUTION K(T) INDICEE *
  25. * PAR LES OBJETS MMODELS DES SOUS-ZONES *
  26. * INDICE 'CAPACITE' MATRICE DE CAPACITE *
  27. * OU INDICE 'TABCAPA' TABLE DES OBJETS D'EVOLUTION CRHO(T) INDICEE
  28. * PAR LES OBJETS MMODELS DES SOUS-ZONES *
  29. * INDICE 'MODELE' OBJET MODELE DE L'ENSEMBLE *
  30. * INDICE 'IMPOSE' VALEURS IMPOSEES ( CHPOINT OU CHARGEMENT ) *
  31. * INDICE 'BLOCAGE' MATRICE DE BLOCAGE *
  32. * INDICE 'FLUX' CHARGEMENT DES FLUX EQUIVALENTS *
  33. * INDICE 'CONVECTION' TABLE DES TABLES POUR UNE CONDITION *
  34. * DE CONVECTION : *
  35. * 'TABCONV1' TABLE DES COEFFICIENTS D'ECHANGE OU TABLE *
  36. * DES EVOLUTIONS DU COEFFICIENT D'ECHANGE *
  37. * FONCTION DE LA TEMPERATURE H(T) INDICEE *
  38. * PAR LES OBJETS MMODELS CORRESPONDANT AUX *
  39. * DIFFERENTES SURFACES DE CONVECTION *
  40. * 'TABTE1' TABLE DES TEMPERATURES EXTERIEURES *
  41. * ( FLOTTANTS OU CHPOINTS ) OU TABLE DES *
  42. * EVOLUTIONS DE LA TEMPERATURE EXTERIEURE *
  43. * FONCTION DE LA TEMPERATURE DE LA SURFACE *
  44. * DE CONVECTION TE(T) INDICEE PAR LES OBJETS *
  45. * MMODELS CORRESPONDANT AUX DIFFERENTES *
  46. * SURFACES DE CONVECTION *
  47. * OU *
  48. * 'TABCONV2' TABLE DES COEFFICIENTS D'ECHANGE OU TABLE *
  49. * DES EVOLUTIONS DU COEFFICIENT D'ECHANGE *
  50. * FONCTION DU TEMPS H(TEMPS) INDICEE PAR *
  51. * LES OBJETS MMODELS CORRESPONDANT AUX *
  52. * DIFFERENTES SURFACES DE CONVECTION *
  53. * 'TABTE2' TABLE DES TEMPERATURES EXTERIEURES *
  54. * ( FLOTTANTS OU CHPOINTS ) OU TABLE DES *
  55. * DES EVOLUTIONS DE LA TEMPERATURE EXTERIEURE*
  56. * FONCTION DU TEMPS :TE(TEMPS) INDICEE PAR *
  57. * LES OBJETS MMODELS CORRESPONDANT AUX *
  58. * DIFFERENTES SURFACES DE CONVECTION *
  59. * INDICE 'PHASE' TABLE TAB1 POUR L'OPERATEUR CAPACITE *
  60. * INDICE 'TINI' TEMPS INITIAL ( TINI=0. PAR DEFAUT ) *
  61. * INDICE 'PAS' VALEUR DU PAS DE TEMPS *
  62. * INDICE 'NPAS' NOMBRE DE PAS DE CALCUL *
  63. * ( NPAS=1 PAR DEFAUT ) *
  64. * INDICE 'NSOR' ON VEUT UN RESULTAT TOUS LES NSOR PAS *
  65. * ( NSOR=1 PAR DEFAUT ) *
  66. * INDICE 'COEF' VALEUR DU COEFFICIENT DE RELAXATION *
  67. * (VALEUR PAR DEFAUT 0.25) *
  68. * INDICE 'REPRISE' 'OUI' POUR UNE REPRISE DE CALCUL *
  69. * *
  70. * ETAB CONTENANT EN SORTIE : *
  71. * *
  72. * INDICE NUMPAS NUMERO DU PAS DE SORTIE *
  73. * LA TABLE ( ETAB NUMPAS ) CONTENANT : *
  74. * INDICE 'TEMPERATURE' LE CHAMP DE TEMPERATURE *
  75. * INDICE 'INSTANT' L'INSTANT DE SORTIE *
  76. * *
  77. * D.R., LE 29 JUIN 1988. VERSION DU 18 JANVIER 1989. *
  78. * *
  79. *----------------------------------------------------------------------*
  80. 'REPETER' PROC 1 ;
  81. ***
  82. 'SAUTER' 1 'LIGNE' ;
  83. 'MESS' ' Calcul transitoire non linéaire méthode DupontII' ;
  84. ***
  85. *
  86. *--- RECUPERATION DE L'INFORMATION CONTENUE DANS "ETAB"
  87. *
  88. 'SI' ( 'NEG' ( ETAB.'SOUSTYPE' ) 'THERMIQUE' ) ;
  89. 'MESS' 'SOUS TYPAGE DE LA TABLE EN ENTREE INCORRECT|' ;
  90. 'QUITTER' PROC ;
  91. 'FINSI' ;
  92. 'SI' ( 'EXISTE' ETAB 'NIVEAU' ) ;
  93. NIV_MESS = 'ENTIER' ( ETAB.'NIVEAU' ) ;
  94. 'SINON' ;
  95. NIV_MESS = 0 ;
  96. 'FINSI' ;
  97. 'SI' ( NIV_MESS '>EG' 1 ) ;
  98. 'SAUTER' 1 'LIGNE' ;
  99. 'MESS' '*** DEBUT DE LA PROCEDURE "TRANSIT3" ***' ;
  100. 'FINSI' ;
  101. T_REP = 0 ;NREP = 0 ;IREP = 0 ;ITEM = 0 ;
  102. 'SI' ( 'EXISTE' ETAB 'REPRISE' ) ;
  103. 'REPETER' BOUC_REP ;
  104. IREP = IREP + 1 ;
  105. 'SI' ( 'NON' ( 'EXISTE' ETAB IREP ) ) ;
  106. 'QUITTER' BOUC_REP ;
  107. 'FINSI' ;
  108. 'FIN' BOUC_REP ;
  109. NREP = IREP - 1 ;
  110. U0_1 = ETAB . ( NREP - 1 ) . 'TEMPERATURE' ;
  111. U0_0 = ETAB.NREP.'TEMPERATURE' ;
  112. T_REP = ETAB.NREP.'INSTANT' ;
  113. T_INI = T_REP ;
  114. DTREP = T_REP - ETAB.(NREP - 1).'INSTANT';
  115. 'SI' ( ABS(DTREP - (ETAB.'PAS')) >EG 1.e-6 ) ;
  116. 'ERREUR' 'Conditions de reprise impossibles' ;
  117. 'QUITTER' PROC ;
  118. 'FINSI' ;
  119. 'SINON' ;
  120. U0_1 = 'COPIER' ( ETAB.'INITIAL(0)' ) 'GEOM' ;
  121. 'SI' ( 'EXISTE' ETAB 'INITIAL(1)' ) ;
  122. U0_0 = 'COPIER' ( ETAB.'INITIAL(1)' ) 'GEOM' ;
  123. 'SINON' ;
  124. U0_0 = U0_1 ;
  125. 'FINSI' ;
  126. 'SI' ( 'EXISTE' ETAB 'TINI' ) ;
  127. T_INI = ETAB.'TINI' ;
  128. 'SINON' ;
  129. T_INI = 0. ;
  130. 'FINSI' ;
  131. 'FINSI' ;
  132. 'SI' ( 'EXISTE' ETAB 'FLUX' ) ;
  133. TC_TPS = ETAB.'FLUX' ;
  134. 'FINSI' ;
  135. 'SI' ( 'EXISTE' ETAB 'CONDUCTIVITE' ) ;
  136. MAT_COND = ETAB.'CONDUCTIVITE' ;
  137. 'SINON' ;
  138. 'SI' ( 'EXISTE' ETAB 'TABCOND' ) ;
  139. TAB_COND = ETAB.'TABCOND' ;
  140. 'SINON' ;
  141. 'SAUTER' 1 'LIGNE' ;
  142. 'MESS' '*** LA DONNEE DE LA CONDUCTIVITE EST INCORRECTE | ***' ;
  143. 'QUITTER' PROC ;
  144. 'FINSI' ;
  145. 'FINSI' ;
  146. *
  147. 'SI' ( 'EXISTE' ETAB 'PHASE' ) ;
  148. TABP2 = ETAB.'PHASE' ;
  149. 'MESS' ' avec changement de phase' ;
  150. 'FINSI' ;
  151. 'SI' ( 'EXISTE' ETAB 'BLOCAGE' ) ;
  152. MAT_BLOC = ETAB.'BLOCAGE' ;
  153. 'FINSI' ;
  154. 'SI' ( 'EXISTE' ETAB 'IMPOSE' ) ;
  155. VAL_IMP = ETAB.'IMPOSE' ;
  156. 'FINSI' ;
  157. TYP_IMP = 'TYPE' VAL_IMP ;
  158. 'SI' ( 'NEG' TYP_IMP 'CHARGEME' ) ;
  159. VAL_IMPO = VAL_IMP ;
  160. 'FINSI' ;
  161. 'SI' ( 'EXISTE' ETAB 'COEF' ) ;
  162. LAMBDA = ETAB.'COEF' ;
  163. 'SINON' ;
  164. LAMBDA = 0.25 ;
  165. 'FINSI' ;
  166. 'SI' ( 'EXISTE' ETAB 'MODELE' ) ;
  167. OBJ_MOD = ETAB.'MODELE' ;
  168. MOD_CAPA=OBJ_MOD;
  169. 'FINSI' ;
  170. 'SI' ('EXISTE' ETAB 'COQUE') ;
  171. TYP_COQ = ETAB.'COQUE' ;
  172. 'SI' ( 'EXISTE' ETAB 'EPAI' ) ;
  173. EP = ETAB.'EPAI' ;
  174. 'SINON' ;
  175. 'SAUTER' 1 'LIGNE' ;
  176. 'MESS' '*** IL MANQUE L EPAISSEUR DE LA COQUE | *** ';
  177. 'QUITTER' PROC ;
  178. 'FINSI';
  179. 'FINSI' ;
  180. 'SI' ( 'EXISTE' ETAB 'CAPACITE' ) ;
  181. MAT_CAPA = ETAB.'CAPACITE' ;
  182. 'SINON' ;
  183. 'SI' ( 'EXISTE' ETAB 'TABCAPA' ) ;
  184. TAB_CAPA = ETAB.'TABCAPA' ;
  185. 'SINON' ;
  186. 'SAUTER' 1 'LIGNE' ;
  187. 'MESS' '*** LA DONNEE DE LA CAPACITE EST INCORRECTE | ***' ;
  188. 'QUITTER' PROC ;
  189. 'FINSI' ;
  190. 'FINSI' ;
  191. *
  192. *--- GESTION DE LA CONDITION DE CONVECTION FORCEE
  193. *+*
  194. 'SI' ( 'EXISTE' ETAB 'CONVECTION' ) ;
  195. 'SI' ( 'EXISTE' ETAB 'COQUE' ) ;
  196. 'SI' ( 'EXISTE' ETAB 'PEAU' ) ;
  197. PE = ETAB.'PEAU' ;
  198. 'SINON' ;
  199. 'MESS' '*** PRECISER LA PEAU | ***' ;
  200. 'QUITTER' PROC ;
  201. 'FINSI' ;
  202. 'FINSI' ;
  203. CTAB = ETAB.'CONVECTION' ;
  204. 'SI' ('EXISTE' CTAB 'TABCONV1') ;
  205. IT=1 ;
  206. TAB_CON1=CTAB.'TABCONV1' ;
  207. 'SI' ('EXISTE' CTAB 'TABTE1') ;TAB_TE1 = CTAB.'TABTE1' ;
  208. 'SINON' ;TAB_TE1 = TABLE ;FINSI ;
  209. 'SINON' ;
  210. IT=2 ;
  211. 'SI' ('EXISTE' CTAB 'TABTE2') ;TAB_TE2 = CTAB.'TABTE2' ;
  212. 'SINON' ;TAB_TE2 = TABLE ;'FINSI' ;
  213. TAB_CON2 = CTAB.'TABCONV2' ;
  214. 'FINSI' ;
  215. 'FINSI' ;
  216. 'SI' ( 'EXISTE' ETAB 'NPAS' ) ;
  217. NBRE_PAS = 'ENTIER' ( ETAB.'NPAS' ) ;
  218. 'SINON' ;
  219. NBRE_PAS = 1 ;
  220. 'FINSI' ;
  221. 'SI' ( 'EXISTE' ETAB 'NSOR' ) ;
  222. N_SOR = 'ENTIER' ( ETAB.'NSOR' ) ;
  223. 'SINON' ;
  224. N_SOR = 1 ;
  225. 'FINSI' ;
  226. 'SI' ( 'EXISTE' ETAB 'PAS' ) ;
  227. T_PAS = ETAB.'PAS' ;
  228. 'SINON' ;
  229. 'SAUTER' 1 'LIGNE' ;
  230. 'MESS' 'IL MANQUE LE PAS DE TEMPS |' ;
  231. 'OBTENIR' T_PAS*'FLOTTANT' ;
  232. 'FINSI' ;
  233. T0_0 = T_INI ;
  234. 'SI' ( 'EXISTE' ETAB 'FLUX' ) ;
  235. QTPS_0 = 'TIRER' TC_TPS T0_0 ;
  236. 'FINSI' ;
  237. T0_1 = T_INI + T_PAS ;
  238. 'SI' ( 'EXISTE' ETAB 'FLUX' ) ;
  239. QTPS_1 = 'TIRER' TC_TPS T0_1 ;
  240. 'FINSI' ;
  241. *
  242. *--- "ETAB" EST UNE TABLE DE TABLES, INDICEE PAR LE NUMERO DU PAS
  243. *
  244. NUM_PAS = NREP ;
  245. 'SI' ( 'NON' ( 'EXISTE' ETAB REPRISE ) ) ;
  246. STN = 'TABLE' ;
  247. ETAB.NUM_PAS = 'TABLE' STN ;
  248. STN.'INSTANT' = T0_0 ;
  249. STN.'TEMPERATURE' = U0_0 ;
  250. 'SI' ( NIV_MESS '>EG' 1 ) ;
  251. 'SAUTER' 1 'LIGNE' ;
  252. 'MESS' 'Sortie du resultat pour le temps :' T0_0 ;
  253. 'MESS' 'Numéro du pas de sortie :' NUM_PAS ;
  254. 'SI' ( NIV_MESS '>EG' 2 ) ;
  255. 'SAUTER' 1 'LIGNE' ;
  256. 'MESS' 'CHAMP DE TEMPERATURE AU TEMPS :' T0_0 ;
  257. 'LISTE' U0_0 ;
  258. 'FINSI' ;
  259. 'FINSI' ;
  260. NUM_PAS = 1 ;
  261. STN = 'TABLE' ;
  262. ETAB.NUM_PAS = 'TABLE' STN ;
  263. STN.'INSTANT' = T0_1 ;
  264. STN.'TEMPERATURE' = U0_1 ;
  265. 'SI' ( NIV_MESS '>EG' 1 ) ;
  266. 'SAUTER' 1 'LIGNE' ;
  267. 'MESS' 'Sortie du resultat pour le temps :' T0_1 ;
  268. 'MESS' 'Numéro du pas de sortie :' NUM_PAS ;
  269. 'SI' ( NIV_MESS '>EG' 2 ) ;
  270. 'SAUTER' 1 'LIGNE' ;
  271. 'MESS' 'CHAMP DE TEMPERATURE AU TEMPS :' T0_1 ;
  272. 'LISTE' U0_1 ;
  273. 'FINSI' ;
  274. 'FINSI' ;
  275. ITEM = 1 ;
  276. 'FINSI' ;
  277. IPAS = 0 ;
  278. *
  279. *--- BOUCLE SUR LES PAS DE TEMPS
  280. *
  281. 'REPETER' BOUC_SOR ;
  282. *
  283. 'SAUTER' 1 'LIGNE' ;
  284. 'MESS' 'Numéro du pas :' NUM_PAS ;
  285. *
  286. ITEM = ITEM + 1 ;
  287. IPAS = IPAS + 1 ;
  288. 'SI' ('EXISTE' ETAB 'COQUE' ) ;
  289. U0_T = 'ENLEVE' U0_1 'LX' ;
  290. 'SINON' ;
  291. U0_T = 'EXCO' 'T' U0_1 'NOID' 'T' ;
  292. 'FINSI' ;
  293. *
  294. *--- TEST SI FIN DE BOUCLE
  295. *
  296. 'SI' ( ITEM '>' NBRE_PAS ) ;
  297. 'QUITTER' BOUC_SOR ;
  298. 'FINSI' ;
  299. T1 = T_INI + ( T_PAS * ITEM ) ;
  300. 'SI' ( 'EXISTE' ETAB 'FLUX' ) ;
  301. FLUX_TPS = 'COLI' QTPS_0 0.5 QTPS_1 0.5 ;
  302. 'FINSI' ;
  303. 'SI' ( 'EGA' TYP_IMP 'CHARGEME' ) ;
  304. VAL_IMPO = 'TIRER' VAL_IMP T1 ;
  305. 'FINSI' ;
  306. 'SI' ( 'EXISTE' ETAB 'TABCOND' ) ;
  307. *
  308. *--- CALCUL DE LA MATRICE DE CONDUCTIVITE
  309. *
  310. U1_CALC = 'COLI' U0_0 1.5 U0_1 -0.5 ;
  311. 'SI' ('EXISTE' ETAB 'COQUE' ) ;
  312. UC1_TI = 'EXCO' 'TINF' U1_CALC 'NOID' 'T' ;
  313. UC1_TS = 'EXCO' 'TSUP' U1_CALC 'NOID' 'T' ;
  314. UC1_TM = 'EXCO' 'T ' U1_CALC 'NOID' 'T' ;
  315. UC1_T = (UC1_TI + UC1_TS +UC1_TM )/3.0 ;
  316. 'SINON';
  317. UC1_T = 'EXCO' 'T' U1_CALC 'NOID' 'T' ;
  318. 'FINSI';
  319. IDCOND = 'INDE' TAB_COND ;
  320. ICOND=0 ;
  321. 'REPE' BOUCOND ('DIME' TAB_COND) ;
  322. ICOND = ICOND + 1 ;
  323. MOD1 = IDCOND.ICOND ;
  324. VCOND = TAB_COND.MOD1 ;
  325. TYPC = 'TYPE' VCOND ;
  326. 'SI' ('EGA' TYPC 'EVOLUTIO' ) ;
  327. CC = 'VARI' MOD1 VCOND UC1_T 'NOEUD' ;
  328. CCC = 'EXCO' CC 'SCAL' 'NOID' 'K' ;
  329. 'SINON' ;
  330. CCC = VCOND ;
  331. 'FINSI' ;
  332. 'SI' ('EXISTE' ETAB 'COQUE' ) ;
  333. MMM = 'MATE' MOD1 'K' CCC 'EPAI' EP ;
  334. 'SINON' ;
  335. MMM = 'MATE' MOD1 'K' CCC ;
  336. 'FINSI' ;
  337. MI= 'CONDUCTION' MOD1 MMM;
  338. 'SI' (ICOND 'EGA' 1) ;
  339. MAT_COND = MI;
  340. 'SINON' ;
  341. MAT_COND =MAT_COND ET MI ;
  342. 'FINSI' ;
  343. 'FIN' BOUCOND ;
  344. 'FINSI' ;
  345. 'SI' ( 'EXISTE' ETAB 'TABCAPA' ) ;
  346. *
  347. *--- CALCUL DE LA MATRICE DE CAPACITE
  348. *
  349. U2_CALC = 'COLI' U0_0 1.5 U0_1 -0.5 ;
  350. 'SI' ( 'EXISTE' ETAB 'PHASE' ) ;
  351. * initialisation de la table pour le changement de phase
  352. TABP2.'CHAMP THERMIQUE 1' = 'ENLEVER' U0_0 'LX' ;
  353. TABP2.'CHAMP THERMIQUE 2' = 'ENLEVER'
  354. ( COLI 2. U0_0 -1. U0_1)'LX' ;
  355. 'FINSI' ;
  356. 'SI' ('EXISTE' ETAB 'COQUE' ) ;
  357. UC2_TI = 'EXCO' 'TINF' U2_CALC 'NOID' 'T' ;
  358. UC2_TS = 'EXCO' 'TSUP' U2_CALC 'NOID' 'T' ;
  359. UC2_TM = 'EXCO' 'T ' U2_CALC 'NOID' 'T' ;
  360. UC2_T = (UC2_TI + UC2_TS + UC2_TM)/0.3 ;
  361. 'SINON';
  362. UC2_T = 'EXCO' 'T' U2_CALC 'NOID' 'T' ;
  363. 'FINSI';
  364. IDCAPA = 'INDE' TAB_CAPA ;
  365. ICAPA=0 ;
  366. 'REPE' BOUCAPA ('DIME' TAB_CAPA) ;
  367. ICAPA = ICAPA + 1 ;
  368. MOD1 = IDCAPA.ICAPA ;
  369. VCAPA = TAB_CAPA.MOD1 ;
  370. TYPC = 'TYPE' VCAPA ;
  371. 'SI' ('EGA' TYPC 'EVOLUTIO' ) ;
  372. CC = 'VARI' MOD1 VCAPA UC2_T 'NOEUD' ;
  373. CCC = 'EXCO' CC 'SCAL' 'NOID' 'C' ;
  374. 'SINON' ;
  375. CCC = VCAPA ;
  376. 'FINSI' ;
  377. 'SI' ('EXISTE' ETAB 'COQUE' ) ;
  378. MMM = 'MATE' MOD1 'C' CCC 'RHO' 1. 'EPAI' EP ;
  379. 'SINON' ;
  380. MMM = 'MATE' MOD1 'C' CCC 'RHO' 1.;
  381. 'FINSI' ;
  382. 'SI' ( 'EXISTE' ETAB 'PHASE' ) ;
  383. MI = 'CAPACITE' MOD1 MMM TABP2 ;
  384. 'SINON' ;
  385. MI = 'CAPACITE' MOD1 MMM ;
  386. 'FINSI' ;
  387. 'SI' (ICAPA 'EGA' 1) ;
  388. MAT_CAPA = MI ;
  389. MOD_CAPA=MOD1;
  390. 'SINON' ;
  391. MAT_CAPA = MAT_CAPA ET MI ;
  392. MOD_CAPA=MOD_CAPA ET MOD1;
  393. 'FINSI' ;
  394. 'FIN' BOUCAPA ;
  395. 'FINSI' ;
  396. *
  397. SCA1 = 0.5 + LAMBDA ;
  398. SCA2 = 1. / T_PAS ;
  399. SCA3 = 0.5 - ( 2. * LAMBDA ) ;
  400. SCA4 = ( 2. * LAMBDA ) - 0.5 ;
  401. A2 = MAT_COND * SCA1 ;
  402. A1 = MAT_CAPA * SCA2 ;
  403. MAT_RIGI = A1 'ET' A2 ;
  404. 'SI' ( 'EXISTE' ETAB 'BLOCAGE' ) ;
  405. MAT_RIGI = MAT_RIGI 'ET' MAT_BLOC ;
  406. 'FINSI' ;
  407. B3 = MAT_COND * SCA4 ;
  408. B1 = A1 'ET' B3 ;
  409. B2 = MAT_COND * ( -1 * LAMBDA ) ;
  410. C1 = B1 * U0_0 ;
  411. * Correction DR 1/9/92 U0_0 -> U0_1
  412. C2 = B2 * U0_1 ;
  413. MAT_CHPO = C1 + C2 ;
  414. 'SI' ( 'EXISTE' ETAB 'FLUX' ) ;
  415. MAT_CHPO = MAT_CHPO + FLUX_TPS ;
  416. 'FINSI' ;
  417. 'SI' ( 'EXISTE' ETAB 'IMPOSE' ) ;
  418. MAT_CHPO = MAT_CHPO + VAL_IMPO ;
  419. 'FINSI' ;
  420. 'SI' ( 'EXISTE' ETAB 'CONVECTION' ) ;
  421. *
  422. *--- ON GENERE LES TERMES DE CONVECTION
  423. *
  424. 'SI' ('EGA' IT 1 ) ;
  425. * CORRECTION AM 4/8/92 PERMUTATION U0_0 ET U0_1
  426. CHT_CNV = 'COLI' U0_0 1.5 U0_1 -0.5 ;
  427. 'SI' ('EXISTE' ETAB 'COQUE' ) ;
  428. PE =ETAB.'PEAU';
  429. 'SI' ('EGA' PE 'TINF') ;
  430. CHT_CNV = 'EXCO' 'TINF' CHT_CNV 'NOID' 'T' ;
  431. 'FINSI' ;
  432. 'SI' ('EGA' PE 'TSUP') ;
  433. CHT_CNV = 'EXCO' 'TSUP' CHT_CNV 'NOID' 'T' ;
  434. 'FINSI' ;
  435. 'FINSI' ;
  436. IDCONV = 'INDE' TAB_CON1 ;
  437. NCONV = 'DIME' IDCONV ;
  438. NTE = 'DIME' TAB_TE1 ;
  439. 'SI' (NTE 'NEG' 0 ) ;IDTE = 'INDE' TAB_TE1 ;'FINSI' ;
  440. * 'SI' ('NEG' NCONV NTE ) ;
  441. * 'SAUTER' 1 'LIGNE' ;
  442. * 'MESS' '*** LA DONNEE DE LA CONVECTION EST INCORRECTE *** ' ;
  443. * 'QUITTER' PROC ;
  444. * 'FINSI' ;
  445. ICONV = 0 ;
  446. 'REPETE' BOUCONV NCONV ;
  447. ICONV = ICONV + 1 ;
  448. MOD1 = IDCONV.ICONV ;
  449. VCONV = TAB_CON1.MOD1 ;
  450. TYPC = 'TYPE' VCONV ;
  451. 'SI' ('EGA' TYPC 'EVOLUTIO' ) ;
  452. CC = 'VARI' MOD1 VCONV CHT_CNV 'NOEUD' ;
  453. CCC = 'EXCO' CC 'SCAL' 'NOID' 'H' ;
  454. MAT_CONV = 'MATE' MOD1 'H' CCC ;
  455. 'SINON' ;
  456. MAT_CONV = 'MATE' MOD1 'H' VCONV ;
  457. 'FINSI' ;
  458. MOD_CONV = MOD1 ;
  459. 'SI' ('EXISTE' ETAB 'COQUE' ) ;
  460. RIG_CONV = 'CONDUCTIVITE' MOD_CONV MAT_CONV PE ;
  461. 'SINON' ;
  462. RIG_CONV = 'CONDUCTIVITE' MOD_CONV MAT_CONV ;
  463. 'FINSI' ;
  464. 'SI' ('EGA' ICONV 1 ) ;
  465. RIG_CON1 = RIG_CONV ;
  466. 'SINON' ;
  467. RIG_CON1 = RIG_CONV ET RIG_CON1 ;
  468. 'FINSI' ;
  469. 'FIN' BOUCONV ;
  470. 'SI' (NTE 'NEG' 0 ) ;
  471. ICONV = 0 ;
  472. 'REPETE' BOUCTE NTE ;
  473. ICONV = ICONV + 1 ;
  474. MOD1 = IDTE.ICONV ;
  475. VCONV = TAB_CON1.MOD1 ;
  476. TYPC = 'TYPE' VCONV ;
  477. 'SI' ('EGA' TYPC 'EVOLUTIO' ) ;
  478. CC = 'VARI' MOD1 VCONV CHT_CNV 'NOEUD' ;
  479. CCC = 'EXCO' CC 'SCAL' 'NOID' 'H' ;
  480. MAT_CONV = 'MATE' MOD1 'H' CCC ;
  481. 'SINON' ;
  482. MAT_CONV = 'MATE' MOD1 'H' VCONV ;
  483. 'FINSI' ;
  484. VTE = TAB_TE1.MOD1 ;
  485. TYPC = 'TYPE' VTE ;
  486. 'SI' ('EGA' TYPC 'EVOLUTIO' ) ;
  487. EE = 'VARI' MOD1 VTE CHT_CNV 'NOEUD' ;
  488. VAL_TE = 'CHAN' 'CHPO' MOD1 EE ;
  489. 'SINON' ;
  490. VAL_TE = VTE ;
  491. 'FINSI' ;
  492. MOD_CONV = MOD1 ;
  493. TYP_TE = 'TYPE' VAL_TE ;
  494. 'SI' ( 'NEG' TYP_TE 'CHPOINT ' ) ;
  495. 'SI' ('EXISTE' ETAB 'COQUE' ) ;
  496. PE =ETAB.'PEAU';
  497. CHAL_TEM = 'CONVECTION' MOD_CONV MAT_CONV 'T' VAL_TE PE ;
  498. 'SINON' ;
  499. CHAL_TEM = 'CONVECTION' MOD_CONV MAT_CONV 'T' VAL_TE ;
  500. 'FINSI';
  501. 'SINON' ;
  502. 'SI' ('EXISTE' ETAB 'COQUE' ) ;
  503. CHAL_TEM = 'CONVECTION' MOD_CONV MAT_CONV VAL_TE PE ;
  504. 'SINON' ;
  505. CHAL_TEM = 'CONVECTION' MOD_CONV MAT_CONV VAL_TE ;
  506. 'FINSI';
  507. 'FINSI' ;
  508. 'SI' ('EGA' ICONV 1 ) ;
  509. CHAL_TE1 = CHAL_TEM ;
  510. 'SINON' ;
  511. CHAL_TE1 = CHAL_TEM ET CHAL_TE1 ;
  512. 'FINSI' ;
  513. 'FIN' BOUCTE ;
  514. 'FINSI' ;
  515. 'SINON' ;
  516. IDCONV = 'INDE' TAB_CON2 ;
  517. NCONV = 'DIME' IDCONV ;
  518. NTE = 'DIME' TAB_TE2 ;
  519. 'SI' (NTE 'NEG' 0) ;IDTE = 'INDE' TAB_TE2 ;'FINSI';
  520. * 'SI' ('NEG' NCONV NTE ) ;
  521. * 'SAUTER' 1 'LIGNE' ;
  522. * 'MESS' '*** LA DONNEE DE LA CONVECTION EST INCORRECTE *** ' ;
  523. * 'QUITTER' PROC ;
  524. * 'FINSI' ;
  525. ICONV = 0 ;
  526. 'REPETE' BOUCONV1 NCONV ;
  527. ICONV = ICONV + 1 ;
  528. MOD1 = IDCONV.ICONV ;
  529. VCONV = TAB_CON2.MOD1 ;
  530. TYPC = 'TYPE' VCONV ;
  531. 'SI' ('EGA' TYPC 'EVOLUTIO' ) ;
  532. LIS_TEM = 'EXTR' VCONV 'TEMPS' ;
  533. LIS_H = 'EXTR' VCONV 'H' ;
  534. CC = 'IPOL' T1 LIS_TEM LIS_H ;
  535. MAT_CONV = 'MATE' MOD1 'H' CC ;
  536. 'SINON' ;
  537. MAT_CONV = 'MATE' MOD1 'H' VCONV ;
  538. 'FINSI' ;
  539. MOD_CONV = MOD1 ;
  540. 'SI' ('EXISTE' ETAB 'COQUE' ) ;
  541. RIG_CONV = 'CONDUCTIVITE' MOD_CONV MAT_CONV PE ;
  542. 'SINON' ;
  543. RIG_CONV = 'CONDUCTIVITE' MOD_CONV MAT_CONV ;
  544. 'FINSI' ;
  545. 'SI' ('EGA' ICONV 1 ) ;
  546. RIG_CON1 = RIG_CONV ;
  547. 'SINON' ;
  548. RIG_CON1 = RIG_CONV ET RIG_CON1 ;
  549. 'FINSI' ;
  550. 'FIN' BOUCONV1 ;
  551. 'SI' (NTE 'NEG' 0 ) ;
  552. ICONV = 0 ;
  553. 'REPETE' BOUCTE1 NTE ;
  554. ICONV = ICONV + 1 ;
  555. MOD1 = IDTE.ICONV ;
  556. VCONV = TAB_CON2.MOD1 ;
  557. TYPC = 'TYPE' VCONV ;
  558. 'SI' ('EGA' TYPC 'EVOLUTIO' ) ;
  559. LIS_TEM = 'EXTR' VCONV 'TEMPS' ;
  560. LIS_H = 'EXTR' VCONV 'H' ;
  561. CC = 'IPOL' T1 LIS_TEM LIS_H ;
  562. MAT_CONV = 'MATE' MOD1 'H' CC ;
  563. 'SINON' ;
  564. MAT_CONV = 'MATE' MOD1 'H' VCONV ;
  565. 'FINSI' ;
  566. VTE = TAB_TE2.MOD1 ;
  567. TYPC = 'TYPE' VTE ;
  568. 'SI' ('EGA' TYPC 'EVOLUTIO' ) ;
  569. LIS_TEM = 'EXTR' VTE 'TEMPS' ;
  570. LIS_TE = 'EXTR' VTE 'TE' ;
  571. VAL_TE = 'IPOL' T1 LIS_TEM LIS_TE ;
  572. 'SINON' ;
  573. VAL_TE = VTE ;
  574. 'FINSI' ;
  575. MOD_CONV = MOD1 ;
  576. TYP_TE = 'TYPE' VAL_TE ;
  577. 'SI' ( 'NEG' TYP_TE 'CHPOINT ' ) ;
  578. 'SI' ('EXISTE' ETAB 'COQUE' ) ;
  579. PE =ETAB.'PEAU';
  580. CHAL_TEM = 'CONVECTION' MOD_CONV MAT_CONV 'T' VAL_TE PE ;
  581. 'SINON' ;
  582. CHAL_TEM = 'CONVECTION' MOD_CONV MAT_CONV 'T' VAL_TE ;
  583. 'FINSI';
  584. 'SINON' ;
  585. 'SI' ('EXISTE' ETAB 'COQUE' ) ;
  586. CHAL_TEM = 'CONVECTION' MOD_CONV MAT_CONV VAL_TE PE ;
  587. 'SINON' ;
  588. CHAL_TEM = 'CONVECTION' MOD_CONV MAT_CONV VAL_TE ;
  589. 'FINSI';
  590. 'FINSI' ;
  591. 'SI' ('EGA' ICONV 1 ) ;
  592. CHAL_TE1 = CHAL_TEM ;
  593. 'SINON' ;
  594. CHAL_TE1 = CHAL_TEM ET CHAL_TE1 ;
  595. 'FINSI' ;
  596. 'FIN' BOUCTE1 ;
  597. 'FINSI' ;
  598. 'FINSI' ;
  599. MAT_RIGI = MAT_RIGI 'ET' RIG_CON1 ;
  600. 'SI' (NTE 'NEG' 0 ) ;MAT_CHPO = MAT_CHPO + CHAL_TE1 ;'FINSI';
  601. 'FINSI' ;
  602. *
  603. *--- CALCUL D'UN PAS
  604. *
  605. U1 = 'RESOUDRE' MAT_RIGI MAT_CHPO ;
  606. U1_LX = 'EXCO' 'LX' U1 'NOID' 'LX' ;
  607. U1_AUX = U1 - U1_LX ;
  608. 'SI' ('EXISTE' ETAB 'COQUE' ) ;
  609. U1_T = 'ENLEVE' U1 'LX' ;
  610. 'SINON';
  611. U1_T = 'EXCO' 'T' U1 'NOID' 'T' ;
  612. 'FINSI';
  613. *
  614. *
  615. *--- ARCHIVAGE DES RESULTATS DANS "ETAB"
  616. *
  617. 'SI' ( IPAS 'EGA' N_SOR ) ;
  618. NUM_PAS = NUM_PAS + 1 ;
  619. STN = 'TABLE' ;
  620. ETAB.NUM_PAS = 'TABLE' STN ;
  621. STN.'INSTANT' = T1 ;
  622. STN.'TEMPERATURE' = U1_T ;
  623. IPAS = 0 ;
  624. 'SI' ( NIV_MESS '>EG' 0 ) ;
  625. 'MESS' 'Fin du calcul du temps :' T1 ;
  626. 'SI' ( NIV_MESS '>EG' 2 ) ;
  627. 'SAUTER' 1 'LIGNE' ;
  628. 'MESS' 'CHAMP DE TEMPERATURE AU TEMPS :' T1 ;
  629. 'LISTE' U1_T ;
  630. 'FINSI' ;
  631. 'FINSI' ;
  632. 'FINSI' ;
  633. T0_0 = T1 ;
  634. U0_1 = U0_0 ;
  635. U0_0 = U1_AUX ;
  636. 'SI' ( 'EXISTE' ETAB 'FLUX' ) ;
  637. QTPS_1 = QTPS_0 ;
  638. QTPS_0 = 'TIRER' TC_TPS T0_0 ;
  639. 'FINSI' ;
  640. 'FIN' BOUC_SOR ;
  641. *
  642. *--- ON FAIT LE MENAGE...
  643. *
  644. *'MENAGE' ;
  645. 'SI' ( NIV_MESS '>EG' 1 ) ;
  646. 'SAUTER' 1 'LIGNE' ;
  647. 'MESS' '*** Fin de la procedure "TRANSIT3" ***' ;
  648. 'FINSI' ;
  649. 'FIN' PROC ;
  650. 'FINPROC' ETAB ;
  651.  
  652.  

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