Download tube_multi_ther.dgibi
* fichier : tube_multi_ther.dgibi
******************************************************************
* Calcul du tube a choc; CAS MULTIESPECE *
* GAZ multi-especes "calorically perfect", *
* avec le modele "thermally perfect" *
* *
* *
* FORMULATION VF COMPRESSIBLE EXPLICITE *
* SOLVEUR: Van Leer - Hanel *
* *
* A. BECCANTINI TTMF DECEMBRE 1998 *
******************************************************************
'MESSAGE' 'A mettre à jour' ;
'FIN' ;
'OPTION' 'DIME' 2 ;
'OPTION' 'ELEM' 'QUA4' ;
'OPTION' 'ISOV' 'SULI' ;
'OPTION' 'ECHO' 0 ;
'OPTION' 'TRAC' 'X';
* GRAPH = VRAI ;
GRAPH = FAUX ;
*
*** Methodes possibles :
*
* 'VLH '
*
METO = 'VLH' ;
* METO = 'CG' ;
*****************************************************
*****************************************************
** PROCEDURE EXEX POUR FORMULATION VF COMPRESSIBLE **
** CAS MULTIESPECES "THERMALLY PERFECT" **
*****************************************************
*****************************************************
'DEBPROC' EXEX ;
'ARGUMENT' RV*TABLE ;
*******************************************
**** Recherche de RV . *KONV . IDEUL ****
*******************************************
*
**** Nom de la table RV . *'KONV' -> NOMT
*
NBOP = 'DIME' (RV . 'LISTOPER' ) ;
'REPETER' BL1 NBOP;
MCEL = 'EXTRAIRE' &BL1 RV . 'LISTOPER';
'SI' ( 'EGA' MCEL 'KONV ');
NOMT = 'MOT' ('TEXTE' ('CHAINE' &BL1 MCEL));
'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 . NOMT) 'ARG5') ;
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;
CFL = rv.'ALFA' ;
*********************
**** 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 . 'GAMMA' = 'PRIM' 'PERFTEMP' (KINCO . 'IPGAZ')
(KINCO . 'RNI') (KINCO . 'GNI') (KINCO . 'ENI')
(KINCO. 'RYNI');
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');
I = 0 ;
'REPETER' BLOC1 (RV . 'ITMA') ;
I = I + 1 ;
*
***** Les variables primitives
*
KINCO . 'V' KINCO . 'P' KINCO . 'T' KINCO . 'Y'
KINCO . 'GAMMA' = 'PRIM' 'PERFTEMP' (KINCO . 'IPGAZ')
(KINCO . 'RNI') (KINCO . 'GNI') (KINCO . 'ENI')
(KINCO. 'RYNI');
'SI' (ORD_ESP 'EGA' 1) ;
ROF VITF PF YF = 'PRET' 'PERFTEMP'
ORD_ESP ORD_TPS KDOMA (KINCO . 'IPGAZ') (KINCO . 'RNI')
(KINCO . 'V') (KINCO . 'P') (KINCO . 'Y') ;
'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 ;
'SI' (ORD_TPS 'EGA' 1);
ROF VITF PF YF = '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 ;
'SINON' ;
*
********* Ordre 2 en temps
*
ROF VITF PF YF = '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 . '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 ;
*
********* Boucle sur les operateurs
*
'REPETER' BLOC2 NBOP ;
NOMPER = 'EXTRAIRE' &BLOC2 (RV . 'LISTOPER');
NOTABLE = 'MOT' ('TEXTE' ('CHAINE' &BLOC2 NOMPER) ) ;
('TEXTE' NOMPER) (RV . NOTABLE) ;
'FIN' BLOC2 ;
*
********* Mise a jour de la table RV . 'PASDETPS'
*
'SI' ('EXISTE' RV 'DTI');
DTI = 'MINIMUM'
('PROG' ((RV . 'DTI') '/' CFL)
(RV . 'PASDETPS' . 'DTCONV') );
'SINON';
DTI = (RV . 'PASDETPS' . 'DTCONV');
'FINSI';
RV . 'PASDETPS' . 'DELTAT' = DTI ;
TMPS = RV . 'PASDETPS' . 'TPS';
DTI0 = TFIN '-' TMPS;
DTI0 = DTI0 '/' CFL;
'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');
*
'AVCT' RV CFL 'IMPR' (RV.'FIDT') ;
*
******** On detrui les choses qui ne servent plus
*
*
* Les variables primitives
*
'DETR' ( KINCO . 'V');
'DETR' ( KINCO . 'P');
'DETR' ( KINCO . 'T');
'DETR' ( KINCO . 'Y');
'DETR' ( KINCO . 'GAMMA');
'OUBL' KINCO 'V';
'OUBL' KINCO 'P';
'OUBL' KINCO 'T';
'OUBL' KINCO 'Y';
'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';
*
* Les pentes 'ET' les limiteurs
*
'SI' (ORD_ESP 'EGA' 2);
'DETR' GRADR;
'DETR' GRADP;
'DETR' GRADV;
'DETR' GRADY;
'DETR' ALR;
'DETR' ALP;
'DETR' ALV;
'DETR' ALY;
'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 ***
********************************************
'SINON' ;
*********************************************************
**** Mono-espece, boucle sur les pas de temps ****
*********************************************************
KINCO . 'V' KINCO . 'P' KINCO . 'T'
KINCO . 'GAMMA' = 'PRIM' 'PERFTEMP' (KINCO . 'IPGAZ')
(KINCO . 'RNI') (KINCO . 'GNI') (KINCO . 'ENI') ;
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');
I = 0 ;
'REPETER' BLOC1 (RV . 'ITMA') ;
I = I + 1 ;
*
***** Les variables primitives
*
KINCO . 'V' KINCO . 'P' KINCO . 'T'
KINCO . 'GAMMA' = 'PRIM' 'PERFTEMP' (KINCO . 'IPGAZ')
(KINCO . 'RNI') (KINCO . 'GNI') (KINCO . 'ENI') ;
'SI' (ORD_ESP 'EGA' 1) ;
ROF VITF PF = 'PRET' 'PERFTEMP'
ORD_ESP ORD_TPS KDOMA (KINCO . 'IPGAZ') (KINCO . 'RNI')
(KINCO . 'V') (KINCO . 'P') ;
'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 ;
'SI' (ORD_TPS 'EGA' 1);
ROF VITF PF = '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 = 'PRET' 'PERFTEMP' ORD_ESP ORD_TPS
KDOMA (KINCO . 'IPGAZ')
(KINCO . 'RNI') GRADR ALR
(KINCO . 'V') GRADV ALV
(KINCO . 'P') GRADP ALP
(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 ;
*
********* Boucle sur les operateurs
*
'REPETER' BLOC2 NBOP ;
NOMPER = 'EXTRAIRE' &BLOC2 (RV . 'LISTOPER');
NOTABLE = 'MOT' ('TEXTE' ('CHAINE' &BLOC2 NOMPER) ) ;
('TEXTE' NOMPER) (RV . NOTABLE) ;
'FIN' BLOC2 ;
*
********* Mise a jour de la table RV . 'PASDETPS'
*
'SI' ('EXISTE' RV 'DTI');
DTI = 'MINIMUM'
('PROG' ((RV . 'DTI') '/' CFL)
(RV . 'PASDETPS' . 'DTCONV') );
'SINON';
DTI = (RV . 'PASDETPS' . 'DTCONV');
'FINSI';
RV . 'PASDETPS' . 'DELTAT' = DTI ;
TMPS = RV . 'PASDETPS' . 'TPS';
DTI0 = TFIN '-' TMPS;
DTI0 = DTI0 '/' CFL;
'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');
*
'AVCT' RV CFL 'IMPR' (RV.'FIDT') ;
*
******** On detrui les choses qui ne servent plus
*
*
* Les variables primitives
*
'DETR' ( KINCO . 'V');
'DETR' ( KINCO . 'P');
'DETR' ( KINCO . 'T');
'DETR' ( KINCO . 'GAMMA');
'OUBL' KINCO 'V';
'OUBL' KINCO 'P';
'OUBL' KINCO 'T';
'OUBL' KINCO 'GAMMA';
*
* Les MCHAML faces
*
'DETR' ROF ;
'DETR' VITF ;
'DETR' PF ;
'OUBL' KINCO 'RNF';
'OUBL' KINCO 'VITNF';
'OUBL' KINCO 'PNF';
*
* Les pentes 'ET' les limiteurs
*
'SI' (ORD_ESP 'EGA' 2);
'DETR' GRADR;
'DETR' GRADP;
'DETR' GRADV;
'DETR' ALR;
'DETR' ALP;
'DETR' ALV;
'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 EXEX **
*****************************************************
*****************************************************
*****************************************************
*****************************************************
***** 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;
BAS1 = A1 'DROI' NX A2 ;
BAS2 = A2 'DROI' NX A3 ;
HAU2 = A4 'DROI' NX A5 ;
HAU1 = A5 'DROI' NX A6 ;
LATG = B1 'DROI' NY B2 ;
LAT1 = A1 'DROI' NY A6 ;
LAT12 = A2 'DROI' NY A5 ;
LAT2 = A3 'DROI' NY A4 ;
LATD = B3 'DROI' NY B4 ;
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;
FRONTG = FRONTG 'COUL' ROUG ;
FRONTD = LAT2 'TRANSLATION' 1 VECTFD;
FRONTD = FRONTD 'COUL' VERT ;
*
*** 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' ;
'ELIM' (MDOMTOT 'ET' MDOMINT 'ET' MDOM1 'ET' MDOM2 'ET'
MFRONTG 'ET' MFRONTD 'ET' MFRONT) 1.E-5;
MDNS = 'EULER' ;
$DOMTOT = 'MODE' MDOMTOT MDNS ;
$DOMINT = 'MODE' MDOMINT MDNS ;
$DOM1 = 'MODE' MDOM1 MDNS ;
$DOM2 = 'MODE' MDOM2 MDNS ;
$FRONTG = 'MODE' MFRONTG MDNS ;
$FRONTD = 'MODE' MFRONTD MDNS ;
$FRONT = 'MODE' MFRONT MDNS ;
*
******* 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';
'ELIMINATION' 0.001 Courb ('DOMA' $DOMTOT 'CENTRE') ;
'SI' GRAPH ;
'TRACER' (('DOMA' $DOMTOT 'MAILLAGE') 'ET' COURB)
'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
*
PGAZ . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' ;
*
**** 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"
*
PGAZ . 'H2 ' . 'A' = 'PROG' .14571861D+05 ;
PGAZ . 'H2O ' . 'A' = 'PROG' .26589930D+04 ;
PGAZ . 'N2 ' . 'A' = 'PROG' .10024563D+04 ;
PGAZ . 'O2 ' . 'A' = 'PROG' .92885670D+03 ;
*
**** "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 ;
*
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 ;
rouxd = ((und '*' ('COS' ANGLE)) '-'
(utd '*' ('SIN' ANGLE))) '*' rod;
rouyd = ((und '*' ('SIN' ANGLE)) '+'
(utd '*' ('COS' ANGLE))) '*' rod;
*
*** ro
*
RO_f1 = 'KCHT' $FRONTG 'SCAL' 'CENTRE' rog ;
RO_f2 = 'KCHT' $FRONTD 'SCAL' 'CENTRE' rod ;
RO_f = 'KCHT' $FRONT 'SCAL' 'CENTRE' (RO_f1 'ET' RO_f2) ;
RO_i1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' rog;
RO_i2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' rod;
RO_i = 'KCHT' $DOMINT 'SCAL' 'CENTRE' (RO_i1 'ET' RO_i2);
RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (RO_i 'ET' RO_f) ;
*
*** ro u, ro v
*
GN_f1 = 'KCHT' $FRONTG 'VECT' 'CENTRE' (rouxg rouyg);
GN_f2 = 'KCHT' $FRONTD 'VECT' 'CENTRE' (rouxd rouyd);
GN_f = 'KCHT' $FRONT 'VECT' 'CENTRE' (GN_f1 'ET' GN_f2);
GN_i1 = 'KCHT' $DOM1 'VECT' 'CENTRE' (rouxg rouyg);
GN_i2 = 'KCHT' $DOM2 'VECT' 'CENTRE' (rouxd rouyd);
GN_i = 'KCHT' $DOMINT 'VECT' 'CENTRE' (GN_i1 'ET' GN_i2);
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' (GN_i 'ET' GN_f) ;
*
*** ro e
*
RE_f1 = 'KCHT' $FRONTG 'SCAL' 'CENTRE' retg ;
RE_f2 = 'KCHT' $FRONTD 'SCAL' 'CENTRE' retd ;
RE_f = 'KCHT' $FRONT 'SCAL' 'CENTRE' (RE_f1 'ET' RE_f2) ;
RE_i1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' retg ;
RE_i2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' retd ;
RE_i = 'KCHT' $DOMINT 'SCAL' 'CENTRE' (RE_i1 'ET' RE_i2);
REN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (RE_i ET RE_f) ;
*
*** ro y
*
RYH2 =('KCHT' $FRONTG 'SCAL' 'CENTRE' 'COMP' 'H2 ' (rog '*' yh2g)) 'ET'
('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'H2 ' (rog '*' yh2g)) 'ET'
('KCHT' $FRONTD 'SCAL' 'CENTRE' 'COMP' 'H2 ' (rod '*' yh2d)) 'ET'
('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'H2 ' (rod '*' yh2d));
RYO2 =('KCHT' $FRONTG 'SCAL' 'CENTRE' 'COMP' 'O2 ' (rog '*' yO2g)) 'ET'
('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'O2 ' (rog '*' yO2g)) 'ET'
('KCHT' $FRONTD 'SCAL' 'CENTRE' 'COMP' 'O2 ' (rod '*' yO2d)) 'ET'
('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'O2 ' (rod '*' yO2d));
RYH2O =('KCHT' $FRONTG 'SCAL' 'CENTRE' 'COMP' 'H2O ' (rog '*' yH2Og))
'ET' ('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'H2O ' (rog '*' yH2Og))
'ET' ('KCHT' $FRONTD 'SCAL' 'CENTRE' 'COMP' 'H2O ' (rod '*' yH2Od))
'ET' ('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'H2O ' (rod '*' yH2Od));
RYN = RYH2 'ET' RYO2 'ET' RYH2O ;
********************************************************
*** CREATION DE 'MODE' POUR GRAPHIQUER LE CHAMELEM ***
********************************************************
MOD1 = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
*
**** Les debits dans le repaire tube
*
GNX = 'EXCO' 'UX' GN;
GNY = 'EXCO' 'UY' GN;
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
*
CHM_RN = 'KCHA' $DOMTOT 'CHAM' RN ;
CHM_GNN = 'KCHA' $DOMTOT 'CHAM' GNN ;
CHM_GNT = 'KCHA' $DOMTOT 'CHAM' GNT ;
CHM_REN = 'KCHA' $DOMTOT 'CHAM' REN ;
CHM_RH2 = 'KCHA' $DOMTOT 'CHAM' RYH2 ;
CHM_RO2 = 'KCHA' $DOMTOT 'CHAM' RYO2 ;
CHM_RH2O = 'KCHA' $DOMTOT 'CHAM' RYH2O ;
TRAC CHM_RN MOD1 'TITR' ('CHAINE' 'RO at t=' 0.0);
TRAC CHM_REN MOD1 'TITR' ('CHAINE' 'ROET at t=' 0.0);
TRAC CHM_GNN MOD1 'TITR' ('CHAINE' 'ROUN at t=' 0.0);
TRAC CHM_GNT MOD1 'TITR' ('CHAINE' 'ROUT at t=' 0.0);
TRAC CHM_RH2 MOD1 'TITR' ('CHAINE' 'RYH2 at t=' 0.0);
TRAC CHM_RO2 MOD1 'TITR' ('CHAINE' 'RYO2 at t=' 0.0);
'FINSI' ;
***********************
**** La table EQEX ****
***********************
CFL = 1.4D0 ;
NITER = 10000 ;
TFIN = 0.0075 ;
RV = 'EQEX' ('DOMA' $DOMTOT 'TABLE') 'ITMA' NITER 'ALFA' CFL
'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'
*
***** LIST des inconnues
*
'INCO' 'RNI' 'GNI' 'ENI' 'RYNI' ;
*
*** 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 ;
*
*** 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 EXEX ***
***********************************
*
'MESSAGE' ;
'MESSAGE' '**************************';
'MESSAGE' ('CHAINE' 'METHODE : ' METO) ;
'MESSAGE' '**************************';
'MESSAGE' ;
'TEMPS' ;
EXEX 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');
*
**** Les variables primitives
*
VN PN TN YN GAMN = 'PRIM' 'PERFTEMP' PGAZ
RN GN REN RYN ;
*
**** La vitesse dans le repaire tube
*
VNX = 'EXCO' 'UX' VN;
VNY = 'EXCO' 'UY' VN;
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
*
CHM_RN = 'KCHA' $DOMTOT 'CHAM' RN;
CHM_GNN = 'KCHA' $DOMTOT 'CHAM' GNN ;
CHM_GNT = 'KCHA' $DOMTOT 'CHAM' GNT ;
CHM_REN = 'KCHA' $DOMTOT 'CHAM' REN;
TRAC CHM_RN MOD1 'TITR' ('CHAINE' 'RO at t=' TFIN);
TRAC CHM_REN MOD1 'TITR' ('CHAINE' 'ROET at t=' TFIN);
TRAC CHM_GNN MOD1 'TITR' ('CHAINE' 'ROUN at t=' TFIN);
TRAC CHM_GNT MOD1 'TITR' ('CHAINE' 'ROUT at t=' TFIN);
'FINSI' ;
*
*** Objects evolutions
*
xx yy = 'COORDONNEE' Courb;
ss = 'KOPS' ('KOPS' ('COS' ANGLE) '*' xx) '+'
('KOPS' ('SIN' ANGLE) '*' yy);
evxx = 'EVOL' 'CHPO' ss Courb ;
lxx = 'EXTRAIRE' evxx 'ORDO' ;
x0 = 'MINIMUM' lxx;
x1 = 'MAXIMUM' lxx ;
* ro
evro = 'EVOL' 'CHPO' RN Courb ;
lro = 'EXTRAIRE' evro 'ORDO' ;
evro = 'EVOL' 'MANU' 'x' lxx 'ro' lro;
tro = CHAINE '1D ' METO ' : RO IT ' IT ' IE ' IE
' tmps ' TFIN ' elem ' 'QUA4' ;
* u
evu = 'EVOL' 'CHPO' VNN Courb ;
lu = 'EXTRAIRE' evu 'ORDO' ;
evu = 'EVOL' 'MANU' 'x' lxx 'u' lu ;
tu = CHAINE '1D ' METO ' : U IT ' IT ' IE ' IE
' tmps ' TFIN ' elem ' 'QUA4' ;
* v
evv = 'EVOL' 'CHPO' VNT Courb ;
lv = 'EXTRAIRE' evv 'ORDO' ;
evv = 'EVOL' 'MANU' 'x' lxx 'v' lv ;
tv = CHAINE '1D ' METO ' : V IT ' IT ' IE ' IE
' tmps ' TFIN ' elem ' 'QUA4' ;
'SI' GRAPH ;
'DESSIN' evv 'TITRE' tv 'XBOR' x0 x1;
'FINSI' ;
* p
evp = 'EVOL' 'CHPO' PN Courb ;
lp = 'EXTRAIRE' evp 'ORDO' ;
evp = 'EVOL' 'MANU' 'x' lxx 'p' lp ;
tp = CHAINE '1D ' METO ' : P IT ' IT ' IE ' IE
' tmps ' TFIN ' elem ' 'QUA4' ;
* gamma
evgam = 'EVOL' 'CHPO' GAMN Courb ;
lgam = 'EXTRAIRE' evgam 'ORDO' ;
evgam = 'EVOL' 'MANU' 'x' lxx 'gamma' lgam ;
tgam = CHAINE '1D ' METO ' : GAMMA IT ' IT ' IE ' IE
' tmps ' TFIN ' elem ' 'QUA4' ;
* s
ls = 'PROG' ;
'REPETER' BL1 ('DIME' lro);
rocel = 'EXTRAIRE' &BL1 lro ;
pcel = 'EXTRAIRE' &BL1 lp ;
gamcel = 'EXTRAIRE' &BL1 lgam ;
scel = pcel '/' (rocel '**' gamcel) ;
ls = ls 'ET' ('PROG' scel) ;
'FIN' BL1 ;
evs = 'EVOL' 'MANU' 'x' lxx 's' ls ;
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 ;
NOMECO = 'EXTR' YOLD 'COMP';
NUMECO = 'DIME' NOMECO ;
'REPETER' BLOCCO NUMECO;
NOMCEL = 'EXTRAIRE' NOMECO &BLOCCO ;
Y0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
'COMP' NOMCEL
('EXCO' NOMCEL YOLD NOMCEL) ;
N0 = NOMCEL ;
EVY0 = 'EVOL' 'CHPO' Y0 Courb ;
LY0 = 'EXTRAIRE' EVY0 'ORDO' ;
EVY0 = 'EVOL' 'MANU' 'x' lxx N0 LY0 ;
EVY . &BLOCCO = EVY0;
'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 ;
lroan = lroan 'ET' ('PROG'
.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);
lroan = lroan 'ET' ('PROG'
.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) ;
lroan = lroan 'ET' ('PROG'
.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;
lpan = lpan 'ET' ('PROG'
.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);
lpan = lpan 'ET' ('PROG'
.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);
lpan = lpan 'ET' ('PROG'
.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;
luan = luan 'ET' ('PROG'
.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);
luan = luan 'ET' ('PROG'
.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);
luan = luan 'ET' ('PROG'
.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;
lsan = lsan 'ET' ('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);
lsan = lsan 'ET' ('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 .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);
lsan = lsan 'ET' ('PROG'
.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;
lgaman = lgaman 'ET' ('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);
lgaman = lgaman 'ET' ('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 .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);
lgaman = lgaman 'ET' ('PROG'
.12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01
.12764662D+01) ;
lyan = 'TABLE' ;
lyan . 1 = '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 .10000000D-01 .10000000D-01
.10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01;
lyan . 1 = lyan . 1 'ET' ('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 .10000000D-01 .10000000D-01
.10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01);
lyan . 1 = lyan . 1 'ET' ('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 .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);
lyan . 1 = lyan . 1 'ET' ('PROG'
.20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
.20000000D+00) ;
lyan . 2 = 'PROG'
.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;
lyan . 2 = lyan . 2 'ET' ('PROG'
.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);
lyan . 2 = lyan . 2 'ET' ('PROG'
.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);
lyan . 2 = lyan . 2 'ET' ('PROG'
.40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00
.40000000D+00) ;
lyan . 3 = 'PROG'
.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;
lyan . 3 = lyan . 3 'ET' ('PROG'
.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);
lyan . 3 = lyan . 3 'ET' ('PROG'
.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);
lyan . 3 = lyan . 3 'ET' ('PROG'
.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 ;
NDIM = 'DIME' erro ;
'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 ;
evroa = 'EVOL' 'MANU' 'x' lxx 'ro' lroan ;
evpa = 'EVOL' 'MANU' 'x' lxx 'p' lpan ;
evua = 'EVOL' 'MANU' 'x' lxx 'ua' luan ;
evsa = 'EVOL' 'MANU' 'x' lxx 's' lsan ;
evgama = 'EVOL' 'MANU' 'x' lxx 'gamma' lgaman ;
TAB1=TABLE;
TAB1.'TITRE'= TABLE ;
TAB1.1='MARQ TRIB REGU';
TAB1.'TITRE' . 1 = MOT 'Numerique' ;
TAB1.2='MARQ CROI REGU';
TAB1.'TITRE' . 2 = MOT 'Exacte' ;
'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 ;
evyacel = 'EVOL' 'MANU' 'x' lxx nomcel
(lyan . &BL ) ;
'DESSIN' ((evy . &BL) 'ET' evyacel) 'TITRE' TY
'XBOR' x0 x1 'YBOR' -0.01 1.01 'LEGE' TAB1;
'FIN' BL;
'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 - All rights reserved.
Disclaimer