* fichier : primtest3.dgibi
***********************************************************
**** APPROCHE VF "Cell-Centred Formulation" pour la ****
**** solution des ****
**** Equations d'Euler pour un gaz parfait ****
**** OPERATEUR PRIM ****
**** Cas: gaz multiespece "calorically perfect" ****
**** ****
**** A. BECCANTINI DRN/DMT/SEMT/TTMF MARS 1998 ****
***********************************************************
'OPTION' 'DIME' 2 ;
'OPTION' 'ELEM' QUA4 ;
'OPTION' 'ECHO' 0;
'OPTION' 'TRAC' 'PS' ;
*
*** GRAPHIQUES
*
* GRAPH = VRAI ;
GRAPH = FAUX ;
***************************
***** DOMAINE SPATIAL ****
***************************
A1 = 0.0D0 0.0D0;
A2 = 2.0D0 0.0D0;
A3 = 3.0D0 0.0D0;
A4 = 4.0D0 1.0D0;
A5 = 1.0D0 1.0D0;
A6 = 0.0D0 1.0D0;
A7 = 7.0D0 8.0D0 ;
MAI1 = ('MANUEL' 'POI1' A1) 'ET'
('MANUEL' 'POI1' A2) 'ET'
('MANUEL' 'POI1' A3) 'ET'
('MANUEL' 'POI1' A4) 'ET'
('MANUEL' 'POI1' A5) 'ET'
('MANUEL' 'POI1' A6) ;
*
MAI2 = ('MANUEL' 'POI1' A2) 'ET'
('MANUEL' 'POI1' A1) 'ET'
('MANUEL' 'POI1' A3) 'ET'
('MANUEL' 'POI1' A4) 'ET'
('MANUEL' 'POI1' A5) 'ET'
('MANUEL' 'POI1' A6) ;
*
MAI3 = ('MANUEL' 'POI1' A3) 'ET'
('MANUEL' 'POI1' A2) 'ET'
('MANUEL' 'POI1' A1) 'ET'
('MANUEL' 'POI1' A4) 'ET'
('MANUEL' 'POI1' A5) 'ET'
('MANUEL' 'POI1' A6) ;
*
MAI4 = ('MANUEL' 'POI1' A4) 'ET'
('MANUEL' 'POI1' A3) 'ET'
('MANUEL' 'POI1' A2) 'ET'
('MANUEL' 'POI1' A1) 'ET'
('MANUEL' 'POI1' A5) 'ET'
('MANUEL' 'POI1' A6) ;
************************
**** MODELE DU GAZ ****
************************
NESP = 4;
*
*** GAS: H_2, O_2, H_2O, N_2
*
* CP, CV en J/Kg/K @ T = 3000
*
PGAS = 'TABLE' ;
PGAS . 'CP' = 'TABLE' ;
PGAS . 'CP' . 'H2 ' = .18729066D+05 ;
PGAS . 'CP' . 'O2 ' = .11886820D+04 ;
PGAS . 'CP' . 'H2O ' = .31209047D+04 ;
PGAS . 'CP' . 'N2 ' = .12993995D+04 ;
PGAS . 'CV' = 'TABLE' ;
PGAS . 'CV' . 'H2 ' = .14571861D+05 ;
PGAS . 'CV' . 'O2 ' = .92885670D+03 ;
PGAS . 'CV' . 'H2O ' = .26589930D+04 ;
PGAS . 'CV' . 'N2 ' = .10024563D+04;
*
**** Especes qui sont dans les equations d'Euler
*
PGAS . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' ;
*
**** Espece qui n'y est pas
*
PGAS . 'ESPNEULE' = 'N2 ';
*
***********************
**** Les CHPOINTs ****
***********************
GAMMA = 'BRUI' 'BLAN' 'UNIF' 1.4 0.3 MAI1 ;
RN = 'BRUI' 'BLAN' 'UNIF' 1.24 0.5 MAI1 ;
PN = 'BRUI' 'BLAN' 'UNIF' 11.24 5.5 MAI2 ;
VNY = ('NOMC' 'UY'
('BRUI' 'BLAN' 'UNIF' 1.24 7.5 MAI3)
'NATU' 'DISCRET') ;
VNX = ('NOMC' 'UX'
('BRUI' 'BLAN' 'UNIF' 0.24 0.5 MAI4)
'NATU' 'DISCRET') ;
VN = VNX 'ET' VNY ;
*
*** La quantité de mouvement
*
GN = VN '*' RN ('MOTS' 'UY' 'UX') ('MOTS' 'SCAL' 'SCAL')
('MOTS' 'UY' 'UX') ;
GN1 = 'COPIER' GN ;
*
**** Les fractions massiques YN et les masses RYN
*
* N.B. YN n'as pas le meme supporte geometrique
* que RN, PN; en general la numerotation
* des noeuds est differente, mais ce n'est
* pas grave!
*
YN = ('NOMC' 'H2O ' ('BRUI' 'BLAN' 'UNIF' 0.15 0.1 MAI2)
'NATU' 'DISCRET') 'ET'
('NOMC' 'O2 ' ('BRUI' 'BLAN' 'UNIF' 0.17 0.08 MAI1)
'NATU' 'DISCRET') 'ET'
('NOMC' 'H2 ' ('BRUI' 'BLAN' 'UNIF' 0.11 0.08 MAI3)
'NATU' 'DISCRET') ;
UNCH = 'MANUEL' 'CHPO' MAI1 1 'SCAL' 1.0 ;
YNESP = UNCH '-' ('PSCAL' UNCH YN ('MOTS' 'SCAL' 'SCAL' 'SCAL')
(PGAS . 'ESPEULE')) ;
YNESP = 'NOMC' 'N2 ' YNESP 'NATU' 'DISCRET' ;
YNTOT = YN 'ET' YNESP ;
RYN = YN '*' RN (PGAS . 'ESPEULE') ('MOTS' 'SCAL' 'SCAL' 'SCAL')
(PGAS . 'ESPEULE') ;
RYN1 = 'COPIER' RYN ;
CV = ('MANUEL' 'CHPO' MAI1 1 'H2' (PGAS . 'CV' . 'H2 ')
'NATU' 'DISCRET') 'ET'
('MANUEL' 'CHPO' MAI1 1 'O2' (PGAS . 'CV' . 'O2 ')
'NATU' 'DISCRET') 'ET'
('MANUEL' 'CHPO' MAI1 1 'H2O' (PGAS . 'CV' . 'H2O ')
'NATU' 'DISCRET') 'ET'
('MANUEL' 'CHPO' MAI1 1 'N2' (PGAS . 'CV' . 'N2 ')
'NATU' 'DISCRET') ;
CP = ('MANUEL' 'CHPO' MAI1 1 'H2' (PGAS . 'CP' . 'H2 ')
'NATU' 'DISCRET') 'ET'
('MANUEL' 'CHPO' MAI1 1 'O2' (PGAS . 'CP' . 'O2 ')
'NATU' 'DISCRET') 'ET'
('MANUEL' 'CHPO' MAI1 1 'H2O' (PGAS . 'CP' . 'H2O ')
'NATU' 'DISCRET') 'ET'
('MANUEL' 'CHPO' MAI1 1 'N2' (PGAS . 'CP' . 'N2 ')
'NATU' 'DISCRET') ;
LMOT1 = (PGAS . 'ESPEULE') 'ET' ('MOTS' (PGAS . 'ESPNEULE')) ;
CVTOT = 'PSCAL' YNTOT CV LMOT1 LMOT1 ;
CPTOT = 'PSCAL' YNTOT CP LMOT1 LMOT1 ;
GAMN = CPTOT '/' CVTOT ;
GM1 = GAMN '-' UNCH ;
ETHER = PN '/' GM1;
ECIN = 0.5D0 '*' RN '*' ('PSCAL' VN VN ('MOTS' 'UX' 'UY')
('MOTS' 'UX' 'UY')) ;
EN = ECIN '+' ETHER ;
TN = ETHER '/' (CVTOT '*' RN) ;
************************
**** L'operateur *****
************************
VITESSE PRES TEMPNEW YNNEW GAMNEW
= 'PRIM' 'PERFMULT' PGAS RN GN EN RYN ;
ERRGN = 'MAXIMUM' (GN1 '-' GN) 'ABS' ;
VCELL = ('MAXIMUM' GN 'ABS') ;
'SI' (VCELL > 0);
ERRGN = ERRGN '/' VCELL;
'FINSI' ;
ERRV = 'MAXIMUM' (VITESSE '-' VN) 'ABS' ;
VCELL = ('MAXIMUM' VN 'ABS') ;
'SI' (VCELL > 0);
ERRV = ERRV '/' VCELL;
'FINSI' ;
ERRP = ('MAXIMUM' (PRES '-' PN) 'ABS') '/' ('MAXIMUM' PN);
ERRT = ('MAXIMUM' (TEMPNEW '-' TN) 'ABS') '/'
('MAXIMUM' TN) ;
ERRG = ('MAXIMUM' (GAMN '-' GAMNEW) 'ABS') '/'
('MAXIMUM' GAMN) ;
ERRY = 'MAXIMUM' (YNNEW '-' YN) 'ABS' ;
'SI' (('MAXIMUM' ('PROG' ERRGN ERRV ERRP ERRT ERRG ERRY ) '>'
1.0D-12));
'MESSAGE' ('CHAINE' 'Erreur maximum');
'LISTE' ('MAXIMUM' ('PROG' ERRVX ERRVY ERRP ERRT ERRG ERRY
));
'ERREUR' 5;
'FINSI' ;
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer