Download comp_perfmult_perftemp.dgibi
* fichier : comp_perfmult_perftemp.dgibi
**********************************************************
**** APPROCHE VF "Cell-Centred Formulation" pour la ****
**** solution des ****
**** Equations d'Euler pour un gaz parfait ****
**** OPERATEURS PRIM, PRET, KONV ****
**** ****
**** Cas gaz multi-especes: ****
**** Comparaison calorically perfect et thermally ****
**** perfect ****
**** ****
**** Methodes: VLH ****
**** ****
**** A. BECCANTINI DRN/DMT/SEMT/TTMF DECEMBRE 1998 ****
**********************************************************
*MGOU : modif gounand 16/2/99
*MGOU : augmentation légère des tolérances suite à
*MGOU : l'évolution de redlec.eso (lecture des réels à
*MGOU : partir de Gibiane...
'OPTION' 'DIME' 2 ;
'OPTION' 'ELEM' QUA4 ;
'OPTION' 'ECHO' 0 ;
'OPTION' 'TRAC' 'X' ;
*
*** GRAPH
*
GRAPH = FAUX ;
* GRAPH = VRAI ;
***********************
**** LA TABLE PGAZ ****
***********************
* Modele gaz "thermally perfect"
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
*
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
PGAZ . 'H2 ' . 'H0K' = -4.195D6 ;
PGAZ . 'H2O ' . 'H0K' = -1.395D7 ;
PGAZ . 'N2 ' . 'H0K' = -2.953D5 ;
PGAZ . 'O2 ' . 'H0K' = -2.634D5 ;
* Modele gaz "calorically perfect"
PGAZ2 = 'TABLE' ;
PGAZ2 . 'CV' = 'TABLE' ;
PGAZ2 . 'CV' . 'H2 ' = .14571861D+05 ;
PGAZ2 . 'CV' . 'O2 ' = .92885670D+03 ;
PGAZ2 . 'CV' . 'H2O ' = .26589930D+04 ;
PGAZ2 . 'CV' . 'N2 ' = .10024563D+04;
PGAZ2 . 'CP' = 'TABLE' ;
PGAZ2 . 'CP' . 'H2 ' = (PGAZ2 . 'CV' . 'H2 ')
'+' (PGAZ . 'H2 ' . 'R') ;
PGAZ2 . 'CP' . 'N2 ' = (PGAZ2 . 'CV' . 'N2 ')
'+' (PGAZ . 'N2 ' . 'R') ;
PGAZ2 . 'CP' . 'O2 ' = (PGAZ2 . 'CV' . 'O2 ')
'+' (PGAZ . 'O2 ' . 'R') ;
PGAZ2 . 'CP' . 'H2O ' = (PGAZ2 . 'CV' . 'H2O ')
'+' (PGAZ . 'H2O ' . 'R') ;
*
**** Especes qui sont dans les equations d'Euler
*
PGAZ2 . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' ;
*
**** Espece qui n'y est pas
*
PGAZ2 . 'ESPNEULE' = 'N2 ';
***************************
***** DOMAINE SPATIAL ****
***************************
A1 = 0.0D0 0.0D0;
A2 = 1.0D0 0.0D0;
A3 = 2.0D0 0.0D0;
A4 = 2.0D0 1.0D0;
A5 = 1.0D0 1.0D0;
A6 = 0.0D0 1.0D0;
L12 = A1 'DROIT' 1 A2;
L23 = A2 'DROIT' 1 A3;
L34 = A3 'DROIT' 1 A4;
L45 = A4 'DROIT' 1 A5;
L56 = A5 'DROIT' 1 A6;
L61 = A6 'DROIT' 1 A1;
L25 = A2 'DROIT' 1 A5;
DOM10 = 'DALL' L12 L25 L56 L61
'PLANE';
DOM20 = 'DALL' L23 L34 L45 ('INVERSE' L25)
'PLANE';
*
*** Point ou on controlle la consistence
*
P10 = 1.0 0.5;
*
*** Etats gauche et droite (on controlle que avec XLDB on a le bon truc)
*
rog = 11.412 ;
pg = 11.17D6 ;
ung = 18.34 ;
utg = 118.2 ;
yh2g = 0.11 ;
yh2Og = 0.12 ;
yN2g = 0.115 ;
yO2g = 1 '-' (yh2g '+' yh2Og '+' yn2g) ;
rod = 1.412 ;
pd = 1.17D6 ;
und = 8.34 ;
utd = 18.2 ;
yh2d = 0.1 ;
yh2Od = 0.2 ;
yN2d = 0.15 ;
yO2d = 1 '-' (yh2d '+' yh2Od '+' yn2d) ;
*
*** Calcul du gamg, gamd, retg, retd
*
rcvg = (yh2g * ('EXTRAIRE' 1 (PGAZ . 'H2 ' . 'A'))) '+'
(yH2Og * ('EXTRAIRE' 1 (PGAZ . 'H2O ' . 'A'))) '+'
(yO2g * ('EXTRAIRE' 1 (PGAZ . 'O2 ' . 'A'))) '+'
(yN2g * ('EXTRAIRE' 1 (PGAZ . 'N2 ' . 'A'))) ;
rtotg = (yh2g * (PGAZ . 'H2 ' . 'R')) +
(yH2Og * (PGAZ . 'H2O ' . 'R')) '+'
(yO2g * (PGAZ . 'O2 ' . 'R')) '+'
(yN2g * (PGAZ . 'N2 ' . 'R')) ;
gamg = (rcvg '+' rtotg) '/' rcvg ;
tg = pg '/' (rtotg '*' rog) ;
etherg = rtotg '*' tg '/' (gamg '-' 1.0) ;
ecin = 0.5 '*' ((ung '*' ung) '+' (utg '*' utg)) ;
retg = rog '*' (etherg '+' ecin) ;
rcvd = (yh2d * ('EXTRAIRE' 1 (PGAZ . 'H2 ' . 'A'))) +
(yH2Od * ('EXTRAIRE' 1 (PGAZ . 'H2O ' . 'A'))) '+'
(yO2d * ('EXTRAIRE' 1 (PGAZ . 'O2 ' . 'A'))) '+'
(yN2d * ('EXTRAIRE' 1 (PGAZ . 'N2 ' . 'A'))) ;
rtotd = (yh2d * (PGAZ . 'H2 ' . 'R')) +
(yH2Od * (PGAZ . 'H2O ' . 'R')) '+'
(yO2d * (PGAZ . 'O2 ' . 'R')) '+'
(yN2d * (PGAZ . 'N2 ' . 'R')) ;
gamd = (rcvd '+' rtotd) '/' rcvd ;
td = pd '/' (rtotd '*' rod) ;
etherd = rtotd '*' td '/' (gamd '-' 1.0) ;
ecin = 0.5 '*' ((und '*' und) '+' (utd '*' utd)) ;
retd = rod '*' (etherd '+' ecin) ;
****************************************************
****************************************************
******** Boucle sur les angles *********
****************************************************
****************************************************
ANGLE = 11.3 ;
*
*** Rotation
*
ORIG = 0.0D0 0.0D0;
MESSAGE;
MESSAGE (CHAIN 'Angle de rotation= ' ANGLE);
MESSAGE;
DOM1 = DOM10 'TOURNER' ANGLE ORIG;
DOM2 = DOM20 'TOURNER' ANGLE ORIG;
P1 = P10 'TOURNER' ANGLE ORIG;
'ELIMINATION' (DOM1 ET DOM2) 1D-6;
DOMTOT = DOM1 ET DOM2;
$DOMTOT = 'MODE' DOMTOT 'EULER' ;
$DOM1 = 'MODE' DOM1 'EULER' ;
$DOM2 = 'MODE' DOM2 'EULER' ;
TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
TDOM1 = 'DOMA' $DOM1 'VF' ;
TDOM2 = 'DOMA' $DOM2 'VF' ;
MDOMTOT = TDOMTOT . 'QUAF' ;
MDOM1 = TDOM1 . 'QUAF' ;
MDOM2 = TDOM2 . 'QUAF' ;
'ELIM' (MDOMTOT 'ET' MDOM1 'ET' MDOM2) 1.E-5 ;
'SI' GRAPH;
'TRACER' (('DOMA' $DOMTOT 'MAILLAGE') 'ET' ('DOMA' $DOMTOT 'FACEL')
'ET' P1) 'TITRE' 'Domaine et FACEL';
'FINSI' ;
*
**** Redefinition de P1 dans $DOMTOT . 'FACE'
*
P1 = ('DOMA' $DOMTOT 'FACE') 'POIN' 'PROC' P1;
***********************
**** Les CHPOINTs ****
***********************
ruxg = ((ung '*' ('COS' ANGLE)) '-' (utg '*' ('SIN' ANGLE))) '*' rog ;
ruyg = ((ung '*' ('SIN' ANGLE)) '+' (utg '*' ('COS' ANGLE))) '*' rog ;
ruxd = ((und '*' ('COS' ANGLE)) '-' (utd '*' ('SIN' ANGLE))) '*' rod ;
ruyd = ((und '*' ('SIN' ANGLE)) '+' (utd '*' ('COS' ANGLE))) '*' rod ;
RN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' rog ;
RN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' rod ;
RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (RN1 'ET' RN2);
GN1 = 'KCHT' $DOM1 'VECT' 'CENTRE' (ruxg ruyg);
GN2 = 'KCHT' $DOM2 'VECT' 'CENTRE' (ruxd ruyd);
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' (GN1 'ET' GN2);
TN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' tg ;
TN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' td ;
TN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (TN1 'ET' TN2);
PN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' pg ;
PN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' pd ;
PN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (PN1 'ET' PN2);
EN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' retg ;
EN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' retd ;
RET = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (EN1 'ET' EN2);
GAMN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' gamg ;
GAMN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' gamd ;
GAMN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (GAMN1 'ET' GAMN2);
* attention: PGAZ . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' ;
RYH2 = ('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'H2 ' (rog '*' yh2g))
'ET'
('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'H2 ' (rod '*' yh2d)) ;
RYO2 = ('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'O2 ' (rog '*' yo2g))
'ET'
('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'O2 ' (rod '*' yo2d)) ;
RYH2O = ('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'H2O ' (rog '*' yh2og))
'ET'
('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'H2O ' (rod '*' yh2od));
RYN = RYH2 'ET' RYO2 'ET' RYH2O ;
***************************
**** L'operateur PRIM****
***************************
VN1 PN1 TN1 YN1 GAMNEW1 = 'PRIM' 'PERFTEMP' PGAZ RN GN RET RYN ;
VN2 PN2 TN2 YN2 GAMNEW2 = 'PRIM' 'PERFMULT' PGAZ2 RN GN RET RYN ;
IMAX = 'MAXIMUM' ('PROG'
('MAXIMUM' (VN1 '-' VN2) 'ABS' )
('MAXIMUM' (PN '-' PN1) 'ABS' )
('MAXIMUM' (PN '-' PN2) 'ABS' )
('MAXIMUM' (TN '-' TN1) 'ABS' )
('MAXIMUM' (TN '-' TN2) 'ABS' )
('MAXIMUM' (YN1 '-' YN2) 'ABS' )
('MAXIMUM' (GAMNEW1 '-' GAMN) 'ABS' )
('MAXIMUM' (GAMNEW2 '-' GAMN) 'ABS' )) ;
*MGOU : 'SI' (IMAX > 1.0D-8) ;
'SI' (IMAX > 1.5D-8) ;
'ERREUR' 5 ;
'FINSI' ;
***************************
**** L'operateur PRET****
***************************
ORDESP = 1;
ORDTEM = 1;
ROF VITF PF YF = 'PRET' 'PERFTEMP' ORDESP ORDTEM
$DOMTOT PGAZ RN VN1 PN1 YN1 ;
ROF2 VITF2 PF2 YF2 GAMF = 'PRET' 'PERFMULT' ORDESP ORDTEM
$DOMTOT RN VN2 PN2 YN2 GAMNEW2 ;
IMAX = 'MAXIMUM' ('PROG'
('MAXIMUM' (ROF '-' ROF2) 'ABS' )
('MAXIMUM' (VITF2 '-' VITF) 'ABS' )
('MAXIMUM' (PF2 '-' PF) 'ABS' )
('MAXIMUM' (YF '-' YF2) 'ABS' )
) ;
'SI' (IMAX > 1.0D-7) ;
'MESSAGE' ('CHAINE' 'Modele PERFMULT, ERRMAX =' IMAX ) ;
'ERREUR' 5 ;
'FINSI' ;
****************
**** 'KONV' ****
****************
LISTINCO = 'MOTS' 'RN' 'RUX' 'RUY' 'RETN' 'H2' 'O2' 'H2O' ;
METO = 'VLH' ;
TFLUX2 DELTAT = 'KONV' 'VF' 'PERFTEMP' 'FLUX' METO
$DOMTOT PGAZ LISTINCO ROF2 VITF2 PF2 YF2 ;
TFLUX DELTAT = 'KONV' 'VF' 'PERFMULT' 'FLUX' METO
$DOMTOT LISTINCO ROF VITF PF GAMF YF PGAZ2 ;
IMAX = 'MAXIMUM' (TFLUX '-' TFLUX2) 'ABS' ;
'SI' (IMAX > 1.0D-4) ;
'MESSAGE' ('CHAINE' 'Modele PERFTEMP, ERRMAX =' IMAX ) ;
'ERREUR' 5 ;
'FINSI' ;
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer