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