Télécharger tube_scalpass_multi.dgibi
* fichier : tube_scalpass_multi.dgibi ****************************************************************** * Calcul du tube a choc; CAS MULTIESPECE * * GAZ multi-especes "calorically perfect", * * avec le modele "thermally perfect" * * * * FORMULATION VF COMPRESSIBLE EXPLICITE * * SOLVEURS: Van Leer - Hanel, Colella-Glaz * * * * Splitting de scalaires passifs * * * * A. BECCANTINI TTMF FEVRIER 2000 * ****************************************************************** 'MESSAGE' 'A mettre à jour' ; 'FIN' ; 'OPTION' 'ELEM' 'QUA4' ; 'OPTION' 'ISOV' 'SULI' ; 'OPTION' 'ECHO' 0 ; 'OPTION' 'TRAC' 'X'; GRAPH = FAUX ; * GRAPH = VRAI ; * *** Methodes possibles : * * 'VLH' * 'CG' METO = 'CG' ; ******************************************************* ******************************************************* ** PROCEDURE EXEXSP POUR FORMULATION VF COMPRESSIBLE ** ** CAS MULTIESPECES "THERMALLY PERFECT" ** ** TRANSPORT DE SCALAIRES PASSIFS ** ******************************************************* ******************************************************* 'DEBPROC' EXEXSP ; 'ARGUMENT' RV*TABLE ; ******************************************* **** Recherche de RV . *KONV . IDEUL **** ******************************************* * **** Nom de la table RV . *'KONV' -> NOMT * 'REPETER' BL1 NBOP; MCEL = 'EXTRAIRE' &BL1 RV . 'LISTOPER'; 'QUITTER' BL1; 'FINSI' ; 'FIN' BL1; IEUL = RV . NOMT . 'KOPT' . 'IDEUL'; 'SI' ('NON' (IEUL 'EGA' 3)); 'MESSAGE' 'EULERMST ???'; 'ERREUR' 21; 'FINSI' ; * Mono-espece ou multi-especes 'SI' ('EXISTE' (RV . INCO . IPGAZ) 'ESPEULE') ; LOGMUL = VRAI ; 'SINON' ; LOGMUL = FAUX ; 'FINSI' ; * **** CL * LOGLIM = RV . 'INCO' . 'CLIM' ; ****************************************** **** Ordre en espace, ordre en temps **** ****************************************** ORD_ESP = RV . 'ORDREESP' ; ORD_TPS = RV . 'ORDRETPS' ; 'MESSAGE' '--------------------------'; 'MESSAGE' 'Ordre en Espace :' ord_esp; 'MESSAGE' 'Ordre en Temps :' ord_tps; 'MESSAGE' '--------------------------'; 'SI' ((ORD_ESP 'EGA' 1) 'ET' (ORD_TPS 'EGA' 2)); 'MESSAGE' ; 'MESSAGE' (CHAINE 'Ordre en Espace doit etre 2'); 'MESSAGE' (CHAINE 'On impose ça.'); 'MESSAGE' ; RV . 'ORDREESP' = 2 ; 'MESSAGE' ; 'MESSAGE' '--------------------------'; 'MESSAGE' 'Ordre en Espace :' ord_esp; 'MESSAGE' 'Ordre en Temps :' ord_tps; 'MESSAGE' '--------------------------'; 'FINSI' ; ****************************** **** La table 'PASDETPS' **** ****************************** TPSI = RV . 'TPSI' ; TFIN = RV . 'TFINAL'; RV . 'PASDETPS' . 'TPS' = TPSI; * **** DELTAT-1 est un argument de PRET (prediction) * Donc on doit l'initialiser. * RV . 'PASDETPS' . 'DELTAT-1' = 0.0D0; ********************* **** Les TABLES ***** ********************* * **** RV . 'INCO' * RV . 'DOMAINE' * RV . 'KIZD' * RV . 'KIZG' * **** RV . 'INCO' -> KINCO * KINCO = (RV . 'INCO') ; * **** RV . 'DOMAINE' -> KDOMA * *KDOMA = (RV . 'DOMAINE') ; KDOMA = (RV . 'MODTOT') ; KDOMA2 = (RV . 'DOMAINE') ; * **** RV . 'KIZD' contient les volumes des ELTs * 'SI' ('NON' ('EXISTE' RV 'KIZD')) ; 'KDIA' RV ; 'FINSI' ; * ***** RV . 'KIZG' contient les flux aux interfaces. * 'SI' ('NON' ('EXISTE' RV 'KIZG')) ; RV . 'KIZG' = 'TABLE' 'KIZG' ; 'FINSI' ; 'SI' LOGMUL ; ********************************************************* **** Multi-especes, boucle Sur les Pas de Temps **** ********************************************************* * **** Evaluation de coeff pour le calcule des pentes * KINCO . 'V' KINCO . 'P' KINCO . 'T' KINCO . 'Y' KINCO . 'S' KINCO . 'GAMMA' = 'PRIM' 'PERFTEMP' (KINCO . 'IPGAZ') (KINCO . 'RNI') (KINCO . 'GNI') (KINCO . 'ENI') (KINCO. 'RYNI') (KINCO. 'RSNI') ; GRADR ALR COEFR = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'RNI'); GRADP ALP COEFP = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'P'); GRADV ALV COEFV = 'PENT' KDOMA 'CENTRE' 'EULEVECT' 'LIMITEUR' (KINCO . 'V'); GRADY ALY COEFY = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'Y'); GRADS ALS COEFS = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'S'); I = 0 ; 'REPETER' BLOC1 (RV . 'ITMA') ; I = I + 1 ; * ***** Les variables primitives * KINCO . 'V' KINCO . 'P' KINCO . 'T' KINCO . 'Y' KINCO . 'S' KINCO . 'GAMMA' = 'PRIM' 'PERFTEMP' (KINCO . 'IPGAZ') (KINCO . 'RNI') (KINCO . 'GNI') (KINCO . 'ENI') (KINCO. 'RYNI') (KINCO. 'RSNI') ; * ***** Les valeurs aux interfaces * 'SI' (ORD_ESP 'EGA' 1) ; ROF VITF PF YF SF = 'PRET' 'PERFTEMP' ORD_ESP ORD_TPS KDOMA (KINCO . 'IPGAZ') (KINCO . 'RNI') (KINCO . 'V') (KINCO . 'P') (KINCO . 'Y') ( KINCO . 'S' ); 'SINON'; * ***** Ordre 2 en espace => calcul des pentes * GRADR ALR = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'RNI') 'GRADGEO' COEFR ; GRADP ALP = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'P') 'GRADGEO' COEFP ; GRADV ALV = 'PENT' KDOMA 'CENTRE' 'EULEVECT' 'LIMITEUR' (KINCO . 'V') 'GRADGEO' COEFV ; GRADY ALY = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'Y') 'GRADGEO' COEFY ; GRADS ALS = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'S') 'GRADGEO' COEFS ; 'SI' (ORD_TPS 'EGA' 1); ROF VITF PF YF SF = 'PRET' 'PERFTEMP' ORD_ESP ORD_TPS KDOMA (KINCO . 'IPGAZ') (KINCO . 'RNI') GRADR ALR (KINCO . 'V') GRADV ALV (KINCO . 'P') GRADP ALP (KINCO . 'Y') GRADY ALY (KINCO . 'S') GRADS ALS ; 'SINON' ; * ********* Ordre 2 en temps * ROF VITF PF YF SF = 'PRET' 'PERFTEMP' ORD_ESP ORD_TPS KDOMA (KINCO . 'IPGAZ') (KINCO . 'RNI') GRADR ALR (KINCO . 'V') GRADV ALV (KINCO . 'P') GRADP ALP (KINCO . 'Y') GRADY ALY (KINCO . 'S') GRADS ALS (KINCO . 'GAMMA') ((RV . 'PASDETPS' . 'DELTAT-1')/2.0); 'FINSI' ; 'FINSI' ; * *********** Creation de MCHAML de type 'FACEL' pour les * calcul de flux aux interfaces KINCO . 'RNF' = ROF ; KINCO . 'VITNF' = VITF ; KINCO . 'PNF' = PF ; KINCO . 'YF' = YF ; KINCO . 'SF' = SF ; * ********* Boucle sur les operateurs * 'REPETER' BLOC2 NBOP ; NOMPER = 'EXTRAIRE' &BLOC2 (RV . 'LISTOPER'); ('TEXTE' NOMPER) (RV . NOTABLE) ; 'FIN' BLOC2 ; * ********* Mise a jour de la table RV . 'PASDETPS' * 'SI' ('EXISTE' RV 'DTI'); DTI = 'MINIMUM' (RV . 'PASDETPS' . 'DTCONV') ); 'SINON'; DTI = (RV . 'PASDETPS' . 'DTCONV'); 'FINSI'; RV . 'PASDETPS' . 'DELTAT' = DTI ; TMPS = RV . 'PASDETPS' . 'TPS'; DTI0 = TFIN '-' TMPS; 'SI' (DTI0 '<EG' DTI); DTI = DTI0; RV . 'PASDETPS' . 'DELTAT' = DTI ; LOGQUIT = VRAI; 'SINON' ; LOGQUIT = FAUX ; 'FINSI' ; * ******** On avance au pas de temps suivant * * N.B. Tn+1 = Tn + (CFL * RV . 'PASDETPS' . 'DELTAT'); * * ******** On detrui les choses qui ne servent plus * * * Les variables primitives * 'OUBL' KINCO 'V'; 'OUBL' KINCO 'P'; 'OUBL' KINCO 'T'; 'OUBL' KINCO 'Y'; 'OUBL' KINCO 'S'; 'OUBL' KINCO 'GAMMA'; * * Les MCHAML faces * 'DETR' ROF ; 'DETR' VITF ; 'DETR' PF ; 'DETR' YF; 'OUBL' KINCO 'RNF'; 'OUBL' KINCO 'VITNF'; 'OUBL' KINCO 'PNF'; 'OUBL' KINCO 'YF'; 'OUBL' KINCO 'SF'; * * Les pentes 'ET' les limiteurs * 'SI' (ORD_ESP 'EGA' 2); 'DETR' GRADR; 'DETR' GRADP; 'DETR' GRADV; 'DETR' GRADY; 'DETR' GRADS; 'DETR' ALR; 'DETR' ALP; 'DETR' ALV; 'DETR' ALY; 'DETR' ALS; 'FINSI' ; * ******** On impose le CL * * 'SI' LOGLIM; PROLIM RV ; 'FINSI' ; 'SI' LOGQUIT; 'QUITTER' BLOC1; 'FINSI'; 'FIN' BLOC1 ; ******************************************** **** FIN de Boucle Sur les Pas de Temps *** ******************************************** 'SINON' ; ********************************************************* **** Mono-espece, boucle sur les pas de temps **** ********************************************************* KINCO . 'V' KINCO . 'P' KINCO . 'T' KINCO . 'S' (KINCO . 'RNI') (KINCO . 'GNI') (KINCO . 'ENI') (KINCO . 'RSNI'); GRADR ALR COEFR = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'RNI'); GRADP ALP COEFP = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'P'); GRADV ALV COEFV = 'PENT' KDOMA 'CENTRE' 'EULEVECT' 'LIMITEUR' (KINCO . 'V'); GRADS ALS COEFS = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'S'); I = 0 ; 'REPETER' BLOC1 (RV . 'ITMA') ; I = I + 1 ; * ***** Les variables primitives * KINCO . 'V' KINCO . 'P' KINCO . 'T' KINCO . 'S' (KINCO . 'RNI') (KINCO . 'GNI') (KINCO . 'ENI') (KINCO . 'RSNI'); * ***** Les valeurs aux interfaces * 'SI' (ORD_ESP 'EGA' 1) ; ROF VITF PF SF = 'PRET' 'PERFTEMP' ORD_ESP ORD_TPS KDOMA (KINCO . 'IPGAZ') (KINCO . 'RNI') (KINCO . 'V') (KINCO . 'P') (KINCO . 'S') ; 'SINON'; * ***** Ordre 2 en espace => calcul des pentes * GRADR ALR = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'RNI') 'GRADGEO' COEFR ; GRADP ALP = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'P') 'GRADGEO' COEFP ; GRADV ALV = 'PENT' KDOMA 'CENTRE' 'EULEVECT' 'LIMITEUR' (KINCO . 'V') 'GRADGEO' COEFV ; GRADS ALS = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR' (KINCO . 'S') 'GRADGEO' COEFS ; 'SI' (ORD_TPS 'EGA' 1); ROF VITF PF SF = 'PRET' 'PERFTEMP' ORD_ESP ORD_TPS KDOMA (KINCO . 'IPGAZ') (KINCO . 'RNI') GRADR ALR (KINCO . 'V') GRADV ALV (KINCO . 'P') GRADP ALP ; 'SINON' ; * ********* Ordre 2 en temps * ROF VITF PF SF = 'PRET' 'PERFTEMP' ORD_ESP ORD_TPS KDOMA (KINCO . 'IPGAZ') (KINCO . 'RNI') GRADR ALR (KINCO . 'V') GRADV ALV (KINCO . 'P') GRADP ALP (KINCO . 'S') GRADS ALS (KINCO . 'GAMMA') ((RV . 'PASDETPS' . 'DELTAT-1')/2.0); 'FINSI' ; 'FINSI' ; * *********** Creation de MCHAML de type 'FACEL' pour les * calcul de flux aux interfaces KINCO . 'RNF' = ROF ; KINCO . 'VITNF' = VITF ; KINCO . 'PNF' = PF ; KINCO . 'SF' = SF ; * ********* Boucle sur les operateurs * 'REPETER' BLOC2 NBOP ; NOMPER = 'EXTRAIRE' &BLOC2 (RV . 'LISTOPER'); ('TEXTE' NOMPER) (RV . NOTABLE) ; 'FIN' BLOC2 ; * ********* Mise a jour de la table RV . 'PASDETPS' * 'SI' ('EXISTE' RV 'DTI'); DTI = 'MINIMUM' (RV . 'PASDETPS' . 'DTCONV') ); 'SINON'; DTI = (RV . 'PASDETPS' . 'DTCONV'); 'FINSI'; RV . 'PASDETPS' . 'DELTAT' = DTI ; TMPS = RV . 'PASDETPS' . 'TPS'; DTI0 = TFIN '-' TMPS; 'SI' (DTI0 '<EG' DTI); DTI = DTI0; RV . 'PASDETPS' . 'DELTAT' = DTI ; LOGQUIT = VRAI; 'SINON' ; LOGQUIT = FAUX ; 'FINSI' ; * ******** On avance au pas de temps suivant * * N.B. Tn+1 = Tn + (CFL * RV . 'PASDETPS' . 'DELTAT'); * * ******** On detrui les choses qui ne servent plus * * * Les variables primitives * 'OUBL' KINCO 'V'; 'OUBL' KINCO 'P'; 'OUBL' KINCO 'T'; 'OUBL' KINCO 'S'; 'OUBL' KINCO 'GAMMA'; * * Les MCHAML faces * 'DETR' ROF ; 'DETR' VITF ; 'DETR' PF ; 'DETR' SF ; 'OUBL' KINCO 'RNF'; 'OUBL' KINCO 'VITNF'; 'OUBL' KINCO 'PNF'; 'OUBL' KINCO 'SF'; * * Les pentes 'ET' les limiteurs * 'SI' (ORD_ESP 'EGA' 2) ; 'DETR' GRADR ; 'DETR' GRADP ; 'DETR' GRADV ; 'DETR' GRADS ; 'DETR' ALR ; 'DETR' ALP ; 'DETR' ALV ; 'DETR' ALS ; 'FINSI' ; * ******** On impose le CL * * 'SI' LOGLIM; PROLIM RV ; 'FINSI' ; 'SI' LOGQUIT; 'QUITTER' BLOC1; 'FINSI'; 'MENAGE' ; 'FIN' BLOC1 ; ******************************************** **** FIN de Boucle Sur les Pas de Temps *** ******************************************** 'FINSI' ; 'FINPROC' ; ***************************************************** ***************************************************** ** FIN PROCEDURE EXEXSP ** ***************************************************** ***************************************************** ***************************************************** ***************************************************** ***** PROCEDURE PROLIM ***** ***************************************************** ***************************************************** ***************************************************** ***************************************************** ***** FIN PROCEDURE PROLIM ***** ***************************************************** ***************************************************** ************ * MAILLAGE * ************ RAF = 4 ; NY = RAF ; NX = 12 '*' RAF ; L = 1.0D0 ; DX = L '/' NX '/' 2.0D0; H = NY '*' DX ; xD = 0.5D0 '*' L ; xG = -1.0D0 '*' xD ; yH = 0.5D0 '*' H ; yB = -1.0D0 '*' yH ; A1 = xG yB ; A2 = 0.0D0 yB ; A3 = xD yB ; A4 = xD yH ; A5 = 0.0D0 yH ; A6 = xG yH ; VECTG = XG 0.0D0 ; VECTD = XD 0.0D0 ; xBG = xG '-' DX; XBD = xD '+' DX; B1 = xBG yB; B2 = xBG yH; B3 = xBD yB; B4 = xBD yH; DOM1 = LAT12 'TRANSLATION' NX VECTG ; DOM2 = LAT12 'TRANSLATION' NX VECTD ; VECTFG = (-1.0D0 '*' DX) 0.0D0; VECTFD = DX 0.0D0; FRONTG = LAT1 'TRANSLATION' 1 VECTFG; FRONTD = LAT2 'TRANSLATION' 1 VECTFD; * *** Rotation * ANGLE = 30.0D0; ORIG = 0.0D0 0.0D0; 'MESSAGE'; 'MESSAGE' (CHAIN 'ANGLE = ' ANGLE); 'MESSAGE'; DOM1 = DOM1 'TOURNER' ANGLE ORIG; DOM2 = DOM2 'TOURNER' ANGLE ORIG; FRONTG = FRONTG 'TOURNER' ANGLE ORIG; FRONTD = FRONTD 'TOURNER' ANGLE ORIG; DOMINT = DOM1 'ET' DOM2 ; 'ELIMINATION' DOMINT 1D-6; FRONT = FRONTG 'ET' FRONTD ; 'ELIMINATION' FRONT 1D-6; DOMTOT = DOMINT 'ET' FRONT; 'ELIMINATION' DOMTOT 1D-6; ********************** *** OBJETS MODELES *** ********************** MDOMTOT = 'CHANGER' DOMTOT 'QUAF' ; MDOMINT = 'CHANGER' DOMINT 'QUAF' ; MDOM1 = 'CHANGER' DOM1 'QUAF' ; MDOM2 = 'CHANGER' DOM2 'QUAF' ; MFRONTG = 'CHANGER' FRONTG 'QUAF' ; MFRONTD = 'CHANGER' FRONTD 'QUAF' ; MFRONT = 'CHANGER' FRONT 'QUAF' ; MFRONTG 'ET' MFRONTD 'ET' MFRONT) 1.E-5; MDNS = 'EULER' ; * ******* Creation de la ligne Utilisée pour le Post-Traitement * reliant les points centres * XINIT = XG '+' (0.5D0 '*' DX) ; YINIT = YB '+' (0.5D0 '*' DX) ; XFIN = XD '-' (0.5D0 '*' DX) ; YFIN = YINIT ; PINI = XINIT YINIT; PFIN = XFIN YFIN ; IAUX = (2 '*' NX) '-' 1 ; COURB = PINI 'DROIT' IAUX PFIN; COURB = COURB 'TOURNER' ANGLE ORIG; COURB = COURB 'COULEUR' 'VERT'; 'SI' GRAPH ; 'TITRE' ('CHAINE' 'Maillage '); 'FINSI' ; *********************** **** LA TABLE PGAZ **** *********************** PGAZ = 'TABLE' ; * **** Ordre des polynoms cv_i * PGAZ . 'NORD' = 0 ; * **** Especes qui sont dans les equations d'Euler * * **** Espece qui n'y est pas * PGAZ . 'ESPNEULE' = 'N2 '; * PGAZ . 'H2 ' = 'TABLE' ; PGAZ . 'H2O ' = 'TABLE' ; PGAZ . 'N2 ' = 'TABLE' ; PGAZ . 'O2 ' = 'TABLE' ; * **** R (J/Kg/K) * PGAZ . 'H2 ' . 'R' = 4130.0 ; PGAZ . 'H2O ' . 'R' = 461.4 ; PGAZ . 'N2 ' . 'R' = 296.8 ; PGAZ . 'O2 ' . 'R' = 259.8 ; * **** Regressions polynomials * * * Cas particulier: gaz "calorically perfect" * * **** "Enthalpies" (ou energies) de formations a OK (J/Kg) * Note: ce sont des entites numeriques * h_i = h_i(T0) '-' \int_0^{T0} cp_i(x) dx = * h_i(T0) '-' (\int_0^{T0} cv_i(x) dx '+' R_i * T0) * * Pour H2, H20, O2, N2 on a: * * T0 = 298.15 * PGAZ . 'H2 ' . 'H0K' = -4.195D6 ; PGAZ . 'H2O ' . 'H0K' = -1.395D7 ; PGAZ . 'N2 ' . 'H0K' = -2.953D5 ; PGAZ . 'O2 ' . 'H0K' = -2.634D5 ; * * *** Fin PGAZ * * *** Etat gauche * rog = 1.0 ; ung = 0.0 ; utg = 0.0 ; retg = .4291145555695540D+04 ; yh2g = 0.01 ; yo2g = 0.2 ; yh2og = 0.3 ; taug = yo2g ; epsg = yh2g ; * rouxg = ((ung '*' ('COS' ANGLE)) '-' (utg '*' ('SIN' ANGLE))) '*' rog ; rouyg = ((ung '*' ('SIN' ANGLE)) '+' (utg '*' ('COS' ANGLE))) '*' rog; * *** Etat droite * rod = 1.250D-1 ; und = 0.0D0 ; utd = 0.0D0 ; retd = .3598345082089522D+01 ; yh2d = 0.2 ; yo2d = 0.4 ; yh2od = 0.1 ; taud = yo2d ; epsd = yh2d ; rouxd = ((und '*' ('COS' ANGLE)) '-' (utd '*' ('SIN' ANGLE))) '*' rod; rouyd = ((und '*' ('SIN' ANGLE)) '+' (utd '*' ('COS' ANGLE))) '*' rod; * *** ro * * *** ro u, ro v * * *** ro e * * *** ro y * RYN = RYH2 'ET' RYO2 'ET' RYH2O ; * *** ro scal * RSCA = REPS 'ET' RTAU ; ******************************************************** *** CREATION DE 'MODE' POUR GRAPHIQUER LE CHAMELEM *** ******************************************************** * **** Les debits dans le repaire tube * GNN = (GNX * ('COS' ANGLE)) '+' (GNY * ('SIN' ANGLE)); GNT = (GNY * ('COS' ANGLE)) '-' (GNX * ('SIN' ANGLE)); * *** GRAPHIQUE DES C.I. * 'SI' GRAPH ; * 'SI' FAUX ; * *** CREATION DE CHAMELEM * 'FINSI' ; *********************** **** La table EQEX **** *********************** NITER = 10000 ; TFIN = 0.0075 ; 'TPSI' 0. 'TFINAL' TFIN * ***** Option VF = volumes finis * CONS = conservative * EULERMST = euler "thermally perfect" * METO = methode * 'OPTI' 'VF' 'CONS' 'EULERMST' METO * ***** Operateur 'KONV' * 'ZONE' $DOMTOT 'OPER' 'KONV' * ***** Arguments de 'KONV' (maximum 8 chatacters) * 'IPGAZ' 'RNF' 'VITNF' 'PNF' 'YF' 'SF' * ***** LIST des inconnues * 'INCO' 'RNI' 'GNI' 'ENI' 'RYNI' 'RSNI' ; * *** La table RV . INCO (de soustype INCO); * RV . 'INCO' = TABLE 'INCO' ; * *** Stokage des inconnues des equations d'Euler. * RV . 'INCO' . 'RNI' = 'COPIER' RN ; RV . 'INCO' . 'GNI' = 'COPIER' GN ; RV . 'INCO' . 'ENI' = 'COPIER' REN ; RV . 'INCO' . 'RYNI' = 'COPIER' RYN ; RV . 'INCO' . 'RSNI' = 'COPIER' RSCA ; * *** Le gaz * RV . 'INCO' . 'IPGAZ' = PGAZ ; * *** CONDITIONS LIMITS * RV . 'INCO' . 'CLIM' = FAUX ; * **** Ordre en espace * Ordre en temps * IE = 2 ; IT = 2 ; RV . 'ORDREESP' = IE ; RV . 'ORDRETPS' = IT ; *??? RV . 'MODTOT' = $DOMTOT ; * *********************************** *** Execution EXEXSP *** *********************************** * 'MESSAGE' ; 'MESSAGE' '**************************'; 'MESSAGE' ('CHAINE' 'METHODE : ' METO) ; 'MESSAGE' '**************************'; 'MESSAGE' ; 'TEMPS' ; EXEXSP RV ; 'TEMPS' ; TFIN = RV. 'PASDETPS'. 'TPS'; * **** SOLUTIONS * * **** Les variables conservatives * RN = 'COPIER' (RV . 'INCO' . 'RNI'); GN = 'COPIER' (RV . 'INCO'. 'GNI'); REN = 'COPIER' (RV . 'INCO'. 'ENI'); RYN = 'COPIER' (RV . 'INCO'. 'RYNI'); RSN = 'COPIER' (RV . 'INCO'. 'RSNI'); 'MESSAGE' 'Probleme dans les transport de scalaires passifs' ; 'ERREUR' 5 ; 'FINSI' ; * **** Les variables primitives * VN PN TN YN SCAN GAMN = 'PRIM' 'PERFTEMP' PGAZ RN GN REN RYN RSN ; * **** La vitesse dans le repaire tube * VNN = (VNX * ('COS' ANGLE)) '+' (VNY * ('SIN' ANGLE)); VNT = (VNY * ('COS' ANGLE)) '-' (VNX * ('SIN' ANGLE)); GNN = VNN * RN; GNT = VNT * RN; * *** GRAPHIQUE DES SOLUTIONS * 'SI' GRAPH ; * *** CREATION DE CHAMELEM * 'FINSI' ; * *** Objects evolutions * xx yy = 'COORDONNEE' Courb; x0 = 'MINIMUM' lxx; x1 = 'MAXIMUM' lxx ; * ro tro = CHAINE '1D ' METO ' : RO IT ' IT ' IE ' IE ' tmps ' TFIN ' elem ' 'QUA4' ; * u tu = CHAINE '1D ' METO ' : U IT ' IT ' IE ' IE ' tmps ' TFIN ' elem ' 'QUA4' ; * v tv = CHAINE '1D ' METO ' : V IT ' IT ' IE ' IE ' tmps ' TFIN ' elem ' 'QUA4' ; 'SI' GRAPH ; 'DESSIN' evv 'TITRE' tv 'XBOR' x0 x1; 'FINSI' ; * p tp = CHAINE '1D ' METO ' : P IT ' IT ' IE ' IE ' tmps ' TFIN ' elem ' 'QUA4' ; * gamma tgam = CHAINE '1D ' METO ' : GAMMA IT ' IT ' IE ' IE ' tmps ' TFIN ' elem ' 'QUA4' ; * s rocel = 'EXTRAIRE' &BL1 lro ; pcel = 'EXTRAIRE' &BL1 lp ; gamcel = 'EXTRAIRE' &BL1 lgam ; scel = pcel '/' (rocel '**' gamcel) ; 'FIN' BL1 ; ts = CHAINE '1D ' METO ' : s IT ' IT ' IE ' IE ' tmps ' TFIN ' elem ' 'QUA4' ; * Fractions massiques EVY = 'TABLE' ; TY = CHAINE '1D ' METO ' : Y IT ' IT ' IE ' IE ' tmps ' TFIN ' elem ' 'QUA4' ; YOLD = 'COPIER' YN ; 'REPETER' BLOCCO NUMECO; NOMCEL = 'EXTRAIRE' NOMECO &BLOCCO ; Y0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' NOMCEL N0 = NOMCEL ; EVY . &BLOCCO = EVY0; 'FIN' BLOCCO; EVSCA = 'TABLE' ; TSCA = CHAINE '1D ' METO ' : S IT ' IT ' IE ' IE ' tmps ' TFIN ' elem ' 'QUA4' ; SCAOLD = 'COPIER' SCAN ; 'REPETER' BLOCCO NUMSCA; NOMCEL = 'EXTRAIRE' NOMSCA &BLOCCO ; SCA0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' NOMCEL N0 = NOMCEL ; EVSCA . &BLOCCO = EVSCA0; 'FIN' BLOCCO; lroan = 'PROG' .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .97328030D+00 .93919980D+00 .90617814D+00 .87418663D+00 .84319724D+00 .81318261D+00 .78411600D+00 ; .75597130D+00 .72872302D+00 .70234626D+00 .67681672D+00 .65211066D+00 .62820492D+00 .60507689D+00 .58270451D+00 .56106625D+00 .54014110D+00 .51990856D+00 .50034865D+00 .48144185D+00 .46316916D+00 .44551201D+00 .42845233D+00 .41197248D+00 .39605527D+00 .38068395D+00 .36584219D+00 .35151407D+00 .33768408D+00 .32433713D+00 .31145849D+00 .29903383D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00); .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .99363934D+00 .99363934D+00 .99363934D+00 .99363934D+00 .99363934D+00 .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00) ; .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00) ; lpan = 'PROG' .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .96588232D+03 .92436107D+03 .88446286D+03 .84613062D+03 .80930907D+03 .77394466D+03 .73998551D+03; .70738140D+03 .67608370D+03 .64604531D+03 .61722065D+03 .58956562D+03 .56303751D+03 .53759501D+03 .51319816D+03 .48980829D+03 .46738801D+03 .44590117D+03 .42531280D+03 .40558909D+03 .38669738D+03 .36860608D+03 .35128469D+03 .33470372D+03 .31883470D+03 .30365012D+03 .28912341D+03 .27522894D+03 .26194192D+03 .24923848D+03 .23709554D+03 .22549085D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03); .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00); .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00) ; luan = 'PROG' .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .94876987D+00 .21928876D+01 .34370054D+01 .46811232D+01 .59252410D+01 .71693587D+01 .84134765D+01; .96575943D+01 .10901712D+02 .12145830D+02 .13389948D+02 .14634065D+02 .15878183D+02 .17122301D+02 .18366419D+02 .19610537D+02 .20854654D+02 .22098772D+02 .23342890D+02 .24587008D+02 .25831125D+02 .27075243D+02 .28319361D+02 .29563479D+02 .30807596D+02 .32051714D+02 .33295832D+02 .34539950D+02 .35784068D+02 .37028185D+02 .38272303D+02 .39516421D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02); .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00); .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00) ; lsan = 'PROG' .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03; .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03); .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .22678920D+03 .22678920D+03 .22678920D+03 .22678920D+03 .22678920D+03 .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02); .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02) ; lgaman = 'PROG' .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01; .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01); .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01); .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01) ; lyan = 'TABLE' ; .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01; .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01); .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00); .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00) ; .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00; .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00); .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00); .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00) ; .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00; .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00); .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00); .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 ) ; ERRO = 'ABS' (LRO '-' LROAN) ; ERP = 'ABS' (LP '-' LPAN) ; ERU = 'ABS' (LU '-' LUAN) ; ERS = 'ABS' (LS '-' LSAN) ; L1RO = 0.0 ; L1P = 0.0 ; L1U = 0.0 ; L1S = 0.0 ; 'REPETER' BL1 NDIM ; L1RO = L1RO '+' ('EXTRAIRE' &BL1 ERRO) ; L1P = L1P '+' ('EXTRAIRE' &BL1 ERP) ; L1U = L1U '+' ('EXTRAIRE' &BL1 ERU) ; L1S = L1S '+' ('EXTRAIRE' &BL1 ERS) ; 'FIN' BL1 ; L1RO = L1RO '/' (NDIM * ('MAXIMUM' lroan)) ; L1P = L1P '/' (NDIM * ('MAXIMUM' lpan)) ; L1U = L1U '/' (NDIM * ('MAXIMUM' luan)) ; L1S = L1S '/' (NDIM * ('MAXIMUM' lsan)) ; * *** Quelque DESSIN * 'SI' GRAPH ; TAB1=TABLE; TAB1.'TITRE'= TABLE ; TAB1.1='MARQ TRIB REGU'; TAB1.2='MARQ CROI REGU'; 'DESSIN' (evro 'ET' evroa) 'TITRE' tro 'XBOR' x0 x1 'LEGE' TAB1; 'DESSIN' (evp 'ET' evpa) 'TITRE' tp 'XBOR' x0 x1 'LEGE' TAB1; 'DESSIN' (evu 'ET' evua) 'TITRE' tu 'XBOR' x0 x1 'LEGE' TAB1; 'DESSIN' (evs 'ET' evsa) 'TITRE' ts 'XBOR' x0 x1 'LEGE' TAB1; 'DESSIN' (evgam 'ET' evgama) 'TITRE' tgam 'XBOR' x0 x1 'LEGE' TAB1; 'REPETER' BL 3 ; NOMCEL = 'EXTRAIRE' NOMECO &BL ; (lyan . &BL ) ; 'DESSIN' ((evy . &BL) 'ET' evyacel) 'TITRE' TY 'XBOR' x0 x1 'YBOR' -0.01 1.01 'LEGE' TAB1; 'FIN' BL; * TAU = YO2, EPS = YH2 (lyan . 2 ) ; 'XBOR' x0 x1 'YBOR' 0.15 0.45 'LEGE' TAB1; (lyan . 1 ) ; 'XBOR' x0 x1 'YBOR' 0. 0.25 'LEGE' TAB1; 'FINSI' ; 'SI' (L1RO > 5.0D-2); 'ERREUR' 5 ; 'FINSI' ; 'SI' (L1P > 1.0D-2); 'ERREUR' 5 ; 'FINSI' ; 'SI' (L1U > 5.0D-2); 'ERREUR' 5 ; 'FINSI' ; 'SI' (L1S > 5.0D-2); 'ERREUR' 5 ; 'FINSI' ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales