Download flamcrebcom2.dgibi

Back to the list

* fichier :  flamcrebcom2.dgibi
**********************************************************************
**** OPERATEUR  'FLAM'                                            ****
**** Modele 'CREBCOM2'                                            ****
****                                                              ****
**** A. BECCANTINI DM2S/SFME/LTMF        NOVEMBER 2001            ****
**********************************************************************
*
 'OPTION'  'DIME' 2 'ELEM' QUA4
    'ECHO' 0  'TRAC' 'X';
*
**** GRAPH
*
 GRAPH = VRAI ;
 GRAPH = FAUX ;

***********************
**** LA TABLE PGAZ ****
***********************

 PGAZ = 'TABLE' ;

*
**** Ordre des polynoms
*

 PGAZ . 'NORD' = 4 ;

*
**** 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'  9834.91866 0.54273926 0.000862203836
                                -2.37281455E-07 1.84701105E-11 ;
 PGAZ .  'H2O ' . 'A' = 'PROG' 1155.95625 0.768331151 -5.73129958E-05
                               -1.82753232E-08 2.44485692E-12 ;
 PGAZ .  'N2  ' . 'A' = 'PROG' 652.940766 0.288239099 -7.80442298E-05
                               8.78233606E-09 -3.05514485E-13 ;
 PGAZ .  'O2  ' . 'A' = 'PROG' 575.012333  0.350522002 -0.000128294865
                               2.33636971E-08 -1.53304905E-12;
                              
*
**** "Enthalpies" (ou energies) de formations a OK (J/Kg)
*

 PGAZ .  'H2  ' . 'H0K' = -4.195D6 ;
 PGAZ .  'H2O ' . 'H0K' = -1.395D7 ;
 PGAZ .  'N2  ' . 'H0K' = -2.953D5 ;
 PGAZ .  'O2  ' . 'H0K' = -2.634D5 ;

*
*** Fin PGAZ
*
   
*************************** 
***** DOMAINE SPATIAL  ****
***************************


 DOM1 = ((0.0 0.0) 'DROIT' 1 (1.0 0.0)) 'TRANSLATION' 1 (0.0 1.0) ;
 DOM2 = DOM1 'PLUS' (0.0 1.0) ;
 DOM3 = DOM1 'PLUS' (0.0 -1.0) ;
 DOM4 = DOM1 'PLUS' (1.0 0.0) ;
 DOM5 = DOM1 'PLUS' (-1.0 0.0) ;
 DOM6 = DOM2 'PLUS' (1.0 0.0) ;
 DOM7 = DOM2 'PLUS' (-1.0 0.0) ;
 DOM8 = DOM3 'PLUS' (1.0 0.0) ;
 DOM9 = DOM3 'PLUS' (-1.0 0.0) ;

 DOMTOT = DOM1 'ET' DOM2 'ET' DOM3 'ET' DOM4 'ET' DOM5
     'ET' DOM6 'ET' DOM7 'ET' DOM8 'ET' DOM9 ;
 'ELIMINATION' DOMTOT 0.001 ;

$DOMTOT = 'MODE' DOMTOT 'EULER' ;
$DOM1   = 'MODE' DOM1   'EULER' ;
$DOM2   = 'MODE' DOM2   'EULER' ;
$DOM3   = 'MODE' DOM3   'EULER' ;
$DOM4   = 'MODE' DOM4   'EULER' ;
$DOM5   = 'MODE' DOM5   'EULER' ;

TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
TDOM1   = 'DOMA' $DOM1   'VF' ;
TDOM2   = 'DOMA' $DOM2   'VF' ;
TDOM3   = 'DOMA' $DOM3   'VF' ;
TDOM4   = 'DOMA' $DOM4   'VF' ;
TDOM5   = 'DOMA' $DOM5   'VF' ;

MDOMTOT = TDOMTOT. 'QUAF';
MDOM1   = TDOM1  . 'QUAF';
MDOM2   = TDOM2  . 'QUAF';
MDOM3   = TDOM3  . 'QUAF';
MDOM4   = TDOM4  . 'QUAF';
MDOM5   = TDOM5  . 'QUAF';
'ELIM' (MDOMTOT 'ET' MDOM1 'ET' MDOM2 'ET' MDOM3 'ET' 
        MDOM4 'ET' MDOM5) 1D-5 ;

 'SI' GRAPH ;
    'TRACER' DOMTOT 'TITRE' 'DOMAINE' ;
 'FINSI' ;

*
**** Les variables
*
 
 RN   = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.11 ;
 REIN = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.01E5 ;
 YN = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 3 'H2' 0.01
      'O2' 0.33 'H2O' 0.0 ;
 RYN = RN '*' YN ;

* 
*    Pour 1 kg de melange on a
**** YH2 '/' MH2 =  0.005 kmol de H2
*    YO2 '/' MO2 = 0.0103 kmol de O2
*
*    H2 e' minoritaire et donc YFIN = 0 dans le cas de combustion
*    complète
*

 YINI = 'EXCO' 'H2' YN 'H2' ;
 YFIN  = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'H2' 0.0 ;

