* EXECRXT PROCEDUR FD144363 24/04/03 21:15:05 11890 * * E/ nbit : Nombre de pas de temps * E/S rxt : Interface avec l'utilisateur * 'MESS' ' ' ; 'MESS' WWW ; 'MESS' WWW ; * * Détection 2D/3D 'SI' ('EGA' idim 2) ; DIM3D = FAUX ; 'SINO' ; 'SI' ('EGA' idim 3) ; DIM3D = VRAI ; 'SINO' ; 'FINS' ; 'FINS' ; * * Gestion des indices de rxt * * listentr = table dont les indices sont ceux autorisés dans rxt * (est complété durant le décodage par les indices optionnels lus) * listand = liste des options surchargées par l'utilisateur * (correspond aux valeurs par défaut modifiées par l'utilisateur) * *FD Ne sert à rien ? TPAROIS non pris en compte ? * listchp = liste des indices pouvant contenir un CHPO (FLOTTANT sinon) *FD listentr . 'VERSION' = '' ; listentr . 'vtf' = '' ; listentr . 'TF0' = '' ; listentr . 'PT0' = '' ; * Relatif à la thermiqe des parois listentr . 'THERMP' = '' ; listentr . 'PAROIS' = '' ; listentr . 'THERCO' = '' ; listentr . 'vtp' = '' ; listentr . 'ROCP' = '' ; listentr . 'LAMBDA' = '' ; listentr . 'Tp0' = '' ; listentr . 'ECHAN' = '' ; listentr . 'ECHEXT' = '' ; listentr . 'parext' = '' ; listentr . 'HEXT' = '' ; listentr . 'TPEXT' = '' ; listentr . 'TIMP' = '' ; listentr . 'ECHANP' = '' ; * Relatif aux E/S fluide listentr . 'XFIMP' = '' ; listentr . 'Sorties' = '' ; listentr . 'Breches' = '' ; listentr . 'axe' = '' ; listentr . 'pi' = '' ; * Table utilisée pour la définition de recombineurs listentr . 'RECOMB' = '' ; * Table de travail ajoutées par la procédure listentr . 'REINIT' = '' ; listentr . 'TIC' = '' ; listentr . 'GEO' = '' ; listentr . 'TBT' = '' ; * Paramètres numériques / algorithmes listentr . 'DISCR' = '' ; listentr . 'KPRE' = '' ; listentr . 'MAXELPRE' = '' ; listentr . 'STAB' = '' ; listentr . 'ALGO' = '' ; * Paramètres de fonctionnement listentr . 'CATHARE2' = '' ; listentr . 'DT0' = '' ; listentr . 'PERSO' = '' ; listentr . 'TABPERSO' = '' ; listentr . 'GRAPH' = '' ; listentr . 'RENU' = '' ; listentr . 'TYPINV' = '' ; listentr . 'IMPR' = '' ; listentr . 'FRPREC' = '' ; listentr . 'PPDT' = '' ; listentr . 'RESIDU' = '' ; listentr . 'NTIT' = '' ; listentr . 'TCPT' = '' ; listentr . 'TKPR' = '' ; listentr . 'TRESOU' = '' ; listentr . 'IMPARA' = '' ; listentr . 'TRTF' = '' ; listentr . 'TRrvap' = '' ; listentr . 'TRrhe' = '' ; listentr . 'TRrh2' = '' ; listentr . 'TRro2' = '' ; listentr . 'TRrn2' = '' ; listentr . 'TRrco2' = '' ; listentr . 'TRrair' = '' ; listentr . 'TRrco' = '' ; * Constituant (air par défaut ) vapeur et incondensables listentr . 'LOI-ETAT' = '' ; listentr . 'VAPEUR' = '' ; listentr . 'YBRO' = '' ; listentr . 'V1alfa' = '' ; listentr . 'TAUXcm' = '' ; listentr . 'HE' = '' ; listentr . 'H2' = '' ; listentr . 'O2' = '' ; listentr . 'N2' = '' ; listentr . 'CO' = '' ; listentr . 'CO2' = '' ; listentr . 'AIR' = '' ; * Modèles de turbulence listentr . 'MODTURB' = '' ; listentr . 'FPAROI' = '' ; * Modèle de condensation en masse listentr.'MODCOND' = '' ; * * On (re)crée les tables si l'utilisateur le demande où si elles * n'existent pas (premier passage) -> TPREPA=VRAI vertytab rxt 'REINIT' 'LOGIQUE' ; REINIT = rxt . 'REINIT' ; 'SINO' ; 'FINS' ; vertytab rxt 'TBT' 'TABLE ' ; vertytab rxt 'GEO' 'TABLE ' ; TPREPA = FAUX ; TBT = rxt . 'TBT' ; GEO = rxt . 'GEO' ; 'SINO' ; TPREPA = VRAI ; TBT = 'TABLE' ; GEO = 'TABLE' ; rxt . 'GEO' = GEO ; 'FINS' ; * * epsi = tolérance pour les maillages (ELIM) 'FINS' ; * * ndl = nbre de temps connus * Tps = dernier temps connu (début du pas de temps) vertytab rxt 'TIC' 'TABLE ' ; tic = rxt . 'TIC' ; 'SINO' ; tic = 'TABLE' 'INCO' ; rxt . 'TIC' = tic ; 'FINS' ; 'MESS' 'Le calcul demarre a partir du temps' ' ' Tps ; * * Liste des Gaz pris en compte * *FD A commenter 'FINS' ; * *------------------------------------------------------------- * Les données de l'utilisateur (table rxt) sont décodées, * vérifiées et dupliquées (tables tbt et geo) *------------------------------------------------------------- * * Conditions initiales vertytab rxt 'TF0' 'FLOTTANT' ; vertytab rxt 'PT0' 'FLOTTANT' ; * * Maillage fluide vertytab rxt 'vtf' 'MAILLAGE' ; vtf = rxt . 'vtf' ; * * DT0 = pas de temps vertytab rxt 'DT0' 'FLOTTANT' ; tic . 'DT' = rxt . 'DT0' ; * * Couplage éventuel avec CATHARE2 TBT . 'CATHARE2' = FAUX ; vertytab rxt 'CATHARE2' 'LOGIQUE' ; TBT . 'CATHARE2' = rxt . 'CATHARE2' ; 'FINS' ; * * On interdit VERSION = V1 TBT . 'VERSION' = 0 ; tbvs . 'V0' = 0 ; tbvs . 'V1' = 1 ; TBT . 'VERSION' = tbvs . (rxt . 'VERSION') ; 'SI' ('EGA' TBT . 'VERSION' 1) ; 'MESS' ; 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ; 'MESS' ' ' ; 'MESS' ' ' ; 'MESS' ' Pas de VERSION V1 pour l instant ' ; 'MESS' ' ' ; 'FINS' ; 'FINS' ; 'SI' ('EGA' TBT . 'VERSION' 1) ; TBT . 'YBRO' = 1.e-4 ; TBT . 'V1alfa' = 0.8 ; TBT . 'TAUXcm' = 1. ; vertytab rxt 'YBRO' 'FLOTTANT' ; TBT . 'YBRO' = rxt . 'YBRO' ; 'FINS' ; vertytab rxt 'V1alfa' 'FLOTTANT' ; TBT . 'V1alfa' = rxt . 'V1alfa' ; 'FINS' ; vertytab rxt 'TAUXcm' 'FLOTTANT' ; TBT . 'TAUXcm' = rxt . 'TAUXcm' ; 'FINS' ; 'FINS' ; * * On interdit LOI-ETAT = GR TBT . 'LOI-ETAT' = 'GP' ; TBT . 'LOI-ETAT' = rxt . 'LOI-ETAT' ; 'SI' ('EGA' TBT . 'LOI-ETAT' 'GR') ; 'MESS' ; 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ; 'MESS' ' ' ; 'MESS' ' ' ; 'MESS' ' Pas de loi d etat gaz reel pour l instant ' ; 'MESS' ' ' ; 'FINS' ; 'FINS' ; * * GRAPH = Logique permettant les dessins TBT . 'GRAPH' = FAUX ; vertytab rxt 'GRAPH' 'LOGIQUE ' ; TBT . 'GRAPH' = rxt . 'GRAPH' ; 'FINS' ; * * Niveau d'impression = 0 pour les supprimer et 2 pour le mode DEBUG TBT . 'nimpr' = 0 ; TBT . 'IMPR' = 2 ; vertytab rxt 'IMPR' 'ENTIER' ; TBT . 'IMPR' = rxt . 'IMPR' ; 'FINS' ; * * STAB = coefficient de Stabilisation pour les MACRO TBT . 'STAB' = 1. ; vertytab rxt 'STAB' 'FLOTTANT' ; TBT . 'STAB' = rxt . 'STAB' ; 'FINS' ; * * FRPREC = fréquence de recalcul du préconditionnement vertytab rxt 'FRPREC' 'ENTIER' ; TBT . 'FRPREC' = rxt . 'FRPREC' ; 'FINS' ; * * DETMAT = vrai si on détruit les matrices à la fin du calcul TBT . 'DETMAT' = VRAI ; vertytab rxt 'DETMAT' 'LOGIQUE' ; listentr . 'DETMAT' = '' ; TBT . 'DETMAT' = rxt . 'DETMAT' ; 'FINS' ; * * CORTEMP = vrai si on controle le bilan d'énergie TBT . 'CORTEMP' = vrai ; vertytab rxt 'CORTEMP' 'LOGIQUE' ; listentr . 'CORTEMP' = '' ; TBT . 'CORTEMP' = rxt . 'CORTEMP' ; 'FINS' ; * * CORLIM = vrai si on controle le bilan de masse en incorporant les points de la frontière où sont * définies les conditions aux limites (sinon ces points sont exclus) TBT . 'CORLIM' = vrai ; vertytab rxt 'CORLIM' 'LOGIQUE' ; listentr . 'CORLIM' = '' ; TBT . 'CORLIM' = rxt . 'CORLIM' ; 'FINS' ; corlim = tbt . 'CORLIM' ; * * RENU = Type de renumérotation pour les méthodes d'inversion TBT . 'RENU' = 'SLOA' ; TBT . 'RENU' = rxt . 'RENU' ; 'FINS' ; * * TYPINV = Type d'inversion et paramètres pour les méthodes itératives * (cf notice KRES) TBT . 'TYPINV' = 3 ; vertytab rxt 'TYPINV' 'ENTIER' ; TBT . 'TYPINV' = rxt . 'TYPINV' ; 'FINS' ; TBT . 'RESIDU' = 1.E-20 ; vertytab rxt 'RESIDU' 'FLOTTANT' ; TBT . 'RESIDU' = rxt . 'RESIDU' ; 'FINS' ; TBT . 'NTIT' = 800 ; vertytab rxt 'NTIT' 'ENTIER' ; TBT .'NTIT' = rxt . 'NTIT' ; 'FINS' ; * * TRESOU = vrai si RESO est le solveur linéaire TBT . 'TRESOU' = FAUX ; vertytab rxt 'TRESOU' 'LOGIQUE' ; TBT . 'TRESOU' = rxt . 'TRESOU' ; 'FINS' ; * * TCPT = vrai si les matrices élémentaires sont calclées en // TBT . 'TCPT' = FAUX ; vertytab rxt 'TCPT' 'LOGIQUE' ; TBT . 'TCPT' = rxt . 'TCPT' ; 'FINS' ; * * TKPR = vrai si la résolution des champs scalaires est en // * Le // est effectif si au moins un champ est // (TRTOUT = vrai) TBT . 'TKPR' = FAUX ; vertytab rxt 'TKPR' 'LOGIQUE' ; TBT . 'TKPR' = rxt . 'TKPR' ; 'FINS' ; TBT . 'IMPARA' = FAUX ; vertytab rxt 'IMPARA' 'LOGIQUE' ; TBT . 'IMPARA' = rxt . 'IMPARA' ; 'FINS' ; TBT . 'TRTF' = TBT . 'TKPR' ; vertytab rxt 'TRTF' 'LOGIQUE' ; TBT . 'TRTF' = rxt . 'TRTF' ; 'FINS' ; TBT . 'TRrvap' = TBT . 'TKPR' ; vertytab rxt 'TRrvap' 'LOGIQUE' ; TBT . 'TRrvap' = rxt . 'TRrvap' ; 'FINS' ; TBT . 'TRrhe' = TBT . 'TKPR' ; vertytab rxt 'TRrhe' 'LOGIQUE' ; TBT . 'TRrhe' = rxt . 'TRrhe' ; 'FINS' ; TBT . 'TRrh2' = TBT . 'TKPR' ; vertytab rxt 'TRrh2' 'LOGIQUE' ; TBT . 'TRrh2' = rxt . 'TRrh2' ; 'FINS' ; TBT . 'TRro2' = TBT . 'TKPR' ; vertytab rxt 'TRro2' 'LOGIQUE' ; TBT . 'TRro2' = rxt . 'TRro2' ; 'FINS' ; TBT . 'TRrn2' = TBT . 'TKPR' ; vertytab rxt 'TRrn2' 'LOGIQUE' ; TBT . 'TRrn2' = rxt . 'TRrn2' ; 'FINS' ; TBT . 'TRrco' = TBT . 'TKPR' ; vertytab rxt 'TRrco' 'LOGIQUE' ; TBT . 'TRrco' = rxt . 'TRrco' ; 'FINS' ; TBT . 'TRrco2' = TBT . 'TKPR' ; vertytab rxt 'TRrco2' 'LOGIQUE' ; TBT . 'TRrco2' = rxt . 'TRrco2' ; 'FINS' ; TBT . 'TRrair' = TBT . 'TKPR' ; vertytab rxt 'TRrair' 'LOGIQUE' ; TBT . 'TRrair' = rxt . 'TRrair' ; 'FINS' ; TBT . 'TRTOUT' = TBT . 'TRTF' 'OU' TBT . 'TRrvap' 'OU' TBT . 'TRrhe' 'OU' TBT . 'TRrh2' 'OU' TBT . 'TRro2' 'OU' TBT . 'TRrn2' 'OU' TBT . 'TRrco' 'OU' TBT . 'TRrco2' 'OU' TBT . 'TRrair' ; * * PPDT formulation conservative ou non conservative * (désignée petits/grands pas de temps) TBT . 'PPDT' = FAUX ; vertytab rxt 'PPDT' 'LOGIQUE' ; TBT . 'PPDT' = rxt . 'PPDT' ; 'FINS' ; 'SI' TBT . 'PPDT' ; TBT . 'FCONS' = 'CONS2' ; 'SINO' ; TBT . 'FCONS' = 'NOCONS' ; 'FINS' ; * * ALGO = choix de l'algorithme implicite / explicite * (IMPL = semi implicite / EFM1 = semi explicite) TBT . 'ALGO' = 'IMPL' ; TBT . 'FEF' = 'EF' ; TBT . 'FIMPL' = 'IMPL' ; TBT . 'ALGO' = rxt . 'ALGO' ; 'SI' ('EGA' TBT . 'ALGO' 'EFM1') ; TBT . 'FEF' = 'EFM1' ; TBT . 'FIMPL' = 'EXPL' ; 'FINS' ; 'FINS' ; * * DISCR = Eléments pour la vitessse et les scalaires autres que P * (LINE = linéaires / MACRO (par DEFAUT) / QUAF = quadratiques fluide) TBT . 'discr' = 'MACRO' ; TBT . 'discr' = rxt . 'DISCR' ; 'FINS' ; TBT . 'discrH' = TBT . 'discr' ; 'SI' (('EGA' TBT . 'discr' 'QUAF') 'ET' DIM3D) ; TBT . 'discrH' = 'MACRO' ; 'FINS' ; * * KPRE = Eléments pour la pression TBT . 'KPRE' = 'CENTRE' ; lxt . 'CENTRE' = ' ' ; lxt . 'CENTREP1' = ' ' ; lxt . 'MSOMMET' = ' ' ; TBT . 'KPRE' = rxt . 'KPRE' ; 'FINS' ; * * MAXELPRE = nombre maximum d'éléments pour lequel on utilise * une méthode directe (Cholesky) pour inverser la matrice. TBT . 'MAXELPRE' = 150000 ; vertytab rxt 'MAXELPRE' 'ENTIER' ; TBT . 'MAXELPRE' = rxt . 'MAXELPRE' ; 'FINS' ; TBT . 'MAXELPRE' ' ' 'elements' ; * * Definition des grandeurs Physiques : * Rabs = constante universel des GP (J/mol/K) * Rgi = constante des gaz (J/kg/K) * Mki = masse molaire (kg/mol) * * Cpvap/Cvvap = Chaleur specifique à pression/volume constant supposé * constant durant le calcul + hypothèse vapeur gaz parfait (J/kg/K) * Lv = Chaleur Latente supposée constante (J/kg) Rabs = 6.022*1.38066 ; TBT . 'Rabs' = Rabs ; TBT . 'Rgh2' = Rabs '/' 2.E-3 ; TBT . 'Mkh2' = 2.016E-3 ; TBT . 'Rghe' = Rabs '/' 4.E-3 ; TBT . 'Mkhe' = 4.003E-3 ; TBT . 'Rgo2' = Rabs '/' 3.2E-2 ; TBT . 'Mko2' = 32.00E-3 ; TBT . 'Rgn2' = Rabs '/' 2.8E-2 ; TBT . 'Mkn2' = 28.02E-3 ; TBT . 'Rgco2' = Rabs '/' 4.4E-2 ; TBT . 'Mkco2' = 44.01E-3 ; TBT . 'Rgco' = Rabs '/' 2.8E-2 ; TBT . 'Mkco' = 28.01E-3 ; TBT . 'Rgar' = Rabs '/' 4.E-2 ; TBT . 'Mkar' = 39.94E-3 ; TBT . 'Rgch4' = Rabs '/' 16.E-3 ; TBT . 'Mkch4' = 16.04E-3 ; TBT . 'Rgvap' = Rabs '/' 1.8E-2 ; TBT . 'Mkvap' = 18.02E-3 ; *Rabs = 6.02214076 '*' 1.380649 ; *TBT . 'Mkh2' = 2.D0 * 0.00100794D0 ; *TBT . 'Rgh2' = Rabs '/' TBT . 'Mkh2' ; *TBT . 'Mkhe' = 0.004002602D0 ; *TBT . 'Rghe' = Rabs '/' TBT . 'Mkhe' ; *TBT . 'Mko2' = 2.D0 * 0.0159994D0 ; *TBT . 'Rgo2' = Rabs '/' TBT . 'Mko2' ; *TBT . 'Mkn2' = 2.D0 * 0.0140067D0 ; *TBT . 'Rgn2' = Rabs '/' TBT . 'Mkn2' ; *TBT . 'Mkco2' = 2.D0 * 0.0159994D0 + 0.0120107D0 ; *TBT . 'Rgco2' = Rabs '/' TBT . 'Mkco2' ; *TBT . 'Mkco' = 0.0120107D0 + 0.0159994D0 ; *TBT . 'Rgco' = Rabs '/' TBT . 'Mkco' ; *TBT . 'Mkvap' = 2.D0 * 0.00100794D0 + 0.0159994D0 ; *TBT . 'Rgvap' = Rabs '/' TBT . 'Mkvap' ; * *TBT . 'Mkar' = 39.94E-3 ; TBT . 'Rgar' = Rabs '/' TBT . 'Mkar' ; *TBT . 'Mkch4' = 16.04E-3 ; TBT . 'Rgch4' = Rabs '/' TBT . 'Mkch4' ; vertytab rxt 'Cpvap' 'FLOTTANT' ; Cpvap = rxt . 'Cpvap' ; 'SINO' ; Cpvap = 1700. ; 'FINS' ; TBT . 'Cpvap' = Cpvap ; TBT . 'Cvvap' = TBT . 'Cpvap' - TBT . 'Rgvap' ; vertytab rxt 'Lv' 'FLOTTANT' ; Lv = rxt . 'Lv' ; 'SINO' ; Lv = 2.3E6 ; 'FINS' ; TBT . 'Lv' = Lv ; TBT . 'Rgair' = 287.1 ; TBT . 'Mkair' = 28.97E-3 ; TBT . 'lamair' = 2.580e-2 ; * * Coefficients pour les tables de l'eau TBT . 'B0' = -4512.70756 ; TBT . 'B1' = 4245585.9 ; TBT . 'B2' = -1584624342.; * * DB = coefficient de diffusion Brownienne vertytab rxt 'db' 'FLOTTANT' ; db = rxt . 'db' ; 'SINO' ; db = 1.000e-5 ; 'FINS' ; TBT . 'db' = db ; * * Définition de l'axe (ou du plan) de symétrie TBT . 'Taxe' = FAUX ; vertytab rxt 'axe' 'MAILLAGE' ; TBT . 'Taxe' = VRAI ; 'FINS' ; * * Définition des Sorties TBT . 'TTsortie' = FAUX ; vertytab rxt 'Sorties' 'TABLE' ; TBT . 'TTsortie' = VRAI ; 'REPE' BBRS NBR ; Sriches = rxt . 'Sorties' . (ibr . &BBRS) ; vertytab Sriches 'Maillage' 'MAILLAGE' ; vertytab Sriches 'scenario' 'TABLE ' ; scn = Sriches . 'scenario' ; Sriches . 'Modinj' = Sriches . 'scenario' . 'Modinj' ; 'FINS' ; *FD * Quid si reprise ? *FD 'FINS' ; 'FIN' BBRS ; TBT . 'Sorties' = rxt . 'Sorties' ; 'FINS' ; * * Définition des Breches TBT . 'TTbreche' = FAUX ; vertytab rxt 'Breches' 'TABLE' ; TBT . 'TTbreche' = VRAI ; 'REPE' BBRS NBR ; Briches = rxt . 'Breches' . (ibr . &BBRS) ; vertytab Briches 'diru' 'POINT ' ; vertytab Briches 'Maillage' 'MAILLAGE' ; vertytab Briches 'scenario' 'TABLE ' ; scn = Briches . 'scenario' ; Briches . 'Modinj' = Briches . 'scenario' . 'Modinj' ; 'FINS' ; *FD * Quid si reprise ? *FD 'FINS' ; 'FIN' BBRS ; TBT . 'Breches' = rxt . 'Breches' ; * tic . 'Breches' = 'TABLE' ; 'FINS' ; 'FINS' ; * * Définition des Flux de masse imposés TBT . 'TFIMP' = FAUX ; TBT . 'TFIMP' = VRAI ; vertytab rxt 'XFIMP' 'TABLE' ; 'REPE' BBFIMP NBFIMP ; Bfimp = rxt . 'XFIMP' . (ifimp . &BBFIMP) ; vertytab Bfimp 'MAILLAGE' 'MAILLAGE' ; vertytab Bfimp 't' 'LISTREEL' ; *FD * A mettre dans prepaenc ? *FD vertytab Bfimp 'qt' 'LISTREEL' ; 'SINO' ; 'FINS' ; vertytab Bfimp 'qeau' 'LISTREEL' ; 'SINO' ; 'FINS' ; vertytab Bfimp 'qair' 'LISTREEL' ; 'SINO' ; 'FINS' ; vertytab Bfimp 'qhe' 'LISTREEL' ; 'SINO' ; 'FINS' ; vertytab Bfimp 'qh2' 'LISTREEL' ; 'SINO' ; 'FINS' ; vertytab Bfimp 'qo2' 'LISTREEL' ; 'SINO' ; 'FINS' ; vertytab Bfimp 'qn2' 'LISTREEL' ; 'SINO' ; 'FINS' ; vertytab Bfimp 'qco' 'LISTREEL' ; 'SINO' ; 'FINS' ; vertytab Bfimp 'qco2' 'LISTREEL' ; 'SINO' ; 'FINS' ; 'FIN' BBFIMP ; TBT . 'XFIMP' = rxt . 'XFIMP' ; 'FINS' ; * * THERMP = vrai si Problème couplé Fluide-Structure * THERCO = vrai si couplage implicite Fluide-Structure TBT . 'THERMP' = FAUX ; TBT . 'THERCO' = FAUX ; TBT . 'ECHEXT' = FAUX ; vertytab rxt 'THERMP' 'LOGIQUE' ; TBT . 'THERMP' = rxt . 'THERMP' ; 'FINS' ; vertytab rxt 'THERCO' 'LOGIQUE' ; TBT . 'THERCO' = rxt . 'THERCO' ; 'SI' TBT . 'THERCO' ; TBT . 'THERMP' = VRAI ; 'FINS' ; 'FINS' ; * * TPAROIS = vrai si résolution thermique dans les parois * (nouvelle définition des parois thermiques) TBT . 'TPAROIS' = FAUX ; vertytab rxt 'PAROIS' 'TABLE' ; *FD * ECHAN est défini globalement au lieu de localement pour chaque PAROI * (héritage de l'époque ou on avait une seulle paroi ?) *FD vertytab rxt 'ECHAN' 'FLOTTANT' 'CHPOINT' ; 'REPE' BPRS NPAR ; Parois = rxt . 'PAROIS' . (ipr . &BPRS) ; vertytab Parois 'vtp' 'MAILLAGE' ; Mvtp = Mvtp 'ET' Parois . 'vtp' ; vertytab Parois 'ROCP' 'FLOTTANT' 'CHPOINT' ; vertytab Parois 'LAMBDA' 'FLOTTANT' 'CHPOINT' ; vertytab Parois 'Tp0' 'FLOTTANT' 'CHPOINT' ; *? vertytab Parois 'ECHAN' 'FLOTTANT' 'CHPOINT' ; tic . CROCP = Parois . 'ROCP' ; 'FINS' ; tic . CLAMBDA = Parois . 'LAMBDA' ; 'FINS' ; tic . CTp0 = Parois . 'Tp0' ; 'FINS' ; 'FIN' BPRS ; TBT . 'PAROIS' = rxt . 'PAROIS' ; TBT . 'THERMP' = VRAI ; TBT . 'TPAROIS' = VRAI ; 'FINS' ; 'SI' TBT . 'THERMP' ; *FD * Ancienne définition d'une PAROI : à detruire ? *FD * * TPAROIS = faux mais THERMP = vrai (ancienne définition de LA paroi thermique) 'SI' ('NON' (TBT . 'TPAROIS')) ; vertytab rxt 'vtp' 'MAILLAGE' ; vertytab rxt 'ROCP' 'FLOTTANT' 'CHPOINT' ; vertytab rxt 'LAMBDA' 'FLOTTANT' 'CHPOINT' ; vertytab rxt 'Tp0' 'FLOTTANT' 'CHPOINT' ; vertytab rxt 'ECHAN' 'FLOTTANT' 'CHPOINT' ; tic . 'ROCP' = rxt . 'ROCP' ; 'FINS' ; tic . 'LAMBDA' = rxt . 'LAMBDA' ; 'FINS' ; tic . 'Tp0' = rxt . 'Tp0' ; 'FINS' ; 'FINS' ; * * Initialisation de KHW à ECHAN tic . 'KHW' = rxt . 'ECHAN' ; 'FINS' ; * * ECHEXT = vrai si échange thermique avec l'extérieur vertytab rxt 'ECHEXT' 'LOGIQUE' ; TBT . 'ECHEXT' = rxt . 'ECHEXT' ; 'FINS' ; 'SI' TBT . 'ECHEXT' ; vertytab rxt 'parext' 'MAILLAGE' ; vertytab rxt 'HEXT' 'FLOTTANT' 'CHPOINT' ; vertytab rxt 'TPEXT' 'FLOTTANT' 'CHPOINT' ; tic . 'HEXT' = rxt . 'HEXT' ; 'FINS' ; tic . 'TPEXT' = rxt . 'TPEXT' ; 'FINS' ; 'FINS' ; 'SINO' ; 'FINS' ; * * TTIMP = vrai si parois à température imposée TBT . 'TTIMP' = FAUX ; TBT . 'TTIMP' = VRAI ; vertytab rxt 'TIMP' 'TABLE' ; 'REPE' BBTIMP NBTIMP ; Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ; vertytab Btimp 'MAILLAGE' 'MAILLAGE' ; vertytab Btimp 'ECHAN' 'FLOTTANT' ; vertytab Btimp 't' 'LISTREEL' ; vertytab Btimp 'TIMP' 'LISTREEL' ; 'SI' ('NEG' len1 len2) ; 'FINS' ; 'SINO' ; 'FINS' ; 'FIN' BBTIMP ; TBT . 'TIMP' = rxt . 'TIMP' ; 'FINS' ; * * TECHANP = vrai si paroi à T constant ou imposé via une procédure personnelle TBT . 'TECHANP' = FAUX ; TBT . 'TECHANP' = VRAI ; vertytab rxt 'ECHANP' 'TABLE' ; 'FINS' ; * * TRECOMB = vrai si présence de PARs (recombineurs) TBT . 'TRECOMB' = FAUX ; vertytab rxt 'RECOMB' 'TABLE ' ; 'REPE' BCL1 NBREC ; TRECI = rxt . 'RECOMB' . &BCL1 ; lxt . 'PAREXT' = ' ' ; lxt . 'ENTREE' = ' ' ; lxt . 'SORTIE' = ' ' ; lxt . 'direntr' = ' ' ; lxt . 'dirsort' = ' ' ; lxt . 'NSECTION' = ' ' ; lxt . 'TYPR' = ' ' ; vertytab TRECI 'PAREXT' 'MAILLAGE' ; vertytab TRECI 'ENTREE' 'MAILLAGE' ; vertytab TRECI 'SORTIE' 'MAILLAGE' ; vertytab TRECI 'direntr' 'POINT ' ; vertytab TRECI 'dirsort' 'POINT ' ; vertytab TRECI 'NSECTION' 'ENTIER ' ; 'SINO' ; TRECI . 'NSECTION' = 1 ; 'FINS' ; 'SINO' ; TRECI . 'TYPR' = 'SIEMENS' ; 'FINS' ; typr = TRECI . 'TYPR' ; 'SI' ('EGA' typr 'SIEMENS') ; lxt . 'A' = ' ' ; lxt . 'B' = ' ' ; lxt . 'XH2ON' = ' ' ; lxt . 'XH2OFF' = ' ' ; lxt . 'BETA' = ' ' ; vertytab TRECI 'A' 'FLOTTANT' ; 'SINO' ; TRECI . 'A' = 0.48D-8 ; 'FINS' ; vertytab TRECI 'B' 'FLOTTANT' ; 'SINO' ; TRECI . 'B' = 0.58D-3 ; 'FINS' ; vertytab TRECI 'XH2ON' 'FLOTTANT' ; 'SINO' ; TRECI . 'XH2ON' = 0.005D0 ; 'FINS' ; vertytab TRECI 'XH2OFF' 'FLOTTANT' ; 'SINO' ; TRECI . 'XH2OFF' = 0.005D0 ; 'FINS' ; vertytab TRECI 'BETA' 'FLOTTANT' ; 'SINO' ; TRECI . 'BETA' = 0.2D0 ; 'FINS' ; 'SINO' ; lxt . 'PUISSANCE' = ' ' ; lxt . 'QHOUSING' = ' ' ; lxt . 'HRAPP' = ' ' ; lxt . 'CRAPP' = ' ' ; vertytab TRECI 'PUISSANCE' 'EVOLUTIO' ; vertytab TRECI 'QHOUSING' 'FLOTTANT' ; 'SINO' ; TRECI . 'QHOUSING' = 0.1D0 ; 'FINS' ; vertytab TRECI 'HRAPP' 'FLOTTANT' ; 'SINO' ; TRECI . 'HRAPP' = 1.7D0 ; 'FINS' ; vertytab TRECI 'CRAPP' 'FLOTTANT' ; 'SINO' ; TRECI . 'CRAPP' = 136.0868234D0 ; 'FINS' ; 'FINS' ; 'REPE' bouind nind ; 'MESS' ' ' ; 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ; 'MESS' ' ' ; 'MESS' ' ' ; 'MESS' ' ' ; 'FINS' ; 'FIN' bouind ; 'FIN' BCL1 ; TBT . 'TRECOMB' = VRAI ; TBT . 'RECOMB' = rxt . 'RECOMB' ; 'FINS' ; * * Gestion du modèle de turbulence MODTURB * (NUTURB ou LMEL ou KEPSILON) TBT . 'MODTURB' = rxt . 'MODTURB' ; lxt . 'NUTURB' = ' ' ; lxt . 'LMEL' = ' ' ; 'SI' ('EGA' rxt . 'MODTURB' 'NUTURB') ; listentr . 'NUT' = '' ; vertytab rxt 'NUT' 'FLOTTANT' ; TBT . 'NUT' = rxt .'NUT' ; 'FINS' ; 'SI' ('EGA' rxt . 'MODTURB' 'LMEL') ; listentr . 'LMEL' = '' ; vertytab rxt 'LMEL' 'FLOTTANT' ; TBT . 'LMEL' = rxt . 'LMEL' ; 'FINS' ; ' ' rxt . 'MODTURB' ; 'SINO' ; 'FINS' ; * * FPAROI = vrai si utilisation de fonctions de paroi TBT . 'FPAROI' = FAUX ; vertytab rxt 'FPAROI' 'LOGIQUE' ; TBT . 'FPAROI' = rxt . 'FPAROI' ; 'FINS' ; 'SI' TBT . 'FPAROI' ; listentr . 'YP' = '' ; vertytab rxt 'YP' 'FLOTTANT' ; TBT . 'YP' = rxt . 'YP' ; 'FINS' ; * * Gestion du modèle de condensation en paroi MODCOND * (CHIL0 ou CHIL1) TBT . 'MODCOND' = 'CHIL0' ; TBT . 'MODCOND' = rxt . 'MODCOND' ; lxt . 'CHIL0' = ' ' ; lxt . 'CHIL1' = ' ' ; 'FINS' ; * * PERSO = vrai si une procédure personnelle est indiquée TBT . 'PERSO' = FAUX ; vertytab rxt 'PERSO' 'LOGIQUE' ; TBT . 'PERSO' = rxt . 'PERSO' ; 'FINS' ; 'SI' TBT . 'PERSO' ; listentr . 'PRCPERSO' = '' ; TBT . 'PRCPERSO' = rxt . 'PRCPERSO' ; 'FINS' ; vertytab rxt 'TABPERSO' 'TABLE' ; TBT . 'TABPERSO' = rxt . 'TABPERSO' ; 'FINS' ; * * Identification des incondensables et des entrées associées * (à choisir parmi H2, HE, O2, N2, CO, CO2) TBT . 'TH2' = FAUX ; vertytab rxt 'H2' 'LOGIQUE' ; TBT . 'TH2' = rxt . 'H2' ; 'SI' TBT . 'TH2' ; vertytab rxt 'Yh20' 'FLOTTANT' ; listentr . 'Yh20' = '' ; 'FINS' ; 'FINS' ; 'FINS' ; TBT . 'THE' = FAUX ; vertytab rxt 'HE' 'LOGIQUE' ; TBT . 'THE' = rxt . 'HE' ; 'SI' TBT . 'THE' ; vertytab rxt 'Yhe0' 'FLOTTANT' ; listentr.'Yhe0' = '' ; 'FINS' ; 'FINS' ; 'FINS' ; TBT . 'TO2' = FAUX ; vertytab rxt 'O2' 'LOGIQUE' ; TBT . 'TO2' = rxt . 'O2' ; 'SI' TBT . 'TO2' ; vertytab rxt 'Yo20' 'FLOTTANT' ; listentr . 'Yo20' = '' ; 'FINS' ; 'FINS' ; 'FINS' ; TBT . 'TN2' = FAUX ; vertytab rxt 'N2' 'LOGIQUE' ; TBT . 'TN2' = rxt . 'N2' ; 'SI' TBT . 'TN2' ; vertytab rxt 'Yn20' 'FLOTTANT' ; listentr . 'Yn20' = '' ; 'FINS' ; 'FINS' ; 'FINS' ; TBT . 'TCO' = FAUX ; vertytab rxt 'CO' 'LOGIQUE' ; TBT . 'TCO' = rxt . 'CO' ; 'SI' TBT . 'TCO' ; vertytab rxt 'Yco0' 'FLOTTANT' ; listentr . 'Yco0' = '' ; 'FINS' ; 'FINS' ; 'FINS' ; TBT . 'TCO2' = FAUX ; vertytab rxt 'CO2' 'LOGIQUE' ; TBT . 'TCO2' = rxt .'CO2' ; 'SI' TBT . 'TCO2' ; vertytab rxt 'Yco20' 'FLOTTANT' ; listentr . 'Yco20' = '' ; 'FINS' ; 'FINS' ; 'FINS' ; *FD * Quid de l'injection d'air sans transport de l'air *FD TBT . 'TAIR' = FAUX ; vertytab rxt 'AIR' 'LOGIQUE' ; TBT . 'TAIR' = rxt . 'AIR' ; 'SI' TBT . 'TAIR' ; 'FINS' ; 'FINS' ; 'FINS' ; 'FINS' ; 'MESS' ' Liste des incondensables : ' ; 'LIST' LINCOND ; * * VAPEUR = vrai en présence de vapeur dans le mélange TBT . 'VAPEUR' = FAUX ; vertytab rxt 'VAPEUR' 'LOGIQUE' ; TBT . 'VAPEUR' = rxt . 'VAPEUR' ; 'SI' TBT . 'VAPEUR' ; vertytab rxt 'Yvap0' 'FLOTTANT' ; listentr .'Yvap0' = '' ; 'FINS' ; listentr .'Mliq0' = '' ; listentr .'Lv' = '' ; listentr .'Cpvap' = '' ; 'FINS' ; 'FINS' ; * * CONDMAS = vrai si condensation en masse et présence de VAPEUR TBT . 'CONDMAS' = FAUX ; 'SI' TBT . 'VAPEUR' ; vertytab rxt 'CONDMAS' 'LOGIQUE' ; listentr . 'CONDMAS' = '' ; TBT . 'CONDMAS' = rxt . 'CONDMAS' ; 'FINS' ; 'FINS' ; * * ASPER = vrai aspersion et présence de VAPEUR TBT . 'ASPER' = FAUX ; 'SI' TBT . 'VAPEUR' ; vertytab rxt 'ASPER' 'LOGIQUE' ; listentr . 'ASPER' = '' ; TBT . 'ASPER' = rxt . 'ASPER' ; 'SI' TBT . 'ASPER' ; vertytab rxt 'scenasp' 'TABLE ' ; listentr . 'scenasp' = '' ; vertytab rxt 'aspinj' 'MAILLAGE' ; listentr . 'aspinj' = '' ; vertytab rxt 'toitf' 'MAILLAGE' ; listentr . 'toitf' = '' ; vertytab rxt 'rod' 'FLOTTANT' ; listentr . 'rod' = '' ; vertytab rxt 'Cpd' 'FLOTTANT' ; listentr . 'Cpd' = '' ; 'FINS' ; 'FINS' ; 'FINS' ; * * TRECOMB possible si présence de H2, O2, N2 et VAPEUR 'SI' TBT . 'TRECOMB' ; LOG0 = TBT . 'TH2' 'ET' TBT . 'VAPEUR' 'ET' TBT . 'TN2' 'ET' TBT . 'TO2' ; 'SI' ('NON' LOG0) ; 'MESS' ' ' ; 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ; 'MESS' ' ' ; 'MESS' ' ' ; 'SI' ('NON' tbt . 'TH2') 'FINS' ; 'SI' ('NON' tbt . 'TO2') 'FINS' ; 'SI' ('NON' tbt . 'TN2') 'FINS' ; 'SI' ('NON' tbt . 'VAPEUR') 'FINS' ; 'MESS' ' ' ; 'FINS' ; 'FINS' ; * * Vérification des entrées de RXT 'REPE' Bver n ; 'MESS' ; 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ; 'MESS' ' ' ; 'MESS' ' ' ; 'MESS' ' ' ; 'FINS' ; 'MESS' ; 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ; 'MESS' ' ' ; 'MESS' ' ' ; 'MESS' ' ' ; 'FINS' ; 'FIN' Bver ; * * Affichage des options surchargées 'SI' ('NON' ('EGA' n 0)) ; 'MESS' ' ' ; 'MESS' ' Liste des options surchargees :' ; 'LIST' listand ; 'MESS' ' ' ; 'FINS' ; 'MESS' ' ' ; 'FINS' ; * * Vérification des compatibilités entre entrées 'SI' (('EGA' TBT . 'ALGO' 'EFM1') 'ET' ('EGA' TBT . 'discr' 'QUAF')) ; vertytab 'ERREUR' 'ERREUR' 'FINS' ; 'ET' ('NON' ('EGA' TBT . 'ALGO' 'EFM1'))); vertytab 'ERREUR' 'ERREUR' 'FINS' ; 'FINS' ; 'MESS' WWW ; 'MESS' WWW ; 'MESS' ' ' ; *----------------------------------------------------------------------- *----------------------------------------------------------------------- *----------------------------------------------------------------------- * ------------- FIN DES INITIALISATIONS ET VERIFICATIONS --------------- *----------------------------------------------------------------------- *----------------------------------------------------------------------- *----------------------------------------------------------------------- 'SI' TPREPA ; PREPAENC rxt TBT GEO TIC ; 'FINS' ; rxt . 'TBT' = TBT ; GEO = rxt .'GEO' ; tic = rxt . 'TIC' ; vtf = GEO . 'vtf' ; 'SI' TBT . 'THERMP' ; $vtp = GEO . '$vtp' ; $paroif = GEO . '$paroif' ; paroif = GEO . 'paroif' ; 'FINS' ; VTotal = GEO . 'VTotal' ; 'DOMA' $vtf 'IMPR' ; 'SI' TBT . 'THERMP' ; 'DOMA' $vtp 'IMPR' ; 'FINS' ; Tkm = Tfm '+' 273.15 ; * * Initialisation et affichage des propriétés physiques * (Cp (Tfm), Cv et Mu (Tkm)) Rgh2 = TBT . 'Rgh2' ; Rghe = TBT . 'Rghe' ; Rgo2 = TBT . 'Rgo2' ; Rgn2 = TBT . 'Rgn2' ; Rgco = TBT . 'Rgco' ; Rgco2 = TBT . 'Rgco2' ; Rgvap = TBT . 'Rgvap' ; Rgair = TBT . 'Rgair' ; Cpvap = TBT . 'Cpvap' ; Cvair = Cpair '-' Rgair ; Cvvap = Cpvap '-' Rgvap ; Cvhe = Cphe '-' Rghe ; Cvh2 = Cph2 '-' Rgh2 ; Cvo2 = Cpo2 '-' Rgo2 ; Cvn2 = Cpn2 '-' Rgn2 ; Cvco = Cpco '-' Rgco ; Cvco2 = Cpco2 '-' Rgco2 ; Cvair = Cpair '-' Rgair ; Lv = TBT . 'Lv' ; 'SI' TBT . 'VAPEUR' ; 'FINS' ; 'SI' TBT . 'THE' ; 'FINS' ; 'SI' TBT . 'TH2' ; 'FINS' ; 'SI' TBT . 'TO2' ; 'FINS' ; 'SI' TBT . 'TN2' ; 'FINS' ; 'SI' TBT . 'TCO' ; 'FINS' ; 'SI' TBT . 'TCO2' ; 'FINS' ; ***'SI' TBT . 'TAIR' ; ***'FINS' ; 'SI' TBT . 'THERMP' ; 'SINO' ; 'FINS' ; 'FINS' ; * * Initialisation et affichage des bilans initiaux 0D/CFD 'MESS' '_____________________________________________' '____________________' ; M0D = Rhomn '*' Vtotal ; 'SI' TBT . 'VAPEUR' ; MV0D = Rhomv '*' Vtotal ; MVG0D = Rhomvg '*' Vtotal ; 'FINS' ; 'SI' TBT . 'THE' ; MHE0D = Rhomhe '*' Vtotal ; 'FINS' ; 'SI' TBT . 'TH2' ; MH20D = Rhomh2 '*' Vtotal ; 'FINS' ; 'SI' TBT . 'TO2' ; MO20D = Rhomo2 '*' Vtotal ; 'FINS' ; 'SI' TBT . 'TN2' ; MN20D = Rhomn2 '*' Vtotal ; 'FINS' ; 'SI' TBT . 'TCO' ; MCO0D = Rhomco '*' Vtotal ; 'FINS' ; 'SI' TBT . 'TCO2' ; MCO20D = Rhomco2 '*' Vtotal ; 'FINS' ; ***'SI' TBT . 'TAIR' ; MAIR0D = Rhomair '*' Vtotal ; ***'FINS' ; 'SI' ('EGA' ndl 1) ; 'SINO' ; 'FINS' ; E0D = Remn ; (rxt . 'TIC' . 'TF' '+' 273.15)) ) '/' Vtotal ; (100. '*'(M0D '-' MMD) '/'M0D) ; (100. '*' (E0D '-' EMD) '/' E0D) ; 'SI' (TBT . 'VAPEUR' 'ET' ('NON' ('EGA' MV0D 0.0))) ; (100. '*' (MV0D '-' MVMD) '/' MV0D) ; 'FINS' ; 'SI' (TBT . 'THE' 'ET' ('NON' ('EGA' MHE0D 0.0))) ; (100. '*' (MHE0D '-' MHEMD) '/' MHE0D) ; 'FINS' ; 'SI' (TBT . 'TH2' 'ET' ('NON' ('EGA' MH20D 0.0))) ; (100. '*' (MH20D '-' MH2MD) '/' MH20D) ; 'FINS' ; 'SI' (TBT . 'TO2' 'ET' ('NON' ('EGA' MO20D 0.0))) ; (100. '*' (MO20D '-' MO2MD) '/' MO20D) ; 'FINS' ; 'SI' (TBT . 'TN2' 'ET' ('NON' ('EGA' MN20D 0.0))) ; (100. '*' (MN20D '-' MN2MD) '/' MN20D) ; 'FINS' ; 'SI' (TBT . 'TCO' 'ET' ('NON' ('EGA' MCO0D 0.0))) ; (100. '*' (MCO0D '-' MCOMD) '/' MCO0D) ; 'FINS' ; 'SI' (TBT . 'TCO2' 'ET' ('NON' ('EGA' MCO20D 0.0))) ; (100. '*' (MCO20D '-' MCO2MD) '/' MCO20D) ; 'FINS' ; ***'SI' (TBT . 'TAIR' 'ET' ('NON' ('EGA' MAIR0D 0.0))) ; 'SI' ('NON' ('EGA' MAIR0D 0.0)) ; (100. '*' (MAIR0D '-' MAIRMD) '/' MAIR0D) ; 'FINS' ; 'MESS' '_____________________________________________' '____________________' ; 'SI' TBT . 'THERMP' ; 'MESS' '_____________________________________________' '____________________' ; 'FINS' ; 'MESS' ' ' ; 'MESS' ' Dimension espace: ' idim ; 'MESS' ' ' ; 'SI' TBT . 'THERMP' ; 'MESS' ' VTotal paroi =' GEO . 'VTotalp' ' ' 'm3 Sparoif =' GEO . 'Sparoif' ' ' 'm2' ; 'FINS' ; 'SI' TBT . 'TTIMP' ; 'REPE' BBTIMP NBTIMP ; Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ; Btimp . 'Smtpi' ' ' 'm2' ; 'FIN' BBTIMP ; 'FINS' ; *---------------------------------------------------------- *----- BOUCLE PRINCIPALE DE RESOLUTION SUR LE NB ---------- *----- TOTAL DE PAS DE TEMPS A REALISER ------------------- *---------------------------------------------------------- * * Initialisation du pas de temps tic . 'DT' = rxt . 'DT0' ; 'FINS' ; * * Initialisation pour le bilan de masse en vapeur 'SI' TBT . 'VAPEUR' ; 'FINS' ; 'FINS' ; 'SI' TBT . 'TPAROIF' ; 'FINS' ; 'FINS' ; 'FINS' ; 'SI' TBT . 'TTIMP' ; 'REPE' BBTIMP NBTIMP ; Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ; CQc1 = Btimp . 'Qc1' ; 'FINS' ; CMcond1 = Btimp . 'Mcond1' ; 'FINS' ; 'FIN' BBTIMP ; 'FINS' ; 'SI' TBT . 'TECHANP' ; 'FINS' ; 'FINS' ; 'FINS' ; 'FINS' ; * * Initialisation systématique à 0. pour tous les constituants * (correction de masse, densité, fraction massique, densité moyenne) *dRhoair= 0. ; dRhov = 0. ; dRhohe = 0. ; dRhoh2 = 0. ; dRhoo2 = 0. ; dRhon2 = 0. ; dRhoco = 0. ; dRhoco2= 0. ; * *rair = 0. ; rvp = 0. ; rhe = 0. ; rh2 = 0. ; ro2 = 0. ; rn2 = 0. ; rco = 0. ; rco2 = 0. ; * *Yair = 0. ; Yvap = 0. ; Yhe = 0. ; Yh2 = 0. ; Yo2 = 0. ; Yn2 = 0. ; Yco = 0. ; Yco2 = 0. ; * Rmvn = 0. ; Rmvgn = 0. ; Rmliqn = 0. ; Rmbron = 0. ; Rmhen = 0. ; Rmh2n = 0. ; Rmn2n = 0. ; Rmo2n = 0. ; Rmcon = 0. ; Rmco2n = 0. ; * drclair = 0. ; drclvp = 0. ; drclhe = 0. ; drclh2 = 0. ; drclo2 = 0. ; drcln2 = 0. ; drclco = 0. ; drclco2 = 0. ; * Emurn = 0. ; Mcondmn = 0. ; Mliqn = 0. ; * * Valeurs moyennes au début de pas de temps Rgpn = tic . 'Rgp' ; Tfn = tic . 'TF' ; Tkn = Tfn '+' 273.15 ; Rhon = tic . 'RHO' ; * * 'SI' TBT . 'VAPEUR' ; 'SI' TBT . 'CONDMAS' ; 'FINS' ; drclvp = tic . 'drclvp' ; 'FINS' ; 'FINS' ; 'SI' TBT . 'THE' ; drclhe = tic . 'drclhe' ; 'FINS' ; 'FINS' ; 'SI' TBT.'TH2' ; drclh2 = tic . 'drclh2' ; 'FINS' ; 'FINS' ; 'SI' TBT.'TO2' ; drclo2 = tic . 'drclo2' ; 'FINS' ; 'FINS' ; 'SI' TBT.'TN2' ; drcln2 = tic . 'drcln2' ; 'FINS' ; 'FINS' ; 'SI' TBT.'TCO' ; drclco = tic . 'drclco' ; 'FINS' ; 'FINS' ; 'SI' TBT.'TCO2' ; drclco2 = tic . 'drclco2' ; 'FINS' ; 'FINS' ; * 'SI' TBT . 'THERMP' ; 'FINS' ; Mlq = 0. ; Mbron = Rmbron '*' Vtotal ; * drhpar = 0. ; * * *>> Boucle en temps * On va de (n-1) à (n) * * 'REPE' BCLTPS nbit ; Tknm = Tkn ; Tfnm = Tfn ; Rhonm = Rhon; * *>>1 Gestion de la fréquence de préconditionnement calprec = VRAI ; 'SINO' ; calprec = FAUX ; 'FINS' ; 'SI' ('EGA' nbit 0) ; 'QUIT' BCLTPS ; 'FINS' ; *>>1 Gestion de la fréquence de préconditionnement FIN * * *>>2 Gestion du rang du pas de temps, de sa valeur, de la liste des temps tic . 'NUPADT' = tic . 'NUPADT' '+' 1 ; Tps = tic . 'Tps' '+' tic . 'DT' ; tic . 'Tps' = Tps ; * 'SI' ( TBT . 'IMPR' '>EG' 1) ; 'MESS' '*************************************************************' '***********************' ; 'MESS' '*************************************************************' '***********************' ; ' Temps = ' tps 'Secondes Pas de temps : DT= ' tic . 'DT' ; 'FINS' ; *>>2 Gestion du rang du pas de temps, etc FIN * * *>>3 Gestion des E/S * *FD * Il n'y a pas de Sorties et de Breches évanescentes contrairement aux * anciennes syntaxe de Breche, Breche2 et Breche3 (Tbrechei=FAUX et tic * . 'Qj' existe) où on complète par 0. *FD * * Accumulation du débit massique (en kg/s) de chaque espèce xxx dans qoxxx Qovp = 0. ; Qlovp = 0. ; Qohe = 0. ; Qoh2 = 0. ; Qon2 = 0. ; Qoo2 = 0. ; Qoco = 0. ; Qoco2 = 0. ; * Débits de vapeur et de liquide pour les bilans (Minj et Mrest) Qeau = 0. ; Qlj = 0. ; * Accumulation du débit massique dans Qtot (kg/s), du débit volumique * dans srcs (m3/s), du débit enthalpique dans drh (J/s) Qtot = 0. ; drh = 0. ; srcs = 0. ; hmn = 0. ; * 'SI' TBT . 'TTsortie' ; 'REPE' BBRS NBR ; Qeau Qlj Qair Qhe Qh2 Qo2 Qn2 Qco Qco2 Qovp = Qovp '+' Qeau ; Qlovp = Qlovp '+' Qlj ; Qohe = Qohe '+' Qhe ; Qoh2 = Qoh2 '+' Qh2 ; Qon2 = Qon2 '+' Qn2 ; Qoo2 = Qoo2 '+' Qo2 ; Qoco = Qoco '+' Qco ; Qoco2 = Qoco2 '+' Qco2 ; 'FIN' BBRS ; 'FINS' ; 'SI' TBT . 'TTsortie' ; 'REPE' BBRS NBR ; Rvapj Rairj Rhej Rh2j Ro2j Rn2j Rco2j Rcoj Rgj Hj Ej asrc = Roj '*' ('ABS' src) ; Qtot = Qtot '+' (aex '*' asrc) ; drh = drh '+' (Qj '*' (Hj - Hmn) '*' aex) ; srcs = srcs '+' (aex '*' src) ; Briches = rxt . 'Sorties' . (ibr . &BBRS) ; 'FINS' ; 'FIN' BBRS ; 'FINS' ; 'SI' TBT . 'TTbreche' ; Qovp = Qovp '+' Qeau ; Qlovp = Qlovp '+' Qlj ; Qohe = Qohe '+' Qhe ; Qoh2 = Qoh2 '+' Qh2 ; Qon2 = Qon2 '+' Qn2 ; Qoo2 = Qoo2 '+' Qo2 ; Qoco = Qoco '+' Qco ; Qoco2 = Qoco2 '+' Qco2 ; Qtot = Qtot '+' Qtotb ; drh = drh '+' drhb ; srcs = srcs '+' srcb ; 'FINS' ; * Qeau = Qovp ; Qlj = Qlovp ; *>>3 Gestion des E/S FIN * * *>>4 Gestion des sources diffuses * Accumulation du débit massique (en kg/s) de chaque espèce xxx dans qoxxx 'SI' TBT . 'TFIMP' ; 'REPE' BBFIMP NBFIMP ; Bfimp = rxt . 'XFIMP' . (ifimp . &BBFIMP) ; Smfpi = Bfimp . 'Smfpi' ; CKqt = Bfimp . 'Kqt' ; tic . CKqt = qft '/' Smfpi ; CKqeau = Bfimp . 'Kqeau' ; tic . CKqeau = qfeau '/' Smfpi ; CKqair = Bfimp . 'Kqair' ; tic . CKqair = qfair '/' Smfpi ; CKqhe = Bfimp . 'Kqhe' ; tic . CKqhe = qfhe '/' Smfpi; CKqh2 = Bfimp . 'Kqh2' ; tic . CKqh2 = qfh2 '/' Smfpi ; CKqn2 = Bfimp . 'Kqn2' ; tic . CKqn2 = qfn2 '/' Smfpi ; CKqo2 = Bfimp . 'Kqo2' ; tic . CKqo2 = qfo2 '/' Smfpi ; CKqco = Bfimp . 'Kqco' ; tic . CKqco = qfco '/' Smfpi ; CKqco2 = Bfimp . 'Kqco2' ; tic . CKqco2 = qfco2 '/' Smfpi ; Qovp = Qovp '+' Qfeau ; Qohe = Qohe '+' Qfhe ; Qoh2 = Qoh2 '+' Qfh2 ; Qon2 = Qon2 '+' Qfn2 ; Qoo2 = Qoo2 '+' Qfo2 ; Qoco = Qoco '+' Qfco ; Qoco2 = Qoco2 '+' Qfco2 ; 'FIN' BBFIMP ; 'FINS'; *>>4 Gestion des sources diffuses FIN * * *>>5 Gestion du flux de chaleur en paroi * phi = h(t)(Tg-Tw(t)), mise à jour de Tw(t) et [h si h donné] *FD * (h(t) par une PROCPERSO ou la condensation en paroi) *FD 'SI' TBT . 'TTIMP' ; 'REPE' BBTIMP NBTIMP ; Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ; CTBP1 = Btimp . 'TBP1' ; CKH1 = Btimp . 'KH1' ; tic . CKH1 = Btimp . 'ECHAN' ; 'FINS' ; 'FIN' BBTIMP ; 'FINS' ; 'SI' TBT . 'TECHANP' ; tic . 'TBP0' = 'KCHT' RXT . 'GEO' . '$mtp0' 'SCAL' 'SOMMET' rxt . 'ECHANP' . 'TMUR' ; 'FINS' ; tic . 'KH0' = 'KCHT' RXT . 'GEO' . '$mtp0' 'SCAL' 'CENTRE' rxt . 'ECHANP' . 'ECHAN' ; 'FINS' ; 'FINS' ; *>>5 Gestion du flux de chaleur en paroi FIN * * *>>6 Traitement de l'aspersion 'SI' TBT . 'ASPER ' ; t = rxt.'scenasp'.'t' ; $aspinj = GEO.'$aspinj' ; $toitf = GEO.'$toitf' ; * vnj = 'KCHT' $aspinj 'VECT' 'SOMMET' 'COMP' * ('MOTS' 1VN 2VN 3VN) (0.0 0.0 vzinj) ; 'SI' (DIM3D) ; 'SINO' ; *-------------------------------------------------------------- * modif Tojo 12/07/2007 * * * mise en place de vecteurs inclinés conformément * à l'angle d'ouverture du jet * ici l'inclinaison est fixée à 30° * une prochaine évolution pourrait consister à mettre * l'angle d'ouverture comme donnée d'entrée * dans la table scenasp * *-------------------------------------------------------------- * z0 = (sin(300. '*' cc1)) '*' ((cos(300. '*' cc1)) '**' (-1.0)); z0 = z0 '*' (vzinj '*' -1.) ; z1 = z0 '*' 0. ; z1 = z1 '+' vzinj; vnj1 = ux0 et uy0; * *-------------------------------------------------------------- 'FINS' ; *--------------------fin modif Tojo Juillet 2007--------------- 'FINS'; *>>6 Traitement de l'aspersion FIN * * *>>7 Initialisation aux valeurs de début de pas de temps (n-1) Rgpnm = Rgpn ; Cvmnm = Cvmn ; Gamnm = Gamn ; Cpmnm = Cpmn ; Ptmnm = Ptmn ; Rhomnm = Rhomn ; Remnm = Remn ; Rmairnm = Rmairn ; Rmvnm = Rmvn ; Rmvgnm = Rmvgn ; Rmliqnm = Rmliqn ; Rmbronm = Rmbron ; Mbronm = Mbron ; Rmhenm = Rmhen ; Rmh2nm = Rmh2n ; Rmn2nm = Rmn2n ; Rmo2nm = Rmo2n ; Rmconm = Rmcon ; Rmco2nm = Rmco2n ; Emurnm = Emurn ; 'SI' TBT.'ASPER ' ; 'SINO' ; Qasp = 0.0 ; Easp = 0.0 ; Hasp = 0.0 ; 'FINS' ; Qcnm = Qcn ; Econdnm = Econdn ; Econvnm = Econvn ; Hcondnm = Hcondn ; Mcondmnm = Mcondmn ; 'SI' TBT . 'VAPEUR' ; 'SI' TBT . 'TPAROIF' ; 'FINS' ; * FD : Ne sert a rien 'SI' TBT . 'TTIMP' ; 'REPE' BBTIMP NBTIMP ; Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ; CMcond1 = Btimp . 'Mcond1' ; 'FIN' BBTIMP ; 'FINS' ; 'SI' TBT . 'TECHANP' ; 'FINS' ; * FD : Ne sert a rien 'FINS' ; *>>7 Initialisation au début de pas de temps (n-1)FIN * * *>>8 Initialisation des champs variables pour TF 'SI' TBT . 'THERMP' ; tic . 'KHEW' = tic . 'KHW' / (Rhomnm '*' Cpmnm) ; tic . 'LHEW' = -1.0 * tic . 'KHEW' ; tic . 'LHW' = -1.0 * tic . 'KHW' ; 'SI' tbt . 'THERCO' ; 'SINO' ; 'FINS' ; 'FINS' ; 'FINS' ; 'SI' TBT . 'TTIMP' ; 'REPE' BBTIMP NBTIMP ; Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ; CKHE1 = Btimp . 'KHE1' ; CKH1 = Btimp . 'KH1' ; tic . CKHE1 = tic . CKH1 '/' (Rhomnm '*' Cpmnm) ; 'FIN' BBTIMP ; 'FINS'; 'SI' TBT . 'TECHANP' ; tic . 'KHE0' = tic . 'KH0' '/' (Rhomnm '*' Cpmnm) ; 'FINS'; *>>8 Initialisation des champs variables pour TF FIN * * *>>10 Gestion des recombineurs : * * Bilan 0D : Débit enthalpique (drhpar) et bilans de masse à cause de la * combustion et de la décomposition de l'air en N2 et O2. Comme Qin=Qout * aucune variation globale de la masse globale. * * Les conditions aux limites sont stockées dans rxt . 'RECOMB' . indice * pour la vitesse et les densités partielles. 'SI' TBT . 'TRECOMB' ; 'SI' TBT . 'VAPEUR' ; Qovp = Qovp '+' QO_H2Op ; 'FINS' ; 'SI' TBT . 'TH2' ; Qoh2 = Qoh2 '+' QO_H2p ; 'FINS' ; 'SI' TBT . 'TN2' ; Qon2 = Qon2 '+' QO_N2p ; 'FINS' ; 'SI' TBT . 'TO2' ; Qoo2 = Qoo2 '+' QO_O2p ; 'FINS' ; 'FINS' ; *>>10 Gestion des recombineurs FIN * * *>>11 Avancement et stockage des grandeurs moyennes 0D au temps (n) * à partir de l'intégrale des conditions aux limites * (E/S, parois, PAR) drh = drh '-' (Econvnm '-' Easp) '-' (Hcondnm '-' Hasp) '+' drhpar ; Qtot = Qtot '+' Qasp '-' Qcnm ; ' Htot ' (Hcondnm '-' Hasp) ' drh=' drh ; * *>>11.1 Calcul par bilan 0D de Rhomn et Remn au temps (n) *FD *WARNING : On suppose que la masse est constante en ouvert *WARNING : et Remn = Rho(n-1) Cv(n-1) Tk(n-1) en ouvert *'SI' TBT . 'Tsortie' ; * Rhomn = Rhomnm ; * Remn = ('SOMT' (Diag * Rhonm * cvmnm * Tknm)) '/' VTotal ; * tic . 'Rhomn' = tic . 'Rhomn' 'ET' ('PROG' Rhomn) ; * tic . 'Remn' = tic . 'Remn' 'ET' ('PROG' Remn) ; *'SINO' ; (Rhomnm '+' (tic . 'DT' '*' Qtot '/' VTotal))) ; *DEBUG *'MESS' 'DEBUG Rhomnm Qtot Rhomn' ; *'MESS' rhomnm ' ' (rhomnm '*' Vtotal) ; *'MESS' qtot ' ' (tic . 'DT' '*' Qtot) ; *'MESS' rhomn ' ' (rhomn '*' Vtotal) ; *DEBUG (Remnm '+' (tic . 'DT' '*' drh '/' VTotal))); *'FINS' ; *>>11.1 Calcul Rhomn et Remn FIN * * *>>11.2 Calcul de l'énergie par condensation (il manque la convection) * WARNING : Lorsque Lv dépendra de Tw on ne pourra pas 'SI' TBT.'THERMP' ; Emurn = Emurnm '+' ( tic . 'DT' '*' Qcnm '*' TBT . 'Lv') ; 'FINS' ; *>>11.2 Calcul de l'énergie par condensation (il manque la convection) * * *>>11.3 Calcul par bilan 0D des densités moyennes au temps (n) *FD *WARNING Pourquoi s'intéresser au brouillard en suspension ? *WARNING C'est bien Rmbronm car le brouillard est en (n-1) *FD Rmairn = Rhomn ; 'SI' TBT . 'VAPEUR' ; (Rmvgnm '+' (tic . 'DT' '*' (Qovp '-' Qcnm '+' Qasp) '/' VTotal ))) ; Rmvn = Rmvgn '-' Rmbronm ; Rmairn = Rmairn '-' Rmvn ; 'FINS' ; 'SI' TBT . 'THE' ; (Rmhenm '+' (tic . 'DT' '*' Qohe '/' VTotal ))) ; Rmairn = Rmairn '-' Rmhen ; 'FINS' ; 'SI' TBT . 'TH2' ; (Rmh2nm '+' (tic . 'DT' '*' Qoh2 '/' VTotal ))) ; Rmairn = Rmairn '-' Rmh2n ; 'FINS' ; 'SI' TBT . 'TN2' ; (Rmn2nm '+' (tic . 'DT' '*' Qon2 '/' VTotal ))) ; Rmairn = Rmairn '-' Rmn2n ; 'FINS' ; 'SI' TBT . 'TO2' ; (Rmo2nm '+' (tic . 'DT' '*' Qoo2 '/' VTotal ))) ; Rmairn = Rmairn '-' Rmo2n ; 'FINS' ; 'SI' TBT . 'TCO' ; (Rmconm '+' (tic . 'DT' '*' Qoco '/' VTotal ))) ; Rmairn = Rmairn '-' Rmcon ; 'FINS' ; 'SI' TBT . 'TCO2'; (Rmco2nm '+' (tic . 'DT' '*' Qoco2 '/' VTotal ))) ; Rmairn = Rmairn '-' Rmco2n ; 'FINS' ; 'SI' (Rmairn '<' 0.0) ; 'FINS' ; *>>11.3 Calcul par bilan 0D des densités moyennes au temps (n)FIN * * *>>12. Appel à la procédure PERSO 'SI' TBT . 'PERSO' ; 'SI' (TBT . 'IMPR' '>EG' 2) ; ' *' ; 'FINS' ; 'SI' (TBT . 'IMPR' '>EG' 2) ; ' *' ; 'FINS' ; 'FINS' ; *>>12. Appel à la procédure PERSO FIN * * * *>>13. Résolution des EDP * * * Terme source s de l'equation de QDM : divu = s tic . 'DSRC' = ((-1.) '*' srcs '/' VTotal) ; *DEBUG *tic . 'DSRC' = ((-1.) '*' srcs '/' VTotal) ; *'MESS' 'DSRC ' tic . 'DSRC' ; *DEBUG rv = TBT . 'RV' ; *DEBUG *tic . 'DSN2' = -1. '*' tic . 'DSRC' ; *DEBUG * *>>13.1 CLIM injection u.n=uinj 'SI' TBT . 'TTsortie' ; 'REPE' BBRS NBR ; Briches = rxt . 'Sorties' . (ibr.&BBRS) ; gjo = gjo 'ET' (Briches . 'gj') ; 'FIN' BBRS ; 'FINS' ; 'SI' TBT . 'TTbreche' ; ** NBR = 'DIME' rxt . 'Breches' ; ** ibr = 'INDE' rxt . 'Breches' ; ** 'REPE' BBRS NBR ; ** Briches = rxt . 'Breches' . (ibr.&BBRS) ; ** gjo = gjo 'ET' (Briches . 'gj') ; gjo = gjo 'ET' (tic . 'Breches' . 'UN') ; ** 'FIN' BBRS ; 'FINS' ; * * Modèle K-Epsilon EFM1 : K-Epsilon aux E/S *FD *WARNING Où le cas K-EPSILON Implicite est-il pris en compte ? *FD 'SI' TBT . 'TTsortie'; Repeter BBRS NBR ; Briches=rxt.'Sorties'.(ibr.&BBRS) ; * mess ' Sorties CL pour QDM' (ibr.&BBRS) ; gjs=Briches.'gj' ; gjo= gjo et gk ; gjo= gjo et ge ; FIN BBRS ; FINS ; Si (TBT.'TTbreche') ; ** NBR=dime rxt.'Breches' ; ** ibr=index (rxt.'Breches') ; ** Repeter BBRS NBR ; ** Briches=rxt.'Breches'.(ibr.&BBRS) ; * mess ' Breches CL pour QDM' (ibr.&BBRS) ; ** gjs=Briches.'gj' ; gjs = tic . 'Breches' . 'UN' ; gjo= gjo et gk ; gjo= gjo et ge ; ** FIN BBRS ; FINS ; *---- Modèle K-Epsilon EFM1 -- FIN ------------------------- 'FINS' ; * Si il y a au moins une brèche ou une sortie 'SI' (TBT . 'TTbreche' 'OU' TBT . 'TTsortie') ; rv . 'CLIM' = (rv . 'CLIM' '-' rv . 'CLIM') '+' gjo ; 'FINS' ; * Si il y a des PARs 'SI' TBT . 'TRECOMB' ; Urec0 = tic . 'RECOMB' . 'UN' ; 'SI' (TBT . 'TTbreche' 'OU' TBT . 'TTsortie') ; rv . 'CLIM' = rv . 'CLIM' '+' Urec0 ; 'SINO' ; rv . 'CLIM' = (rv . 'CLIM' '-' rv . 'CLIM') '+' Urec0 ; 'FINS' ; 'FINS' ; *>>13.1 CLIM injection u.n=uinjFIN * 'SI' (TBT . 'IMPR' '>EG' 2) ; 'FINS' ; * *>>13.2 Actualisation de tic . 'NUEFF' et tic . 'MUT' *FD *WARNING TTbreches et TTsortie non pris en compte pour K-EPSILON *FD * tic . 'NU' = tic . 'Mu' '/' Rhomnm ; 'SI' TBT . 'FPAROI' ; tic . 'YP' = rxt . 'YP' ; 'FINS' ; *---- Modèle viscosité tourbillonnaire constante ----------- 'SI' ('EGA' TBT . 'MODTURB' 'NUTURB') ; tic . 'NUEFF' = tic . 'NU' + rxt . 'NUT' ; 'FINS' ; *---- Modèle viscosité tourbillonnaire constante FIN *---- Modèle de longueur de mélange ------------------------ 'SI' ('EGA' TBT . 'MODTURB' 'LMEL') ; un = tic . 'UN' ; lm = TBT . 'LMEL' ; NUT = lm '*' lm '*' (P**0.5) ; * Réalisabilité sur Nut Nu = tic . 'NU' ; a = 5000. '*' Nu ; al = 0.8 ; ala = al '*' a ; b = ala '*' ((2. '*' (1.-al)) '**' (-1.)) ; 'SI' (TBT . 'IMPR' '>EG' 2) ; 'FINS' ; tic . 'NUEFF' = NUT '+' tic . 'NU' ; 'FINS' ; *---- Modèle de longueur de mélange FIN *---- Modèle K-Epsilon Implicite --------------------------- 'ET' ('NON' ('EGA' TBT . 'FEF' 'EFM1'))) ; cnu = 0.09 ; c1 = 1.44 ; c2 = 1.92 ; sgk = 1. ; un = tic . 'UN' ; Rrk = TBT . 'Rrk' ; Rre = TBT . 'Rre' ; En = tic . 'EN' ; Kn = tic . 'KN' ; * Réalisabilité sur Nut : Nut > 1.e-15 *Nut=Cnu * Kn * Kn * (inve En) ; Nut = Lmi '*' Lma '*' (P '**' 0.5) ; Nut = (ik*Nut) '+' ((1.-ik)*1.e-15) ; * Nut P < En *a= En * (inve P) * 0.133 ; *a = En * ('INVE' P) * 0.133 ; *al = 0.8 ; *ala = al*a; *b = ala*((2.*(1.-al))**(-1.)) ; *ik = 'MASQ' Nut 'INFERIEUR' ala ; *Nut=(ik*Nut)+( (1.-ik)*a*(Nut+b)*(inve (a+Nut+b))) ; *Nut = kcht $vtf scal sommet Nut ; Sk = Nut * P - ((KN**1.5)*(1./Lma)) ; Se = EsK '*' (Nut * P - (c2*En)) ; tic . 'Se' = Se ; tic . 'Sk' = Sk ; tic . 'NUEFF' = NUT + tic . 'NU' ; * 'SI' (TBT . 'TTbreche' 'OU' TBT . 'TTsortie') ; 'MESS' 'K epsilon au revoir' ; Rrk . 'CLIM' = cpv ; 'FINS' ; Rrk . 'METHINV' . 'CALPREC' = calprec; EXEC Rrk ; Kn= tic . 'KN' ; tic . 'KN' = Kn ; * 'SI' (TBT . 'TTbreche' 'OU' TBT . 'TTsortie') ; 'MESS' 'K epsilon au revoir' ; Rre . 'CLIM' = cpv ; 'FINS' ; Rre . 'METHINV' . 'CALPREC' = calprec; EXEC Rre ; En= tic . 'EN' ; tic . 'EN' = En ; * Réalisabilité sur Nut Nu = tic . 'NU' ; a = 1500. '*' Nu ; al = 0.8 ; ala = al*a; b = ala*((2.*(1.-al))**(-1.)) ; tic . 'ala' = ala ; tic . 'nut' = nut ; Nutsnu = (1. '/' Nu) '*' Nut; 'SI' (TBT . 'IMPR' '>EG' 2) ; 'FINS' ; tic . 'NUEFF' = NUT + tic . 'NU' ; 'FINS' ; *---- Modèle K-Epsilon ImpliciteFIN *---- Modèle K-Epsilon EFM1 -------------------------------- *FD *WARNING D'ou vient tic . NUT ? *FD ('EGA' TBT . 'FEF' 'EFM1')) ; tic . 'NUEFF' = tic . 'NUT' + tic . 'NU' ; 'FINS' ; *---- Modèle K-Epsilon EFM1 FIN 'SINO' ; *---- Il n'y a pas de modèle de turbulence ----------------- tic . 'NUEFF' = tic . 'NU' ; 'FINS' ; tic . 'MUT' = tic . 'NUEFF' * Rhomnm ; *>>13.2 Actualisation de tic . 'NUEFF' et tic . 'MUT' FIN * * *>>13.3 Résolution rv . 'METHINV' . 'CALPREC' = calprec ; 'FINS' ; RV . 'MRESOP' = VRAI ; RV . 'TCPT' = rxt . 'TBT' . 'TCPT' ; RV . 'TKPR' = rxt . 'TBT' . 'TKPR' ; RV . 'TRESOU' = rxt . 'TBT' . 'TRESOU' ; RV . 'IMPARA' = rxt . 'TBT' . 'IMPARA' ; * * NON TRTOUT = Aucun TKPR à VRAI (tout est séquentiel) * alors on résout vitesse-pression en tête *DEBUG *'MESS' 'DEBUG CLIM en VITESSE' ; *'LIST' rv . 'CLIM' ; *DEBUG 'SI' ('NON' TBT . 'TRTOUT') ; EXEC rv ; 'FINS' ; *DEBUG *'LIST' rxt . 'TIC' . 'UN' ; *DEBUG * * Pour le // on concatène dans rv les résolutions à faire en // * Puis on résout en // vitesse-pression et TKPR ad'hoc 'SI' TBT . 'TRTF' ; rtf = rv ; *FD * Pourquoi n'a-t-on pas Rtf . 'resmn' *FD rtf . 'METHINV' . 'CALPREC' = calprec ; 'FINS' ; 'SI' (TBT . 'VAPEUR' 'ET' TBT . 'TRrvap') ; Rrvap = rv ; *FD * Pourquoi n'a-t-on pas Rrvap . 'resmn' *FD Rrvap . 'METHINV' . 'CALPREC' = calprec ; 'FINS' ; 'SI' (TBT . 'THE' 'ET' TBT . 'TRrhe') ; Rrhe = rv ; Rrhe . 'METHINV' . 'CALPREC' = calprec ; 'FINS' ; 'SI' (TBT . 'TH2' 'ET' TBT . 'TRrh2') ; Rrh2 = rv ; Rrh2 . 'METHINV' . 'CALPREC' = calprec ; 'FINS' ; 'SI' (TBT . 'TO2' 'ET' TBT . 'TRro2') ; Rro2 = rv ; Rro2 . 'METHINV' . 'CALPREC' = calprec ; 'FINS' ; 'SI' (TBT . 'TN2' 'ET' TBT . 'TRrn2') ; Rrn2 = rv ; Rrn2 . 'METHINV' . 'CALPREC' = calprec ; 'FINS' ; 'SI' (TBT . 'TCO2' 'ET' TBT . 'TRrco2') ; Rrco2 = rv ; Rrco2 . 'METHINV' . 'CALPREC' = calprec ; 'FINS' ; 'SI' (TBT . 'TCO' 'ET' TBT . 'TRrco') ; Rrco = rv ; Rrco . 'METHINV' . 'CALPREC' = calprec ; 'FINS' ; 'SI' TBT . 'TRTOUT' ; EXEC rv ; 'FINS' ; * * Résolution séquentielle des champs scalaires restant * (ajout de la CLIM dans CLINC avant l'appel à EXEC) *FD * Les densités sont bornées par 1D-10 et MaxRHO dans CORMASSE * On le faisait 2 fois avant : ici et dans CORMASSE ! *FD 'SI' (TBT . 'VAPEUR' 'ET' ('NON' TBT . 'TRrvap')) ; Rrvap = TBT . 'Rrvap' ; *FD * Pourquoi n'a-t-on pas Rrvap . 'resmn' = tic . 'Rvp' NOMC 'RVP' ; ? *FD Rrvap . 'METHINV' . 'CALPREC' = calprec ; EXEC Rrvap ; 'FINS'; 'SI' (TBT . 'THE' 'ET' ('NON' TBT . 'TRrhe')) ; Rrhe = TBT . 'Rrhe' ; Rrhe . 'METHINV' . 'CALPREC' = calprec ; EXEC Rrhe ; 'FINS' ; 'SI' (TBT . 'TH2' 'ET' ('NON' TBT . 'TRrh2')) ; Rrh2 = TBT . 'Rrh2' ; Rrh2 . 'METHINV' . 'CALPREC' = calprec ; EXEC Rrh2 ; 'FINS' ; 'SI' (TBT . 'TO2' 'ET' ('NON' TBT . 'TRro2')) ; Rro2 = TBT . 'Rro2' ; Rro2 . 'METHINV' . 'CALPREC' = calprec ; EXEC Rro2 ; 'FINS' ; 'SI' (TBT . 'TN2' 'ET' ('NON' TBT . 'TRrn2')) ; Rrn2 = TBT . 'Rrn2' ; Rrn2 . 'METHINV' . 'CALPREC' = calprec ; EXEC Rrn2 ; 'FINS' ; 'SI' (TBT . 'TCO2' 'ET' ('NON' TBT . 'TRrco2')) ; Rrco2 = TBT . 'Rrco2' ; Rrco2 . 'METHINV' . 'CALPREC' = calprec ; EXEC Rrco2 ; 'FINS' ; 'SI' (TBT . 'TCO' 'ET' ('NON' TBT . 'TRrco')) ; Rrco = TBT . 'Rrco' ; Rrco . 'METHINV' . 'CALPREC' = calprec ; EXEC Rrco ; 'FINS' ; * * Résolution séquentielle de la température * (ajout de la CLIM dans CLINC avant l'appel à EXEC) 'SI' ('NON' TBT . 'TRTF') ; rtf = TBT . 'RTF' ; rtf . 'METHINV' . 'CALPREC' = calprec ; EXEC rtf ; 'FINS' ; * * Résolution séquentielle de la Tparoi découplée du fluide * (le flux tic . 'FHP1' est calculé dans CONDENS) 'SI' TBT . 'THERMP' ; 'SI' ('NON' TBT . 'THERCO') ; rtp = TBT . 'RTP' ; 'SI' (TBT . 'IMPR' '>EG' 2) ; 'FINS' ; rtp . 'METHINV' . 'CALPREC' = calprec ; EXEC rtp ; 'FINS' ; Tp = tic . 'TP' ; 'FINS' ; * *>>13.3 Résolution FIN * * * *>>13.4 Bornage de TF(n) * * Calcul de Tfmi, minimum de la condition initiale et des conditions aux limites * Mise à jour de Ltbpi ici en cas de procédure PERSO (appel en 12.) CHrtf1 = rtf . 'CLIM'; *FD * C'est quoi ce test charabia MArtf1=0 ? *FD 'SI' ('NEG' MArtf1 0); 'FINS' ; 'SI' TBT.'ASPER ' ; 'FINS' ; 'SI' TBT.'THERMP' ; 'FINS' ; 'SI' TBT . 'TTIMP' ; 'REPE' BBTIMP NBTIMP ; Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ; tfmii = tfmii 'ET' ptbp1 ; Btimp . 'Ltbpi' = Btimp . 'Ltbpi' 'ET' ptbp1 ; 'FIN' BBTIMP ; 'FINS' ; 'SI' TBT.'TECHANP' ; 'FINS' ; * * Borne inférieure de la température Tf(n) par Tfmi *FD * On n'a pas de raison d'imposer la positivité sur Tf (en C) * Tfn = 'KOPS' Tfn '|<' ('MAXI' ('PROG' tfmi 0.)) ; *FD tic . 'TF' = Tfn ; Tkn = Tfn '+' 273.15 ; *>>13.4 Bornage de TF(n) FIN * * *>>13.5 Aspersion 'SI' TBT.'ASPER ' ; *** RVN *** Velocita gocce rvn = TBT.'RVN' ; rvn.'CLIM' = (rvn.'CLIM' '-' rvn.'CLIM') '+' vnj ; rvn.'METHINV'.'CALPREC' = calprec ; EXEC rvn ; *** RXD *** Frazione volume fase dispersa rxd = TBT.'RXD' ; rxd.'CLIM' = (rxd.'CLIM' '-' rxd.'CLIM') '+' xdj ; rxd.'METHINV'.'CALPREC' = calprec ; EXEC rxd ; *** RTD *** Temperature fase dispersa rtd = TBT.'RTD' ; rtd.'CLIM' = (rtd.'CLIM' '-' rtd.'CLIM') '+' tdj ; rtd.'METHINV'.'CALPREC' = calprec ; EXEC rtd ; *** RDD *** Diametro fase dispersa rdd = TBT.'RDD' ; rdd.'CLIM' = (rdd.'CLIM' '-' rdd.'CLIM') '+' ddj ; rdd.'METHINV'.'CALPREC' = calprec ; EXEC rdd ; 'FINS' ; *>>13.5 Aspersion FIN * * * *>>13. Résolution des EDP FIN * * * *>>14. Contraintes bilans de masse 0D drclair = 0. ; 'SI' TBT . 'VAPEUR' ; drclair = drclair '+' drclvp ; 'SI' corlim ; Rmvgn2 = Rmvgn ; 'SINO' ; Rmvgn2 = Rmvgn '+' drclvp ; 'FINS' ; * Rmvn = Rmvgn '-' Rmbronm ; MV0D = Rmvgn2 '*' Vtotal ; tic . 'RVP' = Rvp ; tic . 'ROVP' = tic . 'RVP' ; tic . 'Mdrvap' = tic . 'Mdrvap' 'ET' (dRhov '*' Vtotal) ; 'SINO' ; tic . 'RVP' = Rvp ; 'FINS' ; 'SI' TBT . 'THE' ; drclair = drclair '+' drclhe ; 'SI' corlim ; Rmhen2 = Rmhen ; 'SINO' ; Rmhen2 = Rmhen '+' drclhe ; 'FINS' ; MHE0D = Rmhen2 '*' Vtotal ; tic . 'RHE' = Rhe ; tic . 'Mdrhe' = tic . 'Mdrhe' 'ET' (dRhohe '*' Vtotal) ; 'FINS' ; 'SI' TBT . 'TH2' ; drclair = drclair '+' drclh2 ; 'SI' corlim ; Rmh2n2 = Rmh2n ; 'SINO' ; Rmh2n2 = Rmh2n '+' drclh2 ; 'FINS' ; MH20D = Rmh2n2 '*' Vtotal ; tic . 'RH2' = Rh2 ; tic . 'Mdrh2' = tic . 'Mdrh2' 'ET' (dRhoh2 '*' Vtotal) ; 'FINS' ; 'SI' TBT . 'TO2' ; drclair = drclair '+' drclo2 ; 'SI' corlim ; Rmo2n2 = Rmo2n ; 'SINO' ; Rmo2n2 = Rmo2n '+' drclo2 ; 'FINS' ; MO20D = Rmo2n2 '*' Vtotal ; tic . 'RO2' = Ro2 ; tic . 'Mdro2' = tic . 'Mdro2' 'ET' (dRhoo2 '*' Vtotal) ; 'FINS' ; 'SI' TBT . 'TN2' ; drclair = drclair '+' drcln2 ; 'SI' corlim ; Rmn2n2 = Rmn2n ; 'SINO' ; Rmn2n2 = Rmn2n '+' drcln2 ; 'FINS' ; MN20D = Rmn2n2 '*' Vtotal ; tic . 'RN2' = Rn2 ; tic . 'Mdrn2' = tic . 'Mdrn2' 'ET' (dRhon2 '*' Vtotal) ; 'FINS' ; 'SI' TBT . 'TCO' ; drclair = drclair '+' drclco ; 'SI' corlim ; Rmcon2 = Rmcon ; 'SINO' ; Rmcon2 = Rmcon '+' drclco ; 'FINS' ; MCO0D = Rmcon2 '*' Vtotal ; tic . 'RCO' = Rco ; tic . 'Mdrco' = tic . 'Mdrco' 'ET' (dRhoco '*' Vtotal) ; 'FINS' ; 'SI' TBT . 'TCO2' ; drclair = drclair '+' drclco2 ; 'SI' corlim ; Rmco2n2 = Rmco2n ; 'SINO' ; Rmco2n2 = Rmco2n '+' drclco2 ; 'FINS' ; MCO20D = Rmco2n2 '*' Vtotal ; tic . 'RCO2' = Rco2 ; tic . 'Mdrco2' = tic . 'Mdrco2' 'ET' (dRhoco2 '*' Vtotal) ; 'FINS' ; *>>14. Contraintes bilans de masse 0D FIN * * *>>15. Calcul de la PRESSION P(n) et de la densité Rho(n) * * Condensation en masse à Tf=cst 'SI' TBT . 'CONDMAS' ; * * Densité de vapeur avant la séparation de phase sans brouillard initial Rho_b = 0. '*' Rvp ; Rho_v = Rvp '+' Rho_b ; * * Pressions de vapeur, à saturation et totale (locale) * P_v = Rvp '*' tbt . 'Rgvap' '*' Tkn ; * * Titre thermodynamique (locale) * H_v = 'VARI' 'HVS' P_v Tkn ; * H_vs = 'VARI' 'HVS' P_vs Tkn ; * H_l = 'VARI' 'HLS' P_tot Tkn ; * xth = (H_v '-' H_l) '/' (H_vs '-' H_l) ; Rho_min = Rho_v '+' Rho_vs '-' ('ABS' (Rho_v '-' Rho_vs)) '/' 2. ; xth = Rho_min '/' Rho_v ; alpha = 1. ; * txt1 = 'CHAI' 'Titre vapeur au temps t=' tps ; * 'TRAC' vtf ('CONT' vtf) xth 'TITR' txt1 'NCLK' ; * 'TRAC' vtf ('CONT' vtf) xth ; * mm1 = 'MINI' xth ; mm2 = 'MAXI' xth ; 'MESS' 'xth mini maxi' ' ' mm1 ' ' mm2; * * Séparation de phase avec relaxation (sur-saturation locale) Rho_b = 0. * (1. '-' alpha) '*' (1. '-' xth) '*' Rho_v ; Rho_l = alpha '*' (1. '-' xth) '*' Rho_v ; Rho_v = Rho_v '-' Rho_l ; * * Masse condensée (globale), correction de pression et d'énergie 0D associée * DE_cm = M_l '/' (Gamnm '-' 1.) ; Ptmn = Ptmn '-' DP_cm ; Remn = Remn '-' DE_cm ; *FD * ROVP est appelé à disparaitre car le brouillard n'a rien à faire dans * RVP ou alors RVP sert à transporter la pluie et le brouillard mais * comment séparer ensuite pour avoir la pluie à l'instant d'avant ? *FD * * Sauvegarde 0D au temps (n) Mliqn = M_l ; Mbron = M_b ; Mcondmn = Mcondmnm '+' M_l ; Rhomn = Rhomn '+' (Mbronm '-' (M_l '+' M_b) '/' Vtotal) ; Rmvn = M_v '/' Vtotal ; Rmliqn = M_l '/' Vtotal ; Rmbron = M_b '/' Vtotal ; Rmvgn = Rmvn '+' Rmbron ; Qcmn = M_l '/' tic . 'DT' ; * * Sauvegarde CFD Rvp = Rho_v ; tic . 'RBRO' = Rho_b ; tic . 'RVP' = Rho_v '+' Rho_b ; tic . 'ROVP' = Rho_v ; * 'SINO' ; 'FINS' ; * * Incrément de pression et densité au temp (n) Pta = (Gamnm '-' 1.) '*' Remn ; DPDT = (Pta '-' Ptmnm) '/' tic . 'DT' ; Rhon = Ptmn '*' irtf ; * * Sauvegarde tic . 'RHO' = Rhon ; *>>15. Calcul de la PRESSION P(n) et de la densité Rhot(n) FIN * * *>>16. Contrainte sur la densité après condensation en masse dRho = ((Rhomn '*' VTotal) '-' Rhomnt) '/' Vtotal ; tic . 'RHO' = Rhon ; *DEBUG *'MESS' 'DEBUG drho RHO 16.' ; *'LIST' tic . 'drho' ; *'LIST' tic . 'RHO' ; *DEBUG *>>16. Contrainte sur la densité après condensation en masse FIN * * *>>17. Contrainte sur la densité de l'air *FD * On se fout du transport de l'air *FD *'SI' TBT . 'TAIR' ; * Rair = tic . 'RAIR' ; *'SINO' ; * Rair = Rhon - Rvp - Rhe - Rh2 - Ro2 - Rn2 - Rco2 - Rco; * tic . 'RAIR' = Rair ; *'FINS' ; *FD * Pourquoi Mdrair n'est-il pas nul ? On a pourtant corrigé Rhon, * la vapeur et chaque incondensable ! *FD Rair = Rhon - Rvp - Rhe - Rh2 - Ro2 - Rn2 - Rco2 - Rco ; tic . 'RAIR' = Rair ; 'SI' (mRairn '<' 0.0) ; 'FINS' ; tic . 'RAIRPB' = Rair ; *DEBUG *'MESS' 'DEBUG Rair 17.' ; *'LIST' Rair ; *'LIST' tic . 'RAIR' ; *'MESS' 'Rmairn :' rmairn ' ' 'MAIR0D :' (Rmairn '*' Vtotal) ; *VOLi = 'DOMA' $vtf 'XXDIAGSI' ; *VTotal = 'SOMT' VOLi ; *Rair = 'KOPS' Rair '|<' 1.e-10 ; *Rair = 'KOPS' Rair '>|' MaxRho ; *MiCFD = 'SOMT' (VOLi '*' Rair) ; *'MESS' 'MICFD :' micfd ; *'LIST' rair ; *DEBUG 'SI' corlim ; Rmairn2 = Rmairn ; 'SINO' ; Rmairn2 = Rmairn '-' drclair ; 'FINS' ; 'SI' (Rmairn '<' 0.0) ; 'FINS' ; *Rmairn2 = Rmairn ; MAIR0D = Rmairn2 '*' Vtotal ; *dRhoair Rdumy MAIRMD = CORMASSE $vtf tic . 'RAIR' MAIR0D MaxRho ; tic . 'RAIR' = Rair ; *dRhoair Rair2 MAIRMD = CORMASSE $vtf Rair MAIR0D MaxRho ; *tic . 'RAIR' = Rair2 ; *Rair = Rair2 ; tic . 'Mdrair' = tic . 'Mdrair' 'ET' (dRhoair '*' Vtotal) ; *DEBUG *'LIST' Rair ; *'MESS' 'MAIRMD :' MAIRMD ' ' 'Mdrair :' (dRhoair '*' Vtotal) ; *DEBUG *>>17. Contrainte sur la densité de l'air FIN * * *>>18. Contrainte 0D sur Tf / Remn = Remnm +dt*drh/V *FD * WARNING Cv n'est pas actualise * WARNING On ne considere pas le brouillard *FD 'SI' TBT . 'CORTEMP' ; dE = (Remn '*' Vtotal) '-' Emnt ; 'SINO' ; dE = 0. ; 'FINS' ; Tkn = Tfn '+' 273.15 ; tic . 'TF' = Tfn ; *>>18. Contrainte 0D sur Tf FIN * *DEBUG *'LIST' xth ; *'LIST' TKN ; *DEBUG * *>>19. Conservation energie dans le mur *FD * WARNING A vérifier *FD 'SI' (TBT . 'THERMP' 'ET' ('NON' TBT . 'TPAROIS')) ; (tp01 '+' 273.15 ) ) ) '/' Vtotalp1 ; tic . 'TP' = Tp ; 'FINS' ; 'SI' TBT . 'TPAROIS' ; ROCP = 0.; 'REPE' BPRS NPAR ; Parois = rxt . 'PAROIS' . (ipr.&BPRS) ; Diagpi = GEO . (ipr . &BPRS) . 'Diagp' ; Rocpi = tic . CROCP ; ROCP = ROCP '+' (Rocpi '*' Diagpi) ; 'FIN' BPRS ; Diagp = GEO . 'Diagp' ; '/' Vtotalp ; tic . 'TP' = Tp ; 'FINS' ; *>>19. Conservation energie dans le murFIN * * *>>20. Température moyenne gaz et paroi Tkmn = (Remn '*' Vtotal) Tfmn = Tkmn - 273.15 ; * 'SI' TBT . 'THERMP' ; '/' GEO . 'VTotalp' ; 'FINS' ; *>>20. Température moyenne gaz et paroiFIN * *>>21. Actualisation des proprietes physiques * *>>21.1 Cp (Tfm) et mu(Tkm) *DEBUG *'MESS' 'Energie moyenne :' remn ; *'MESS' 'Temp moyenne :' tkmn ' ' tfmn ; *DEBUG Cpvap = TBT . 'Cpvap' ; *>>21.1 Cp (Tfm) et mu(Tkm) FIN * * *>>21.2 Mise à jour des fractions massiques Yi(n) *FD * Rhon a été calculé et corrigé pour avoir la masse 0D. * Inutile donc d'en remettre une couche. *FD Rhont = Rair + Rvp + Rhe + Rh2 + Ro2 + Rn2 + Rco + Rco2 ; 'SI' TBT . 'VAPEUR' ; Yair = Yair '-' Yvap ; tic . 'YVAP' = Yvap ; 'FINS' ; 'SI' TBT . 'THE' ; Yair = Yair '-' Yhe ; tic . 'YHE' = Yhe ; 'FINS' ; 'SI' TBT . 'TH2' ; Yair = Yair '-' Yh2 ; tic . 'YH2' = Yh2 ; 'FINS' ; 'SI' TBT . 'TO2' ; Yair = Yair '-' Yo2 ; tic . 'YO2' = Yo2 ; 'FINS' ; 'SI' TBT . 'TN2' ; Yair = Yair '-' Yn2 ; tic . 'YN2' = Yn2 ; 'FINS' ; 'SI' TBT . 'TCO2' ; Yair = Yair '-' Yco2 ; tic . 'YCO2' = Yco2 ; 'FINS' ; 'SI' TBT . 'TCO' ; Yair = Yair '-' Yco ; tic . 'YCO' = Yco ; 'FINS' ; tic . 'YAIR' = Yair ; *>>21.2 Mise à jour des fractions massiques Yi(n) FIN * * *>>21.3 Mise à jour des propriétés gaz (loi de mélange) * * Calcul de la constante des gaz du mélange Rgp Rgpn = (Rgvap '*' Yvap) '+' (Rgair '*' Yair) '+' (Rghe '*' Yhe ) '+' (Rgh2 '*' Yh2 ) '+' (Rgo2 '*' Yo2 ) '+' (Rgn2 '*' Yn2 ) '+' (Rgco '*' Yco ) '+' (Rgco2 '*' Yco2) ; * * Calcul du Cp du mélange Cp = (Cpvap '*' Yvap) '+' (Cpair '*' Yair) '+' (Cphe '*' Yhe ) '+' (Cph2 '*' Yh2 ) '+' (Cpo2 '*' Yo2 ) '+' (Cpn2 '*' Yn2 ) '+' (Cpco '*' Yco ) '+' (Cpco2 '*' Yco2) ; * * Calcul de la viscosité du mélange Mu Mu = (Muvap '*' Yvap) '+' (Muair '*' Yair) '+' (Muhe '*' Yhe ) '+' (Muh2 '*' Yh2 ) '+' (Muo2 '*' Yo2 ) '+' (Mun2 '*' Yn2 ) '+' (Muco '*' Yco ) '+' (Muco2 '*' Yco2) ; * * Calcul des moyennes de Rg, Cp, Cv et Gamma Cvmn = Cpmn '-' Rgpmn ; Gamn = Cpmn '/' Cvmn ; * tic . 'Mu' = Mu ; tic . 'Rgp' = Rgpn ; *>>21.3 Mise à jour des propriétés gaz FIN * *>>21. Actualisation des proprietes physiques FIN * * *>>22. Calcul du terme source de l'equation energie stf = DPDT '/' (Cpmn '*' Rhomn) ; tic.'STF' = stf ; *>>22. Calcul du terme source de l'equation energie FIN * * *>>23. Calcul de l'energie convective *FD * WARNING : Cette énergie sert à calculer la puissance perdue pour la * correction de l'énergie au pas de temps suivant. Mais c'est faux car * suivant THERCO on ne fait pas la même chose puisque le 'FLUX' n'est pas * le même ! *FD Econvw = 0.0 ; Econvi = 0.0 ; Econv0 = 0.0 ; 'SI' (TBT . 'THERMP' 'ET' TBT . 'TPAROIF') ; Tp = tic . 'TP' ; 'SI' tbt . 'THERCO' ; 'SINO' ; 'FINS' ; 'FINS' ; 'SI' TBT . 'TTIMP' ; 'REPE' BBTIMP NBTIMP ; Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ; Tbp1 = tic . (Btimp . 'TBP1') ; CKH1 = Btimp . 'KH1' ; Econvi = Econvi 'FIN' BBTIMP ; 'FINS' ; 'SI' TBT . 'TECHANP'; Tbp0 = tic . 'TBP0' ; 'FINS' ; Econvn = Econvw '+' Econvi '+' Econv0 ; *>>23. Calcul de l'energie convective FIN * * *>>24. Bilan Aspersion Easp = 0.0 ; Hasp = 0.0 ; Qasp = 0.0 ; 'SI' TBT . 'ASPER ' ; Td = tic . 'TD' ; Hgas = tic . 'HGAS' ; '*' Rhomnm '*' Cpmnm ; srvp = tic . 'SRVP' ; *****modif 2005 (température goutte max et min) Td = tic . 'TD' ; 'FINS' ; *>>24. Bilan Aspersion FIN * * *>>25. Prediction de la condensation pour le pas suivant * Qc = Qcw + Qci + Qc1 + Qc2 + QC3 + Qc0 * paroif $mtpi $mtp1 $mtp2 $mtp3 $mtp0 * TTIMP TIMP? TIMP2 TIMP3 ???? Qc = 0. ; Econd = 0. ; Hcond = 0. ; * *>>25.1 Condensation en paroi thermique 'SI' (TBT . 'VAPEUR' 'ET' TBT . 'TPAROIF') ; KHcu = rxt . 'ECHAN' ; Qcw Fcondw Econdw Hcondw KKC ROVI FHP HT tic . 'KKCW' = KKC ; tic . 'ROVIW' = ROVI ; tic . 'FHPW' = FHP ; 'SI' tbt . 'THERCO' ; tic . 'KHW' = HT ; 'SINO' ; 'FINS' ; tic.'Fcondw'=Fcondw ; *'MESS' 'Calcul des flux condenses ' Qcw 'kg/s'; Qc = Qc '+' Qcw ; Econd = Econd '+' Econdw ; Hcond = Hcond '+' Hcondw ; 'SINO' ; Qcw = 0. ; Econdw = 0. ; Hcondw = 0. ; 'FINS' ; *>>25.1 Condensation en paroi thermiqueFIN * * *>>25.2 Condensation en paroi à température imposée i 'SI' (TBT . 'VAPEUR' 'ET' TBT . 'TTIMP') ; 'REPE' BBTIMP NBTIMP ; Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ; tic . (Btimp . 'TPI1') = KHcu = Btimp . 'ECHAN' ; CTPI1 = Btimp . 'TPI1' ; Qc1 Fcond1 Econd1 Hcond1 KKC ROVI FHP HT CKKC1= Btimp . 'KKC1' ; CROVI1 = Btimp . 'ROVI1' ; CFHP1= Btimp . 'FHP1' ; CKH1 = Btimp . 'KH1' ; CFcond1 = Btimp . 'Fcond1' ; tic . CKKC1 = KKC ; tic . CROVI1 = ROVI ; tic . CFHP1 = FHP ; tic . CFcond1 = Fcond1 ; Qc = Qc '+' Qc1 ; Econd= Econd '+' Econd1 ; Hcond= Hcond '+' Hcond1 ; Mcond1 = Qc1 '*' tic . 'DT' ; McondT1 = McondT1 '+' Mcond1 ; CQc1 = Btimp . 'Qc1' ; 'FIN' BBTIMP ; 'FINS' ; *>>25.2 Condensation en paroi à température imposée i FIN * * * *>>25.5 Condensation en paroi à flux imposé 'SI' (TBT . 'VAPEUR' 'ET' TBT . 'TECHANP') ; tic . 'TPI0' = KHcu = rxt . 'ECHANP' . 'ECHAN' ; Qc0 Fcond0 Econd0 Hcond0 KKC ROVI FHP HT tic . 'KKC0' = KKC ; tic . 'ROVI0' = ROVI ; tic . 'FHP0' = FHP ; tic . 'Fcond0' = Fcond0 ; Qc = Qc '+' Qc0 ; Econd = Econd '+' Econd0 ; Hcond = Hcond '+' Hcond0 ; 'SINO' ; Qc0 = 0. ; Econd0 = 0. ; Hcond0 = 0. ; 'FINS' ; *>>25.5 Condensation en paroi à flux imposé FIN * *>>25. Prediction de la condensation pour le pas suivant FIN * * *>>26. Aspersion 'SI' TBT . 'ASPER ' ; asparam rxt ; 'FINS' ; *>>26. Aspersion FIN * * *>>27. Avancement en temps *FD *WARNING Confusion entre stockage et avancée en temps. *WARNING Les deux fonctions devraient être séparées. On devrait avoir *WARNING un basculement : xxxnm = xxxn *WARNING un stockage : tic . xxx = tic . xxx et (prog xxn) *WARNING -> avant la boucle en temps, xxxnm = initialisation *FD * Calcul densité drho/rho pour le terme de flotabilite *FD *WARNING Tordre le coup à l'ambiguité entre rho et rhot *FD *Rhop = (-1.) '*' (Rhomn '-' Rho) '*' (Rho **(-1.0)) ; Rhop = (-1.) '*' (Rhomn '-' Rhont) '*' (Rhont **(-1.0)) ; *DEBUG *'MESS' ' rhop' ; *'LIST' rhop ; *DEBUG tic . 'Rhop' = Rhop ; 'SI' DIM3D ; 'SINO' ; 'FINS' ; * * Vitesse max un = tic . 'UN' ; * * Bilan masse / condensation Qcn = Qc ; Minj = (Qeau '+' Qlj) '*' tic . 'DT' ; MinjT = MinjT '+' Minj ; Mcond = Qc '*' tic . 'DT' ; McondT = McondT '+' Mcond '+' Mliqn ; Mrest = (Qeau '-' Qc '+' Qasp) '*' tic . 'DT' '-' Mliqn ; MrestT = MrestT '+' Mrest ; 'SI' TBT . 'VAPEUR' ; *FD *WARNING Il manque la structure Parois + TECHANP qui est en commentaire ? *FD 'SI' TBT . 'TPAROIF'; Mcondw= Qcw '*' tic . 'DT' ; McondTw = McondTw '+' Mcondw ; 'FINS' ; 'SI' TBT . 'TECHANP'; Mcond0 = Qc0 '*' tic.'DT' ; *McondT0 = McondT0 '+' Mcond0 ; *tic . 'Mcond0' = tic . 'Mcond0' 'ET' ('PROG' McondT0) ; 'FINS' ; 'FINS' ; Econdn = Econd ; * tic . 'Econdw' = tic . 'Econdw' 'ET' ('PROG' Econdw) ; * tic . 'Econd1' = tic . 'Econd1' 'ET' ('PROG' Econd1) ; * tic . 'Econd2' = tic . 'Econd2' 'ET' ('PROG' Econd2) ; * tic . 'Econd3' = tic . 'Econd3' 'ET' ('PROG' Econd3) ; Hcondn = Hcond ; * tic . 'Hcondw' = tic . 'Hcondw' 'ET' ('PROG' Hcondw) ; * tic . 'Hcond1' = tic . 'Hcond1' 'ET' ('PROG' Hcond1) ; * tic . 'Hcond2' = tic . 'Hcond2' 'ET' ('PROG' Hcond2) ; * tic . 'Hcond3' = tic . 'Hcond3' 'ET' ('PROG' Hcond3) ; * *>> Affichage 'SI' (TBT . 'IMPR' '>EG' 2) ; &bcltps ' ' 'DT=' ' ' tic . 'DT' ' ' '*******' ; * 'SI' TBT . 'TTbreche' ; 'REPE' BBRS NBR ; Briches = rxt . 'Breches' . (ibr . &BBRS) ; 'MESS' '____________________________________________________________'; 'SI' TBT . 'VAPEUR' ; 'FINS' ; 'MESS' '____________________________________________________________'; 'FIN' BBRS ; 'FINS' ; 'MESS' '____________________________________________________________'; 'MESS' ' ' ; 'SI' TBT . 'VAPEUR' ; 'MESS' '____________________________________________________________'; (Mliqn '/' tic . 'DT') ; ' ' '(cumul)' ' ' MinjT ; ' ' '(cumul)' ' ' MrestT ; ' ' '(cumul)' ' ' McondT ; 'SI' TBT.'TPAROIF' ; ' ' '(cumul)' ' ' McondTw ; 'FINS' ; *FD *WARNING Nouvelles structures TTIMP non affichées *FD 'SI' TBT . 'TTIMP' ; 'REPE' BBTIMP NBTIMP ; Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ; ndl1 = ndl '+' 1 ; ' ' '(cumul)' ' ' McondT1 ' (' (itimp . &bbtimp) ')' ; 'FIN' BBTIMP ; 'FINS' ; 'MESS' ' ' ; 'MESS' '____________________________________________________________'; 'MESS' ' ' ; 'FINS' ; 'MESS' '____________________________________________________________'; 'SI' TBT . 'VAPEUR' ; 'FINS' ; 'SI' TBT . 'THE' ; 'FINS' ; 'SI' TBT . 'TH2' ; 'FINS' ; 'SI' TBT . 'TO2' ; 'FINS' ; 'SI' TBT . 'TN2' ; 'FINS' ; 'SI' TBT . 'TCO' ; 'FINS' ; 'SI' TBT . 'TCO2' ; 'FINS' ; 'SI' TBT . 'TPAROIF' ; KHWm = tic . 'KHW' ; 'SINO' ; 'SI' tbt . 'THERCO' ; KHW1 = tic . 'KHW' ; 'SINO' ; 'FINS' ; 'FINS' ; 'FINS' ; 'SI' TBT . 'TTIMP' ; 'REPE' BBTIMP NBTIMP ; Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ; 'MESS' 'Tparoi' ' ' (itimp . &BBTIMP) ' ' '(oC)' tic . (Btimp . 'TBP1') ; 'SI' TBT . 'VAPEUR' ; CKH1 = Btimp . 'KH1' ; 'SINO' ; KH1m = tic . CKH1 ; 'FINS' ; 'FIN' BBTIMP ; 'FINS' ; 'SINO'; 'FINS'; 'MESS' '____________________________________________________________'; 'MESS' ' ' ; 'MESS' '____________________________________________________________'; 'SI' TBT . 'VAPEUR' ; 'FINS' ; 'SI' TBT . 'THE' ; 'FINS' ; 'SI' TBT . 'TH2' ; 'FINS' ; 'SI' TBT . 'TO2' ; 'FINS' ; 'SI' TBT . 'TN2' ; 'FINS' ; 'SI' TBT . 'TCO' ; 'FINS' ; 'SI' TBT . 'TCO2' ; 'FINS' ; 'MESS' ' ' ; 'MESS' '____________________________________________________________'; *FD * WARNING A mettre ailleurs M0D = Rhomn '*' Vtotal ; MMD = Rhomnt ; E0D = Remn ; EMD = Remnt ; *FD ' ' '----- Err.Rel.(%)' ; (100. '*' (M0D '-' MMD) '/' M0D) ; 'SI' (TBT . 'VAPEUR' 'ET' ('NON' ('EGA' MV0D 0.))) ; (100. '*' (MV0D '-' MVMD) '/' MV0D) ; 'FINS' ; 'SI' (TBT . 'THE' 'ET' ('NON' ('EGA' MHE0D 0.))) ; (100. '*' (MHE0D '-' MHEMD) '/' MHE0D) ; 'FINS' ; 'SI' (TBT . 'TH2' 'ET' ('NON' ('EGA' MH20D 0.))) ; (100. '*' (MH20D '-' MH2MD) '/' MH20D) ; 'FINS' ; 'SI' (TBT . 'TO2' 'ET' ('NON' ('EGA' MO20D 0.))) ; (100. '*' (MO20D '-' MO2MD) '/' MO20D) ; 'FINS' ; 'SI' (TBT . 'TN2' 'ET' ('NON' ('EGA' MN20D 0.))) ; (100. '*' (MN20D '-' MN2MD) '/' MN20D) ; 'FINS' ; 'SI' (TBT . 'TCO' 'ET' ('NON' ('EGA' MCO0D 0.))) ; (100. '*' (MCO0D '-' MCOMD) '/' MCO0D) ; 'FINS' ; 'SI' (TBT . 'TCO2' 'ET' ('NON' ('EGA' MCO20D 0.))) ; (100. '*' (MCO20D '-' MCO2MD) '/' MCO20D) ; 'FINS' ; *** 'SI' (TBT . 'TAIR' 'ET' ('NON' ('EGA' MAIR0D 0.))) ; 'SI' ('NON' ('EGA' MAIR0D 0.)) ; (100. '*' (MAIR0D '-' MAIRMD) '/' MAIR0D) ; 'FINS' ; 'MESS' ' ' ; (100. '*' (E0D '-' EMD) '/' E0D) ; 'MESS' '___________________________________________________________' ; 'SI' TBT.'THERMP' ; (100. '*' (Emurn '-' Emurm) '/' Emurn) ; 'MESS' '___________________________________________________________' ; 'FINS' ; 'FINS' ; *>> Affichage FIN * * *>> Copie des inconnues (n)->(n-1) pour le prochain pas de temps *tic . 'RHONM' = Rhon ; 'SI' TBT . 'VAPEUR' ; tic . 'RVPNM' = Rvp ; 'FINS' ; 'SI' TBT . 'THE' ; tic . 'RHEM' = Rhe ; 'FINS' ; 'SI' TBT . 'TH2' ; tic . 'RH2M' = Rh2 ; 'FINS' ; 'SI' TBT . 'TO2' ; tic . 'RO2M' = Ro2 ; 'FINS' ; 'SI' TBT . 'TN2' ; tic . 'RN2M' = Rn2 ; 'FINS' ; 'SI' TBT . 'TCO' ; tic . 'RCOM' = Rco ; 'FINS' ; 'SI' TBT . 'TCO2' ; tic . 'RCO2M' = Rco2 ; 'FINS' ; *'SI' TBT . 'TAIR' ; tic . 'RAIRM' = Rair ; 'FINS' ; * tic . 'RAIRM' = Rair ; tic . 'TFNM' = Tfn ; 'SI' TBT . 'THERMP' ; tic . 'TPNM' = Tp ; 'FINS' ; 'ET' ('EGA' TBT . 'FEF' 'EFM1')) ; tic . 'KNM' = tic . 'KN' ; tic . 'ENM' = tic . 'EN' ; 'FINS' ; 'SI' TBT.'ASPER '; tic . 'VNM' = tic .'VN' ; tic . 'XDM' = tic .'XD' ; tic . 'TDM' = tic .'TD' ; tic . 'DDM' = tic .'DD' ; 'FINS' ; *>> Copie des inconnues (n)->(n-1) FIN * * *>> Gestion du pas de temps en EFM1 * * On impose une 'CFL' de 0.5 * Il ne peut pas dépasser le pas de temps de référence * Si il varie de plus de 10% on limite l'accroissement 'SI' ('EGA' TBT . 'FEF' 'EFM1') ; DTDIFU = rv . 'PASDETPS' . 'DTDIFU' ; DTCONV = rv . 'PASDETPS' . 'DTCONV' ; DTM1 = tic . 'DT' ; ect = (DTEXPL '-' tic . 'DT') '/' DTEXPL ; 'SI' (ect '>' 0.1) ; tic . 'DT' = (0.3 '*' DTEXPL) '+' (0.7 '*' tic . 'DT'); 'FINS' ; 'SI' (ect '<' 0.1 ) ; tic . 'DT' = DTEXPL ; 'FINS' ; 'SI' (rxt . 'DT0' < DTEXPL) ; tic . 'DT' = rxt . 'DT0' ; 'FINS' ; rv . 'PASDETPS' . 'NUPASDT' = tic . 'NUPADT' ; rv . 'PASDETPS' . 'DELTAT-1' = DTM1 ; rv . 'PASDETPS' . 'DELTAT' = 1.e30 ; rv . 'PASDETPS' . 'TPS' = tic . 'Tps' ; 'FINS' ; * *>> Couplage avec CATHARE2 : Echanges P, T et Rho moyens 'SI' TBT . 'CATHARE2' ; 'FINS' ; * * * 'FIN' BCLTPS ; *>> FIN BCLTPS * *----------------------------------------------------------- *----- FIN de la boucle principale sur les pas de temps ---- *----------------------------------------------------------- * * Sauvegarde pour reprise tic . 'drclvp' = drclvp ; tic . 'drclhe' = drclhe ; tic . 'drclh2' = drclh2 ; tic . 'drclo2' = drclo2 ; tic . 'drcln2' = drcln2 ; tic . 'drclco' = drclco ; tic . 'drclco2' = drclco2 ; * * 'SI' ('ET' (TBT . 'DETMAT') ('>' nbit 0)) ; RV = TBT . 'RV' ; REPIX RV ; * * 2022/11/22 : SG * Je n'ai pas compris à quoi servent ces lignes car normalement, il n'y * a pas de matrices à l'indice 'rvpd'. * S'il y en a, il faudra modifier repix.procedur pour les enlever et * supprimer les lignes suivantes * rv = TBT . 'RV' ; TBT . 'RV' = rv ; 'FINS' ; rtf = TBT . 'RTF' ; REPIX rtf ; 'SI'((TBT . 'THERMP') 'OU' (TBT . 'TPAROIS')) ; rtp = TBT . 'RTP' ; REPIX rtp ; 'FINS' ; 'SI' TBT . 'VAPEUR' ; Rrvap = TBT . 'Rrvap' ; REPIX Rrvap ; 'FINS' ; 'SI' TBT . 'THE' ; Rrhe = TBT . 'Rrhe' ; REPIX Rrhe ; 'FINS' ; 'SI' TBT . 'TH2' ; Rrh2 = TBT . 'Rrh2' ; REPIX Rrh2 ; 'FINS' ; 'SI' TBT . 'TO2' ; Rro2 = TBT . 'Rro2' ; REPIX Rro2 ; 'FINS' ; 'SI' TBT . 'TN2' ; Rrn2 = TBT . 'Rrn2' ; REPIX Rrn2 ; 'FINS' ; 'SI' TBT . 'TCO2' ; Rrco2 = TBT . 'Rrco2' ; REPIX Rrco2 ; 'FINS' ; 'SI' TBT . 'TAIR' ; Rrair = TBT . 'Rrair' ; REPIX Rrair ; 'FINS' ; 'SI' TBT . 'TCO' ; Rrco = TBT . 'Rrco' ; REPIX Rrco ; 'FINS' ; 'SI' TBT . 'ASPER' ; rvn = TBT . 'RVN' ; REPIX rvn ; rxd = TBT . 'RXD' ; REPIX rxd ; rdd = TBT . 'RDD' ; REPIX rdd ; rtd = TBT . 'RTD' ; REPIX rtd ; 'FINS' ; 'FINS' ; * * *----------------------------------------------------------- * Post-traitement Graphique *----------------------------------------------------------- * * * ltps : Liste des pas de temps servant au tracé * ltpsc : Liste du rang des pas de temps de ltps dans la liste des temps calculés ltpsc = tic . 'LTPSC' ; 'SINO' ; ltps = tic . 'LTPS' ; 'FINS' ; * * On trace si il y a quelque chose à tracer * tab1 = 'TABLE' ; tab1 . 'TITRE' = 'TABLE' ; tab1 . 1 = 'MARQ CROI REGU' ; tab1 . 2 = 'MARQ TRIU REGU' ; tab1 . 3 = 'MARQ LOSA REGU' ; tab1 . 4 = 'MARQ CARR REGU' ; tab1 . 5 = 'MARQ ROND REGU' ; tab1 . 6 = 'MARQ TRID REGU' ; tab1 . 7 = 'MARQ TRIL REGU' ; tab1 . 8 = 'MARQ TRIR REGU' ; * * Initialisation $vtf = GEO . '$vtf' ; * un = tic . 'UN' ; * * Recombineur SIEMENS ou HEATER tab2 = table ; tab2 . 1 = 'MARQ CROI REGU' ; tab2 . 2 = 'MARQ TRIU REGU' ; tab2 . 3 = 'MARQ LOSA REGU' ; tab2 . 4 = 'MARQ CARR REGU' ; tab2 . 5 = 'MARQ ROND REGU' ; tab2 . 6 = 'MARQ TRID REGU' ; tab2 . 7 = 'MARQ TRIL REGU' ; tab2 . 8 = 'MARQ TRIR REGU' ; tab2 . 'TITRE' = 'TABLE' ; tab2 . 'TITRE' = 'TABLE' ; tab3 = table ; tab3 . 1 = 'MARQ CROI REGU' ; tab3 . 2 = 'MARQ TRIU REGU' ; tab3 . 3 = 'MARQ LOSA REGU' ; tab3 . 4 = 'MARQ CARR REGU' ; tab3 . 5 = 'MARQ ROND REGU' ; tab3 . 6 = 'MARQ TRID REGU' ; tab3 . 7 = 'MARQ TRIL REGU' ; tab3 . 8 = 'MARQ TRIR REGU' ; tab3 . 'TITRE' = 'TABLE' ; tab3 . 'TITRE' = 'TABLE' ; Numero = 1 ; tab3 . 'TITRE' . Numero = 'H2O' ; 'SI' TBT . 'TH2' ; Numero = Numero '+' 1 ; tab3 . 'TITRE' . Numero = 'H2' ; Numero = Numero '+' 1 ; tab3 . 'TITRE' . Numero = 'O2' ; 'FINS' ; 'SI' TBT . 'TN2' ; Numero = Numero '+' 1 ; tab3 . 'TITRE' . Numero = 'N2' ; 'FINS' ; 'SI' TBT . 'TCO' ; Numero = Numero '+' 1 ; tab3 . 'TITRE' . Numero = 'CO' ; Numero = Numero '+' 1 ; tab3 . 'TITRE' . Numero = 'CO2' ; 'FINS' ; 'SI' TBT . 'THE' ; Numero = Numero '+' 1 ; tab3 . 'TITRE' . Numero = 'HE' ; 'FINS' ; Numero = Numero '+' 1 ; tab3 . 'TITRE' . Numero = 'Mixture' ; siemens = faux ; 'REPE' blopar npar ; tab2 . 'TITRE' . 1 = 'Inlet' ; tab2 . 'TITRE' . 2 = 'Outlet' ; tab2 . 'TITRE' . 3 = 'Plates' ; tpar = tic . 'RECOMB' . &blopar ; 'SI' ('EGA' &blopar 1) ; fvdeb = evdeb ; fvTpla = evTpla ; fvTin = evTin ; fvTout = evTout ; 'SINO' ; fvdeb = fvdeb 'ET' evdeb ; fvTpla = fvTpla 'ET' evTpla ; fvTin = fvTin 'ET' evTin ; fvTout = fvTout 'ET' evTout ; 'FINS' ; 'SI' ('NEG' tbt . 'RECOMB' . &blopar . 'TYPR' 'HEATER') ; siemens = vrai ; 'SI' ('EGA' &blopar 1) ; fvQe = evQe ; fvQs = evQs ; 'SINO' ; fvQe = fvQe 'ET' evQe ; fvQs = fvQs 'ET' evQs ; 'FINS' ; 'FINS' ; * * Species mass fraction (-) and densities (kg/m3) RO_IN = (evdeb '/' evUinb) '*' (FG_ENT '/' SENTREE) ; RO_OUT = (evdeb '/' evUoutb) '*' (FG_SOR '/' SSORTIE) ; * * * RH2E = RO_IN '*' evYH2E ; RH2OE = RO_IN '*' evYH2OE ; RO2E = RO_IN '*' evYO2E ; RN2E = RO_IN '*' evYN2E ; RHEE = RO_IN '*' evYHEE ; RCO2E = RO_IN '*' evYCO2E ; RCOE = RO_IN '*' evYCOE ; * RH2S = RO_OUT '*' evYH2S ; RH2OS = RO_OUT '*' evYH2OS ; RO2S = RO_OUT '*' evYO2S ; RN2S = RO_OUT '*' evYN2S ; RHES = RO_OUT '*' evYHES ; RCO2S = RO_OUT '*' evYCO2S ; RCOS = RO_OUT '*' evYCOS ; * evYE = evYH2OE ; evYS = evYH2OS ; evRE = RH2OE ; evRS = RH2OS ; 'SI' TBT . 'TH2' ; evYE = evYE 'ET' evYH2E 'ET' evYO2E ; evYS = evYS 'ET' evYH2S 'ET' evYO2S ; evRE = evRE 'ET' RH2E 'ET' RO2E ; evRS = evRS 'ET' RH2S 'ET' RO2S ; 'FINS' ; 'SI' TBT . 'TN2' ; evYE = evYE 'ET' evYN2E ; evYS = evYS 'ET' evYN2S ; evRE = evRE 'ET' RN2E ; evRS = evRS 'ET' RN2S ; 'FINS' ; 'SI' TBT . 'TCO' ; evYE = evYE 'ET' evYCOE 'ET' evYCO2E ; evYS = evYS 'ET' evYCOS 'ET' evYCO2S ; evRE = evRE 'ET' RCOE 'ET' RCO2E ; evRS = evRS 'ET' RCOS 'ET' RCO2S ; 'FINS' ; 'SI' TBT . 'THE' ; evYE = evYE 'ET' evYHEE ; evYS = evYS 'ET' evYHES ; evRE = evRE 'ET' RHEE ; evRS = evRS 'ET' RHES ; 'FINS' ; * * Single PAR graphics 'FIN' blopar ; * * Global PAR graphics 'SI' siemens ; 'FINS' ; 'SI' ('NEG' npar 1) ; 'FINS' ; 'FINS' ; * PAR - FIN * 'SI' TBT . 'ASPER ' ; lqQas = tic . 'Qaspe' ; 'FINS' ; ************************************************************** ************************************************************** * Taux d'injection de la vapeur 'SI' TBT . 'VAPEUR' ; *............................................................. * Trace des Debits liquide vapeur et total aux breches tab1 . 1 = 'MARQ CROI REGU' ; tab1 . 2 = 'MARQ CROI REGU TIRM' ; tab1 . 3 = 'MARQ CROI REGU TIRC' ; tab1 . 7 = 'MARQ LOSA REGU' ; tab1 . 8 = 'MARQ LOSA REGU TIRM' ; tab1 . 9 = 'MARQ LOSA REGU TIRC' ; tab1 . 1 = 'MARQ CROI REGU' ; tab1 . 2 = 'MARQ CARR REGU' ; tab1 . 3 = 'MARQ LOSA REGU' ; *............................................................. 'FINS'; * * * Débit de condensation : Total, bilan et détails * * 'SI' TBT . 'VAPEUR' ; tab2 = table ; tab2 . 1 = 'MARQ CROI REGU' ; tab2 . 2 = 'MARQ TRIU REGU' ; tab2 . 3 = 'MARQ LOSA REGU' ; tab2 . 4 = 'MARQ CARR REGU' ; tab2 . 5 = 'MARQ ROND REGU' ; tab2 . 6 = 'MARQ TRID REGU' ; tab2 . 7 = 'MARQ TRIL REGU' ; tab2 . 8 = 'MARQ TRIR REGU' ; tab2 . 'TITRE' = 'TABLE' ; * Wall condensation (total) Numero = 1 ; evtq = evsrcv ; evqc1 = evsrcv ; * Wall condensation (paroi thermique) Numero = Numero + 1 ; evtq = evtq 'ET' evqcw ; evqc1 = evqc1 '-' evqcw ; 'FINS' ; * Wall Condensation (paroi imposée par l'utilisateur (ECHANP)) Numero = Numero + 1 ; evtq = evtq 'ET' evqc0 ; evqc1 = evqc1 '-' evqc0 ; 'FINS' ; * Wall Condensation (poroi à température imposée) 'SI' TBT . 'TTIMP' ; Numero = Numero + 1 ; evtq = evtq 'ET' evqc1 ; 'FINS' ; * Bulk condensation Numero = Numero + 1 ; evtq = evtq 'ET' evqcm ; 'FINS' ; 'FINS' ; * * Cas des Températures imposées nouvelle méthode 'SI' TBT . 'VAPEUR' ; 'SI' TBT . 'TTIMP' ; Numero = 1 ; evtq = evqc1 ; 'REPE' BBTIMP NBTIMP ; Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ; CQc1 = Btimp . 'Qc1' ; Numero = Numero + 1 ; evtq = evtq 'ET' evqci ; 'FIN' BBTIMP ; 'FINS' ; 'FINS' ; * * * Eléments pour le bilan d'énergie * * 'SI' TBT . 'VAPEUR' ; lqEcd = tic . 'Econd' ; lqEcv = tic . 'Econv' ; 'FINS' ; * * * Eléments pour le bilan de masse en vapeur * * 'SI' TBT . 'VAPEUR' ; 'SINO' ; evMcondm = 0 . '*' evMinjv ; 'FINS' ; * * * Masse et correction 0D pour chaque constituant * (+ ensemble des constituants : Masses, corrrections 0D et densités) * * tab1 = table ; tab1 . 1 = 'MARQ CROI REGU' ; tab1 . 2 = 'MARQ TRIU REGU' ; tab1 . 3 = 'MARQ LOSA REGU' ; tab1 . 4 = 'MARQ CARR REGU' ; tab1 . 5 = 'MARQ ROND REGU' ; tab1 . 6 = 'MARQ TRID REGU' ; tab1 . 7 = 'MARQ TRIL REGU' ; tab1 . 8 = 'MARQ TRIR REGU' ; tab1 . 'TITRE' = 'TABLE' ; tab2 = table ; tab2 . 1 = 'MARQ CROI REGU' ; tab2 . 2 = 'MARQ TRIU REGU' ; tab2 . 3 = 'MARQ LOSA REGU' ; tab2 . 4 = 'MARQ CARR REGU' ; tab2 . 5 = 'MARQ ROND REGU' ; tab2 . 6 = 'MARQ TRID REGU' ; tab2 . 7 = 'MARQ TRIL REGU' ; tab2 . 8 = 'MARQ TRIR REGU' ; tab2 . 'TITRE' = 'TABLE' ; tab3 = table ; tab3 . 1 = 'MARQ CROI REGU' ; tab3 . 2 = 'MARQ TRIU REGU' ; tab3 . 3 = 'MARQ LOSA REGU' ; tab3 . 4 = 'MARQ CARR REGU' ; tab3 . 5 = 'MARQ ROND REGU' ; tab3 . 6 = 'MARQ TRID REGU' ; tab3 . 7 = 'MARQ TRIL REGU' ; tab3 . 8 = 'MARQ TRIR REGU' ; tab3 . 'TITRE' = 'TABLE' ; tab4 = table ; tab4 . 1 = 'MARQ CROI REGU' ; tab4 . 2 = 'MARQ TRIU REGU' ; tab4 . 3 = 'MARQ LOSA REGU' ; tab4 . 4 = 'MARQ CARR REGU' ; tab4 . 5 = 'MARQ ROND REGU' ; tab4 . 6 = 'MARQ TRID REGU' ; tab4 . 7 = 'MARQ TRIL REGU' ; tab4 . 8 = 'MARQ TRIR REGU' ; tab4 . 'TITRE' = 'TABLE' ; ID = 1 ; tab2 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; tab4 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; allM = evM ; alldM = evdM ; ID = ID '+' 1 ; tab2 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; tab4 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; allM = allM 'ET' evMair ; alldM = alldM 'ET' evdMair ; 'SI' TBT . 'THE' ; ID = ID '+' 1 ; tab2 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; tab4 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; allM = allM 'ET' evMhe ; alldM = alldM 'ET' evdMhe ; 'FINS' ; 'SI' TBT . 'TH2' ; ID = ID '+' 1 ; tab2 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; tab4 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; allM = allM 'ET' evMh2 ; alldM = alldM 'ET' evdMh2 ; 'FINS' ; 'SI' TBT . 'TO2' ; ID = ID '+' 1 ; tab2 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; tab4 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; allM = allM 'ET' evMo2 ; alldM = alldM 'ET' evdMo2 ; 'FINS' ; 'SI' TBT . 'TN2' ; ID = ID '+' 1 ; tab2 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; tab4 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; allM = allM 'ET' evMn2 ; alldM = alldM 'ET' evdMn2 ; 'FINS' ; 'SI' TBT . 'TCO' ; ID = ID '+' 1 ; tab2 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; tab4 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; allM = allM 'ET' evMco ; alldM = alldM 'ET' evdMco ; 'FINS' ; 'SI' TBT . 'TCO2' ; ID = ID '+' 1 ; tab2 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; tab4 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; allM = allM 'ET' evMco2 ; alldM = alldM 'ET' evdMco2 ; 'FINS' ; 'SI' TBT . 'VAPEUR' ; ID = ID '+' 1 ; tab2 . 'TITRE' . ID = tab1 . 'TITRE' . 1 ; ID = ID '+' 1 ; tab2 . 'TITRE' . ID = tab1 . 'TITRE' . 2 ; tab4 . 'TITRE' . (ID-1) = tab1 . 'TITRE' . 1 ; allM = allM 'ET' evMv 'ET' evMvg ; alldM = alldM 'ET' evdMv ; 'FINS' ; * * Pressure * * Temperature (fluide, parois et correction) * evtpf = evtpf 'ET' evtpf1 ; * evtpf = evtpf 'ET' evtpf2 ; * ID = 3 ; *FD * Tpm est complètement faux dans le cas multicouche donc on oublie * A faire : Tracer la température de paroi pour TPAROIF *FD *'SI' TBT . 'THERMP' ; * ID = ID + 1 ; * evTfp = 'EVOL' 'VERT' 'MANU' * 't(s)' ltps 'oC ' ('EXTR' tic . 'Tpm' ltpsc) ; * tab1 . 'TITRE' . ID = 'MOT' 'Tfp oC' ; * evtpf = evtpf 'ET' evTfp ; *'FINS' ; 'SI' TBT . 'TTIMP' ; 'REPE' BBTIMP NBTIMP ; Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ; ID = ID + 1 ; evtpf = evtpf 'ET' evTfpc1 ; 'FIN' BBTIMP ; 'FINS' ; 'DESS' evtpf 'MIMA' * 'FINS' ; * * Post-traitement Graphique FIN 'FINPROC' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales