Download comp_perfmult_perftemp.dgibi

Back to the list

* 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