*
*
**** Pour permettre a l'hydrogene de bruler en DOM1, on impose
*    que en DOM2, DOM3, DOM4, DOM5 la variable de prpgress vaut 1
*

 CEN1 = 'POIN' 1 ('DOMA' $DOM1 'CENTRE') ;
 YINDOM1  = 'EXTRAIRE' YINI 'H2' CEN1 ;
 YFINDOM1 = 'EXTRAIRE' YFIN 'H2' CEN1 ;

 RGAS = 8.31441 ;
 MH2 = RGAS '/' (PGAZ . 'H2  ' . 'R') ;
 MO2 = RGAS '/' (PGAZ . 'O2  ' . 'R') ;
 MH2O = RGAS '/' (PGAZ . 'H2O ' . 'R') ;

 DYH2 = (YFINDOM1 '-' YINDOM1) ;
 DYO2 = (DYH2 '/' MH2) '*' (0.5 '*' MO2) ;
 DYH2O = (DYH2 '/' MH2) '*' (-1 '*' MH2O) ;

 DY = 'MANUEL' 'CHPO' (('DOMA' $DOM2 'CENTRE') 'ET' 
      ('DOMA' $DOM3 'CENTRE') 'ET' ('DOMA' $DOM4 'CENTRE') 'ET'
      ('DOMA' $DOM5 'CENTRE')) 3 'H2' DYH2 'O2' DYO2 'H2O' DYH2O ;

 DRY = RN '*' DY ;
 
 DREIN = 'MANUEL' 'CHPO' (('DOMA' $DOM2 'CENTRE') 'ET'
         ('DOMA' $DOM3 'CENTRE') 'ET' ('DOMA' $DOM4 'CENTRE')) 3
    'H2' (PGAZ . 'H2  ' . 'H0K') 'O2'  (PGAZ . 'O2  ' . 'H0K')
    'H2O'  (PGAZ . 'H2O ' . 'H0K') ;

 DREIN = -1.0 '*' ('PSCAL' DREIN DRY ('MOTS' 'H2' 'O2' 'H2O')
    ('MOTS' 'H2' 'O2' 'H2O')) ;

 REIN = REIN '+' DREIN ;
 RYN = RYN '+' DRY ;
 YN = RYN '/' RN ;
    
* Vitesse caractéristique de la flamme 

 VITC = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 0.11) ;
 DX   = (('DOMA' $DOMTOT 'VOLUME') '**' 0.5);

 DELTATC = 0.5 '*' (1. '/' ('MAXIMUM' (VITC '/' DX))) ;

 LMOT1 = 'MOTS' 'H2' 'O2' 'H2O' ;
 LCOEF = 'PROG'  1.0 0.5 -1.0 ;

*  
* Reaction chimique  H2 + 0.5 O2 -> H2O
*

*
**** Test1 On verifie que si le critere de combustion n'est pas
*          satisfait en DOM1, alors il n'y a pas de combustion
*
*    ESLIM**2 = 4. * (1**2 '-' (0.5 '*' 0.0**2)) = 4.
*

 EPSLIM = 2. ;
 DREINT DRYT  = 'FLAM' 'CREBCOM2' $DOMTOT PGAZ LMOT1 LCOEF RN YN
    YINI YFIN VITC DX (EPSLIM '*' 1.0001) (0.1 '*' DELTATC) 0.3 ;

 DRE1 = 'EXTRAIRE' DREINT 'SCAL' CEN1 ;
 DRY1 = 'EXTRAIRE' DRYT 'H2' CEN1 ;
 DRY2 = 'EXTRAIRE' DRYT 'O2' CEN1 ;
 DRY3 = 'EXTRAIRE' DRYT 'H2O' CEN1 ;

 'SI' (('MAXIMUM' ('PROG' DRE1 DRY1 DRY2 DRY3) 'ABS' ) '>' 1.0D-8) ;
    'MESSAGE' ;
    'MESSAGE' 'FLAM' 'CREBCOM2' ;
    'ERREUR' 5 ;
 'FINSI' ;

* TEST2 : Au contraire, on a combustion

 DREINT DRYT  = 'FLAM' 'CREBCOM2' $DOMTOT PGAZ LMOT1 LCOEF RN YN
    YINI YFIN VITC DX (EPSLIM '*' 0.9999) (0.1 '*' DELTATC) 0.3  ;

