* EXECRXT PROCEDUR FD144363 22/12/21 21:15:04 11534 * * 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' ; * * CORTEMP = vrai si on controle le bilan d'énergie 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' ; * Btimp . 'Ltbpi' = 'PROG' ('IPOL' tps Btimp . 't' Btimp . 'TIMP') ; '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' ; TBT . 'CONDMAS' = rxt . 'CONDMAS' ; 'FINS' ; 'FINS' ; *DEBUG *TBT . 'CONDMAS' = FAUX ; *TBT . 'CORTEMP' = FAUX ; 'MESS' 'condmas cortemp corlim' ; 'LIST' tbt . 'CONDMAS' ; 'LIST' tbt . 'CORTEMP' ; 'LIST' tbt . 'CORLIM' ; *DEBUG * * 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. ; * * 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' ; Btimp . 'Ltbpi' '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 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' ;