* Les pois molaires
* LMOT1 = 'MOTS' 'H2' 'O2' 'H2O' ;

 LPOI = 'PROG' (8.31441 '/' (PGAZ . 'H2' . 'R'))
  (8.31441 '/' (PGAZ . 'O2' . 'R')) (8.31441 '/' (PGAZ . 'H2O' . 'R')) ;
 LH0K = 'PROG' (PGAZ .  'H2' . 'H0K') (PGAZ . 'O2' . 'H0K')
        (PGAZ . 'H2O' . 'H0K') ;
  
 dcsi1 = (0.1 '*' deltatc) '*' ('EXTRAIRE' (VITC '/' DX) 'SCAL' CEN1) ;
 ro1 = 'EXTRAIRE' RN 'SCAL' CEN1 ;
 yi1 = 'EXTRAIRE' YINI 'H2' CEN1 ;
 yf1 = 'EXTRAIRE' YFIN 'H2' CEN1 ;
 dy1 = (yf1 '-' yi1) '*' dcsi1 ;
 dy2 = (dy1 '/' (('EXTRAIRE' 1 LCOEF) '*' ('EXTRAIRE' 1 LPOI))) '*'
   (('EXTRAIRE' 2 LCOEF) '*' ('EXTRAIRE' 2 LPOI)) ;
 dy3 = (dy1 '/' (('EXTRAIRE' 1 LCOEF) '*' ('EXTRAIRE' 1 LPOI))) '*'
   (('EXTRAIRE' 3 LCOEF) '*' ('EXTRAIRE' 3 LPOI)) ;

 LRIS1 = ro1 '*' ('PROG' DY1 DY2 DY3) ;
 
 DRE1 = 'EXTRAIRE' DREINT 'SCAL' CEN1 ;
 DRY1 = 'EXTRAIRE' DRYT 'H2' CEN1 ;
 DRY2 = 'EXTRAIRE' DRYT 'O2' CEN1 ;
 DRY3 = 'EXTRAIRE' DRYT 'H2O' CEN1 ;

 LRIS2 = 'PROG' DRY1 DRY2  DRY3 ;
 
 ERRO = 'MAXIMUM' (LRIS1 '-' LRIS2) 'ABS' ;
 
 'SI' (ERRO '>' 1.0D-8) ;
    'MESSAGE' ;
    'MESSAGE' 'FLAM' 'CREBCOM2' ;
    'ERREUR' 5 ;
 'FINSI' ;

 DRE = 0.0 ;
 'REPETER' BL1  ('DIME' LMOT1) ;
    DRE = DRE '-' (('EXTRAIRE' &BL1 LRIS2) '*' ('EXTRAIRE' &BL1 LH0K)) ;
 'FIN' BL1 ;

 ERRO = 'ABS' (DRE '-' DRE1) ;

 'SI' (ERRO '>' 1.0D-8) ;
    'MESSAGE' ;
    'MESSAGE' 'FLAM' 'CREBCOM2' ;
    'ERREUR' 5 ;
 'FINSI' ;
 
*
**** Test3: on controle que si DELTAT > DELTATC, alors
*           dans $DOM1 'CENTRE' on recupere la bonne energie
*           et la bonne variation des fractions massiques.

 DELTAT = 100 '*' DELTATC ;
 DREINT DRYT  = 'FLAM' 'CREBCOM2' $DOMTOT PGAZ LMOT1 LCOEF RN YN
    YINI YFIN VITC DX (EPSLIM '*' 0.9) DELTAT 0.3 ;
 
 dy1 = (yf1 '-' yi1)  ;
 dy2 = (dy1 '/' (('EXTRAIRE' 1 LCOEF) '*' ('EXTRAIRE' 1 LPOI))) '*'
   (('EXTRAIRE' 2 LCOEF) '*' ('EXTRAIRE' 2 LPOI)) ;
 dy3 = (dy1 '/' (('EXTRAIRE' 1 LCOEF) '*' ('EXTRAIRE' 1 LPOI))) '*'
   (('EXTRAIRE' 3 LCOEF) '*' ('EXTRAIRE' 3 LPOI)) ;

 LRIS1 = ro1 '*' ('PROG' DY1 DY2 DY3) ;
 
 DRE1 = 'EXTRAIRE' DREINT 'SCAL' CEN1 ;
 DRY1 = 'EXTRAIRE' DRYT 'H2' CEN1 ;
 DRY2 = 'EXTRAIRE' DRYT 'O2' CEN1 ;
 DRY3 = 'EXTRAIRE' DRYT 'H2O' CEN1 ;

 LRIS2 = 'PROG' DRY1 DRY2  DRY3 ;
 
 ERRO = 'MAXIMUM' (LRIS1 '-' LRIS2) 'ABS' ;

 'SI' (ERRO '>' 1.0D-8) ;
    'MESSAGE' ;
    'MESSAGE' 'FLAM' 'CREBCOM2' ;
    'ERREUR' 5 ;
 'FINSI' ;

 DRE = 0.0 ;
 'REPETER' BL1  ('DIME' LMOT1) ;
    DRE = DRE '-' (('EXTRAIRE' &BL1 LRIS2) '*' ('EXTRAIRE' &BL1 LH0K)) ;
 'FIN' BL1 ;

 ERRO = 'ABS' (DRE '-' DRE1) ;

 'SI' (ERRO '>' 1.0D-8) ;
    'MESSAGE' ;
    'MESSAGE' 'FLAM' 'CREBCOM2' ;
    'ERREUR' 5 ;
 'FINSI' ;

 'FIN' ;

 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer