Download konv_resi_dem_shocktube_21.dgibi

Back to the list

* fichier :  konv_resi_dem_shocktube_21.dgibi
***********************************************************
**** APPROCHE VF "Cell-Centred Formulation" pour la    ****
**** solution des                                      **** 
**** Equations d'Euler pour un gaz parfait             ****
**** Approche DEM pour la combustion                   ****
**** OPERATEURS PRET, KONV                             ****
****                                                   ****
**** We verify the global conservativity of the method.****
**** Left  state = phase 2                             ****
**** Right state = phase 1                             ****
****                                                   ****
**** Methodes: SS, VLH                                 ****
****                                                   ****
**** A. BECCANTINI DM2S/SFME/LTMF    DECEMBRE 2009     ****
***********************************************************


 'OPTION'  'DIME' 2 ;
 'OPTION'  'ELEM' QUA4 ;
 'OPTION'  'ECHO'  1 ;
 'OPTION'  'TRAC' 'X' ;

*
*** GRAPH
*

 GRAPH = FAUX ;
* GRAPH = VRAI ;

**** Cas homogene : la table proprieté de gaz

*************************************************
**** The table for the properties of the gas ****
*************************************************
*
 PGAS = 'TABLE' ;
*
**** Order of the polynomial order for cv = cv(T) 
*    For T > TMAX, cv(T) = cv(Tmax)
* 
 PGAS . 'TMAX' = 6000.0 ;
 PGAS . 'NORD' = 4 ;
*
**** Species involved in the mixture (before or after
*    the chemical reaction)
*
 PGAS . 'SPECIES' = 'MOTS' 'H2  ' 'O2  ' 'H2O ' 'N2  ' ;
*
*
**** Coefficient of the chemical reaction.
*    Note that for the first species this coefficient should be positive
*    Normal, we take it equal to 1.
*
*    H2 '+' 0.5 O2 ---> H2O
*
 PGAS . 'CHEMCOEF' = 'PROG' 1.0 0.5 -1.0 0.0 ;
* 
**** Mass fraction of the first species before and after the combustion
*    Final mass fractions of the species with positive coefficients.
*    Final mass fractions of the species with non-positive coefficient.
*    The mass fraction of the last species is not given.
*
 PGAS . 'MASSFRA' = 'PROG' 0.285219E-01  0.964039E-11  0.765104E-10
                           0.127442E-10 ;
 PGAS . 'MASSFRA' = 'PROG' 0.285219E-01  0.964039E-11  0.765104E-10
                           0.127442E-10 ;
*
**** Coef with the gas properties
*
 PGAS .  'H2  ' = 'TABLE'  ;
 PGAS .  'H2O ' = 'TABLE'  ;
 PGAS .  'N2  ' = 'TABLE'  ;
 PGAS .  'O2  ' = 'TABLE'  ;
*
**** Runiv (J/mole/K)
*
 PGAS . 'RUNIV' = 8.31441 ;
*
**** W (kg/mole). Gas constant (J/kg/K = Runiv/W)
*
 PGAS .  'H2  ' . 'W' = 2.016E-3 ;
 PGAS .  'O2  ' . 'W' = 31.999E-3 ;
 PGAS .  'H2O ' . 'W' = 18.0155E-3 ;
 PGAS .  'N2  ' . 'W' = 28.013E-3 ;
*
**** Polynomial coefficients 
*
 PGAS .  'H2  ' . 'A' = 'PROG'  9834.91866 0.54273926 0.000862203836
                               -2.37281455E-07 1.84701105E-11 ;
 PGAS .  'H2O ' . 'A' = 'PROG' 1155.95625 0.768331151 -5.73129958E-05
                              -1.82753232E-08 2.44485692E-12 ;
 PGAS .  'N2  ' . 'A' = 'PROG' 652.940766 0.288239099 -7.80442298E-05
                              8.78233606E-09 -3.05514485E-13 ;
 PGAS .  'O2  ' . 'A' = 'PROG' 575.012333  0.350522002 -0.000128294865
                              2.33636971E-08 -1.53304905E-12;
*
**** Formation enthalpies (energies) at 0K (J/Kg)
*
 PGAS .  'H2  ' . 'H0K' = -4.195D6 ;
 PGAS .  'H2O ' . 'H0K' = -1.395D7 ;
 PGAS .  'N2  ' . 'H0K' = -2.953D5 ;
 PGAS .  'O2  ' . 'H0K' = -2.634D5 ;

 
*************************** 
***** DOMAINE SPATIAL  ****
***************************

 A1 = 0.0D0 0.01D0;
 A2 = 1.011D0 0.21D0;
 A3 = 2.12D0 0.021D0;
 A4 = 2.11D0 1.09D0;
 A5 = 1.023D0 1.132D0;
 A6 = 0.098D0 1.199D0;

 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;

*
 EPS = 1.0D-16 ;
 K0 = 10.0 ;
* 
*******************************************
*** Etats gauche et droite ****************
*******************************************
*
*
 tg1 = 293.16 ;
 td1 = 293.16 ;
 pg1 = 1.023e5 ;
 pd1 = 1.023e5 ;
 ung1 = -122.0 ;
 und1 = -122.0 ;
 utg1 = 101.0 ;
 utd1 = 101.0 ;
* utg1 = 0.0 ;
* utd1 = 0.0 ;
 tg2 = 2800.15 ;
 td2 = 2800.15 ;
 pg2 = 1.023e5 ;
 pd2 = 1.023e5 ;
 ung2 = -150.0 ;
 und2 = -150.0 ;
 utg2 = 160.0 ;
 utd2 = 160.0 ;
 
 TN1 = 'PROG' tg1 td1 ;
 TN2 = 'PROG' tg2 td2 ; 
 PN1 = 'PROG' pg1 pd1 ;
 PN2 = 'PROG' pg2 pd2 ;
 UN1 = 'PROG' ung1 und1 ;
 UN2 = 'PROG' ung2 und2 ;
 UT1 = 'PROG' utg1 utd1 ;
 UT2 = 'PROG' utg2 utd2 ;
 ALPHA1 = 'PROG' 0.0 1.0 ;
 ALPHA2 = ('PROG' ('DIME' ALPHA1) '*' 1.0) '-' ALPHA1 ;
 
*
* ETHER = int_0^T cv(T') dT'           T <  TMAX
*       = int_0^TMAX cv(T') dT' '+'
*         cv(TMAX)                     T >= TMAX
*

 ESP1 = 'EXTRAIRE' (PGAS . 'SPECIES') 1 ;
* DY1 = y_i - y_f for the species 1 
 DY1 = (('EXTRAIRE' (PGAS . 'MASSFRA') 1) '-'
   ('EXTRAIRE' (PGAS . 'MASSFRA') 2)) ;
 COEF1 = ('EXTRAIRE' (PGAS . 'CHEMCOEF') 1) '*'
    (PGAS . ESP1 . 'W') ;
 YFINPH1 = 1.0 ;
 YFINPH2 = 1.0 ;
 'SI' (COEF1 > 0) ;
    YPH2 = 'EXTRAIRE' (PGAS . 'MASSFRA') 2 ;
    YPH1 = YPH2 '+' DY1 ;
 'SINON' ;
    YPH1 = 'EXTRAIRE' (PGAS . 'MASSFRA') 2 ;
    YPH2 = YPH1 '-' DY1 ;
 'FINSI' ;
 YFINPH1 = YFINPH1 '-' YPH1 ;
 YFINPH2 = YFINPH2 '-' YPH2 ;
 PRYPH1 = 'PROG' YPH1 ;
 PRYPH2 = 'PROG' YPH2 ;
 'REPETER' BLESP (('DIME' (PGAS . 'SPECIES')) '-' 2) ;
    ESP = 'EXTRAIRE' (PGAS . 'SPECIES') (&BLESP '+' 1)  ;
    COEF = ('EXTRAIRE' (PGAS . 'CHEMCOEF') (&BLESP '+' 1)) 
       '*' (PGAS . ESP . 'W') ;
    DY = (DY1 * (COEF '/' COEF1)) ;
    'SI' (COEF > 0) ;
       YPH2 = 'EXTRAIRE' (PGAS . 'MASSFRA') (&BLESP '+' 2) ;
       YPH1 = YPH2 '+' DY ;
    'SINON' ;
       YPH1 = 'EXTRAIRE' (PGAS . 'MASSFRA') (&BLESP '+' 2) ;
       YPH2 = YPH1 '-' DY ;
    'FINSI' ;
    PRYPH1 = PRYPH1 'ET' ('PROG' YPH1) ;
    PRYPH2 = PRYPH2 'ET' ('PROG' YPH2) ;
    YFINPH1 = YFINPH1 '-' YPH1 ;
    YFINPH2 = YFINPH2 '-' YPH2 ;
 'FIN' BLESP ;
 PRYPH1 = PRYPH1 'ET' ('PROG' YFINPH1) ; 
 PRYPH2 = PRYPH2 'ET' ('PROG' YFINPH2) ;
 'LISTE' PRYPH1 ;
 'LISTE' PRYPH2 ; 
*
 TMAX = ('PROG' ('DIME' ALPHA1) '*' (PGAS . 'TMAX')) ;
* TCAL1 = MIN TN1, TMAX 
 TCAL1 = 0.5D0 '*' ((TMAX '+' TN1) '-' ('ABS' (TN1 '-' TMAX))) ;
 DTN1 = TN1 '-' TCAL1 ;
* TCAL1 = MIN TN1, TMAX 
 TCAL2 = 0.5D0 '*' ((TMAX '+' TN2) '-' ('ABS' (TN2 '-' TMAX))) ;
 DTN2 = TN2 '-' TCAL2 ;
*
* Internal energy (J/kg in SI)
*
 ETHER1 = ('PROG' ('DIME' ALPHA1) '*' 0.0) ;
 CV1 = ('PROG' ('DIME' ALPHA1) '*' 0.0) ;
 ETHER2 = ('PROG' ('DIME' ALPHA1) '*' 0.0) ;
 CV2 = ('PROG' ('DIME' ALPHA1) '*' 0.0) ;
 FUNTN1 = ('PROG' ('DIME' ALPHA1) '*' 1.0) ;
 FUNTN2 = ('PROG' ('DIME' ALPHA1) '*' 1.0) ;
 'REPETER' BLPO ((PGAS . 'NORD') '+' 1) ;
    'REPETER' BLESP ('DIME' (PGAS . 'SPECIES')) ;
       ESP = 'EXTRAIRE' (PGAS . 'SPECIES') &BLESP ;
       YCEL1 = 'EXTRAIRE' PRYPH1 &BLESP ;
       YCEL2 = 'EXTRAIRE' PRYPH2 &BLESP ;
       AA = 'EXTRAIRE' (PGAS . ESP . 'A') &BLPO ;
       DCV1 = (AA * YCEL1 * FUNTN1) ;
       DCV2 = (AA * YCEL2 * FUNTN2) ;
       CV1 = CV1 '+' DCV1 ;
       CV2 = CV2 '+' DCV2 ;
       ETHER1 = ETHER1 '+' (DCV1 * TCAL1 '/' (&BLPO)) ;
       ETHER2 = ETHER2 '+' (DCV2 * TCAL2 '/' (&BLPO)) ;
    'FIN' BLESP ;
    FUNTN1 = FUNTN1 '*' TCAL1 ;
    FUNTN2 = FUNTN2 '*' TCAL2 ;
 'FIN' BLPO ;
 ETHER1 = ETHER1 '+' (CV1 '*' DTN1) ;
 ETHER2 = ETHER2 '+' (CV2 '*' DTN2) ;
*
* Formation energy/enthalpy (J/kg in SI) and gas constant (J/kg/K)
*
 EFORM1 = 0.0 ;
 EFORM2 = 0.0 ;
 RGAS1 = 0.0 ;
 RGAS2 = 0.0 ;
 'REPETER' BLESP ('DIME' (PGAS . 'SPECIES')) ;
    ESP = 'EXTRAIRE' (PGAS . 'SPECIES') &BLESP ;
    YCEL1 = 'EXTRAIRE' PRYPH1 &BLESP ;
    YCEL2 = 'EXTRAIRE' PRYPH2 &BLESP ;
    EFORM1 = EFORM1 '+' (YCEL1 * (PGAS . ESP . 'H0K')) ;
    EFORM2 = EFORM2 '+' (YCEL2 * (PGAS . ESP . 'H0K')) ;
    RGAS1 = RGAS1 '+' (YCEL1 *  (PGAS . 'RUNIV') '/' 
      (PGAS . ESP . 'W')) ;
    RGAS2 = RGAS2 '+' (YCEL2 *  (PGAS . 'RUNIV') '/' 
      (PGAS . ESP . 'W')) ;
 'FIN' BLESP ;
 EFORM1 = 'PROG' ('DIME' ETHER1) '*' EFORM1 ;
 EFORM2 = 'PROG' ('DIME' ETHER2) '*' EFORM2 ;
 
*
* Computation of the conservative variables
*
 RN1 = PN1 '/' (RGAS1 '*' TN1) ;
 RN2 = PN2 '/' (RGAS2 '*' TN2) ;
 GNX1 = RN1 * UN1 ;
 GNY1 = RN1 * UT1 ;
 GNX2 = RN2 * UN2 ;
 GNY2 = RN2 * UT2 ;
 ECIN1 = 0.5D0 '*' ('PROG' ((ung1 * ung1) '+' (utg1 * utg1))
    ((und1 * und1) '+' (utd1 * utd1)));
 ECIN2 = 0.5D0 '*' ('PROG' ((ung2 * ung2) '+' (utg2 * utg2))
    ((und2 * und2) '+' (utd2 * utd2)));
 RETN1 = RN1 '*' (ETHER1 '+' ECIN1 '+' EFORM1) ; 
 RETN2 = RN2 '*' (ETHER2 '+' ECIN2 '+' EFORM2) ;
*
* Computation of the resi contribution in (n,t)
*
 retg1 = MAXI RETN1 ;
 rhog1 = 'MAXIMUM' RN1 ;
 f1gd = ung1 '*' rhog1 ;
 f2gd = (f1gd '*' ung1) '+' pg1 ;
 f3gd = f1gd '*' utg1 ;
 f4gd = ung1 '*' (retg1 '+' pg1);

****************************************************
****************************************************
******** Boucle sur les angles             *********
****************************************************
****************************************************

 DANGLE = 360 '/' 7.15;
 ANGLE = 11.3 ;

 'REPETER' BLOC 8;

*
*** Rotation
*

    ANGLE = ANGLE '+' DANGLE;
    ORIG = 0.0D0 0.0D0;

    'MESSAGE' ;
    'MESSAGE'  (CHAIN 'Angle de rotation= ' ANGLE);
    'MESSAGE' ;

    DOM1   = DOM10   'TOURNER' ANGLE ORIG;
    DOM2   = DOM20   'TOURNER' ANGLE ORIG;
    P1FAC  = P10     'TOURNER' ANGLE ORIG;

    DOMTOT = DOM1 ET DOM2;
    'ELIMINATION' DOMTOT 1D-6;

    $DOMTOT = 'MODELISER' DOMTOT 'EULER';
    $DOM1 = 'MODELISER'  DOM1 'EULER';
    $DOM2 = 'MODELISER'  DOM2 'EULER';
    TDOMTOT = 'DOMA'  $DOMTOT 'VF';
    TDOM1 = 'DOMA'  $DOM1 'VF';
    TDOM2 = 'DOMA'  $DOM2 'VF';
    MDOM1 = TDOM1 . 'QUAF' ;
    MDOM2 = TDOM2 . 'QUAF' ;
    MDOMTOT = TDOMTOT . 'QUAF' ;

    'ELIM' (MDOMTOT 'ET' MDOM1 'ET' MDOM2) 1.E-6 ;

    GRALP1 = 'NOMC' ('MOTS' 'UX' 'UY') ('DOMA' $DOMTOT 'XXNORMAF')
       ('MOTS' 'P1DX' 'P1DY') ;
    
*
    VINF = 'MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' 100. ;
*
**** Redefinition de P1FAC dans $DOMTOT 'FACE'
*

    P1FAC = ('DOMA' $DOMTOT 'FACE') 'POIN' 'PROC' P1FAC ;
    XSURF = 'EXTRAIRE' ('DOMA' $DOMTOT 'XXSURFAC') P1FAC 'SCAL' ;
    NX    = 'EXTRAIRE' ('DOMA' $DOMTOT 'XXNORMAF') P1FAC 'UX' ;
    NY    = 'EXTRAIRE' ('DOMA' $DOMTOT 'XXNORMAF') P1FAC 'UY' ;
    TX    = -1 * NY ;
    TY    = NX      ;
    
    GEOPC    = ('DOMA' $DOMTOT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
        P1FAC ;
    AA = 'CHANGER' GEOPC 'POI1' ;
    PC1 = 'POIN' 1 AA ;
    P2 = 'POIN' 1 ('DOMA' $DOMTOT 'CENTRE') ;
    PC2 = 'POIN' 3 AA ;
*   Si P3 n'existe pas, probleme en FACEL.     
    'SI' ('NEG' PC1 P2) ;
       ORIENT = -1 ;
       PCD = PC1 ;
       PCG = PC2 ;
       XVOLD = 'MAXIMUM' (TDOM1 . 'XXVOLUM') ;
       XVOLG = 'MAXIMUM' (TDOM2 . 'XXVOLUM') ;
    'SINON' ;
       ORIENT = 1 ;
       PCD = PC2 ;
       PCG = PC1 ;
       XVOLG = 'MAXIMUM' (TDOM1 . 'XXVOLUM') ;
       XVOLD = 'MAXIMUM' (TDOM2 . 'XXVOLUM') ;
    'FINSI' ;
    
    uxg1 = ((ung1 '*' NX) '+' (utg1 '*' TX)) '*' ORIENT ;
    uyg1 = ((ung1 '*' NY) '+' (utg1 '*' TY)) '*' ORIENT ;
    uxg2 = ((ung2 '*' NX) '+' (utg2 '*' TX)) '*' ORIENT ;
    uyg2 = ((ung2 '*' NY) '+' (utg2 '*' TY)) '*' ORIENT ;
    uxd1 = ((und1 '*' NX) '+' (utd1 '*' TX)) '*' ORIENT ;
    uyd1 = ((und1 '*' NY) '+' (utd1 '*' TY)) '*' ORIENT ;
    uxd2 = ((und2 '*' NX) '+' (utd2 '*' TX)) '*' ORIENT ;
    uyd2 = ((und2 '*' NY) '+' (utd2 '*' TY)) '*' ORIENT ;

    'SI' GRAPH;
       'TRACER' (('DOMA' $DOMTOT 'MAILLAGE') 'ET'  
          ('COULEUR' ('DOMA' $DOMTOT 'FACEL') 'ROUGE') 'ET' P1FAC)
          'TITRE' 'Domaine et FACEL';
    'FINSI' ;

    MAILIM = 'DIFF' ('DOMA' $DOMTOT 'FACE') ('MANUEL' 'POI1' P1FAC) ;
    
***********************
**** Les CHPOINTs  ****
***********************

    CHRN1   = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' RN1) ;
    CHRN2   = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' RN2) ;
    
    CHVN1   = ('MANUEL' 'CHPO' (TDOM1 . 'CENTRE') 2 'UX' uxg1
       'UY' uyg1) '+' 
              ('MANUEL' 'CHPO' (TDOM2 . 'CENTRE') 2 'UX' uxd1
       'UY' uyd1) ;
    CHVN2   = ('MANUEL' 'CHPO' (TDOM1 . 'CENTRE') 2 'UX' uxg2
       'UY' uyg2) '+' 
              ('MANUEL' 'CHPO' (TDOM2 . 'CENTRE') 2 'UX' uxd2
       'UY' uyd2) ;

    CHGN1 = CHRN1 '*' CHVN1 ;
    CHGN2 = CHRN2 '*' CHVN2 ;

    CHRET1   = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' RETN1) ;
    CHRET2   = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' RETN2) ;

    CHTN1   = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' TN1) ;
    CHTN2   = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' TN2) ;

    CHAL1 = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' ALPHA1) ;
    CHAL2 = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' ALPHA2) ;

    R1 R2 V1 V2 P1 P2 T1 T2 = 'PRIM' 'DEM' PGAS CHAL1 CHAL2
      (CHAL1 * CHRN1) (CHAL2 * CHRN2) (CHAL1 * CHGN1)
      (CHAL2 * CHGN2) (CHAL1 * CHRET1) (CHAL2 * CHRET2)
       CHTN1 CHTN2 EPS ;

    GRADAL1 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 2
      'P1DX' 0.0 'P1DY' 0.0 ;
    GRADAL2 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 2
      'P1DX' 0.0 'P1DY' 0.0 ;
    LIMAL1 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 1
      'P1' 0.0 ; 
    LIMAL2 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 1
      'P1' 0.0 ; 
    GRADR1 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 2
      'P1DX' 0.0 'P1DY' 0.0 ;
    GRADR2 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 2
      'P1DX' 0.0 'P1DY' 0.0 ;
    LIMR1 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 1
      'P1' 0.0 ; 
    LIMR2 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 1
      'P1' 0.0 ; 
    GRADV1 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 4
      'P1DX' 0.0 'P1DY' 0.0 'P2DX' 0.0 'P2DY' 0.0 ;
    GRADV2 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 4
      'P1DX' 0.0 'P1DY' 0.0 'P2DX' 0.0 'P2DY' 0.0  ;
    LIMV1 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 2
      'P1' 0.0 'P2' 0.0 ; 
    LIMV2 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 2
      'P1' 0.0 'P2' 0.0 ; 
    GRADP1 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 2
      'P1DX' 0.0 'P1DY' 0.0 ;
    GRADP2 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 2
      'P1DX' 0.0 'P1DY' 0.0 ;
    LIMP1 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 1
      'P1' 0.0 ; 
    LIMP2 = 'MANU' 'CHPO' (TDOMTOT . 'CENTRE') 1
      'P1' 0.0 ; 
         
*
****  L'operateur  'PRET'
*

    CHFAL1 CHFAL2 CHFRN1 CHFRN2 CHFVN1 CHFVN2 CHFPN1 CHFPN2 =
     'PRET' 'DEM'  $DOMTOT
      CHAL1  (0.0 * GRADAL1)  LIMAL1
      CHAL2  (0.0 * GRADAL2)  LIMAL2
      R1     (0.0 * GRADR1)   LIMR1
      R2     (0.0 * GRADR2)   LIMR2
      V1     (0.0 * GRADV1)   LIMV1
      V2     (0.0 * GRADV2)   LIMV2
      P1     (0.0 * GRADP1)   LIMP1
      P2     (0.0 * GRADP2)   LIMP2 ;

     
*
**** L'operateur 'KONV'
*

    'REPETER' BLMETO 3 ;

       'SI' ('EGA' &BLMETO 1) ;
           METO = 'SS'  ;
       'FINSI' ;
       'SI' ('EGA' &BLMETO 2) ;
           METO = 'VLH'  ;
       'FINSI' ;
       'SI' ('EGA' &BLMETO 3) ;
           METO = 'AUSMPUP'  ;
       'FINSI' ;

       'MESSAGE' ('CHAINE' 'METO = ' METO) ;
       LISTINC1 = ('MOTS' 'ALF1' 'RN1' 'RNX1' 'RUY1' 'RET1'
          'ALF2' 'RN2' 'RUX2' 'RUY2' 'RET2') ;
          
       SI ('EGA' METO 'AUSMPUP') ;
          CHPRES DT SURF = 'KONV' 'VF' 'DEM' 'RESI' METO 'CONS'
          $DOMTOT PGAS LISTINC1 CHAL1 CHAL2 CHFAL1 CHFAL2 CHFRN1 CHFRN2
          CHFVN1 CHFVN2 CHFPN1 CHFPN2 K0 GRALP1 EPS MAILIM VINF VINF ;
       'SINON' ;
          CHPRES DT SURF = 'KONV' 'VF' 'DEM' 'RESI' METO 'CONS'
          $DOMTOT PGAS LISTINC1 CHAL1 CHAL2  CHFAL1 CHFAL2 CHFRN1 CHFRN2
          CHFVN1 CHFVN2 CHFPN1 CHFPN2 K0 GRALP1 EPS MAILIM ;
       'FINSI' ;

*       'LISTE' ('CHAINE' 'FORMAT' '(E16.10)' ('EXTRAIRE' ETHER1 1)) ;
*       'LISTE' ('CHAINE' 'FORMAT' '(E16.10)' ('EXTRAIRE' ECIN1 1)) ;
*       'LISTE' ('CHAINE' 'FORMAT' '(E16.10)' ('EXTRAIRE' EFORM1 1)) ;
*       'LISTE' ('CHAINE' 'FORMAT' '(E16.10)' (pg1)) ;
*       'LISTE' ('CHAINE' 'FORMAT' '(E16.10)' ('EXTRAIRE' RN1 1)) ;
*       'LISTE' ('CHAINE' 'FORMAT' '(E16.10)' (ung1)) ;
*
*      We verify the global conservativity of the approach
*      
       RA11 = 'EXCO' ('EXTRAIRE' LISTINC1 1) CHPRES ;
       RA12  = 'EXCO' ('EXTRAIRE' LISTINC1 2) CHPRES ;
       RA13X = 'EXCO' ('EXTRAIRE' LISTINC1 3) CHPRES ;
       RA13Y = 'EXCO' ('EXTRAIRE' LISTINC1 4) CHPRES ;
       RA13N = (RA13X '*' NX) '+' (RA13Y * NY);
       RA13T = (RA13X '*' TX) '+' (RA13Y * TY);
       RA14 = 'EXCO' ('EXTRAIRE' LISTINC1 5) CHPRES ;
*
       RA21 = 'EXCO' ('EXTRAIRE' LISTINC1 6) CHPRES ;
       RA22  = 'EXCO' ('EXTRAIRE' LISTINC1 7) CHPRES ;
       RA23X = 'EXCO' ('EXTRAIRE' LISTINC1 8) CHPRES ;
       RA23Y = 'EXCO' ('EXTRAIRE' LISTINC1 9) CHPRES ;
       RA23N = (RA23X '*' NX) '+' (RA23Y * NY);
       RA23T = (RA23X '*' TX) '+' (RA23Y * TY);
       RA24 = 'EXCO' ('EXTRAIRE' LISTINC1 10) CHPRES ;
*
       dRA11 = 'EXTRAIRE' RA11 'SCAL' PCD ;
       gRA11 = 'EXTRAIRE' RA11 'SCAL' PCG ;
       dRA21 = 'EXTRAIRE' RA21 'SCAL' PCD ;
       gRA21 = 'EXTRAIRE' RA21 'SCAL' PCG ;
       ERRO = 1D-8 *
          (('MAXIMUM' ('PROG' dRA11 gRA11 dRA21 gRA21)) 'ABS') ;
       HORROR = ((dRA11 '+' dRA21) * XVOLD) 'ABS' ; 
       LOGI1 = HORROR < ERRO ;
       HORROR = ((gRA11 '+' gRA21) * XVOLG) 'ABS' ; 
       LOGI2 = HORROR < ERRO ;
       LOGI1 = LOGI1 'ET' LOGI2;
*
       dRA12 = 'EXTRAIRE' RA12 'SCAL' PCD ;
       gRA12 = 'EXTRAIRE' RA12 'SCAL' PCG ;
       dRA22 = 'EXTRAIRE' RA22 'SCAL' PCD ;
       gRA22 = 'EXTRAIRE' RA22 'SCAL' PCG ;
       ERRO = 1D-8 *
          (('MAXIMUM' ('PROG' dRA12 gRA12 dRA22 gRA22)) 'ABS') ;
       HORROR = (((dRA12 '+' dRA22) * XVOLD) '+'
          ((gRA12 '+' gRA22) * XVOLG)) ;
       LOGI2 = HORROR < ERRO ;
       LOGI1 = LOGI1 'ET' LOGI2;
*
       dRA13N = 'EXTRAIRE' RA13N 'SCAL' PCD ;
       gRA13N = 'EXTRAIRE' RA13N 'SCAL' PCG ;
       dRA23N = 'EXTRAIRE' RA23N 'SCAL' PCD ;
       gRA23N = 'EXTRAIRE' RA23N 'SCAL' PCG ;
       ERRO = 1D-8 *
          (('MAXIMUM' ('PROG' dRA13N gRA13N dRA23N gRA23N)) 'ABS') ;
       HORROR = (((dRA13N '+' dRA23N) * XVOLD) '+'
          ((gRA13N '+' gRA23N) * XVOLG)) ;
       LOGI2 = HORROR < ERRO ;
       LOGI1 = LOGI1 'ET' LOGI2;
*
       dRA13T = 'EXTRAIRE' RA13T 'SCAL' PCD ;
       gRA13T = 'EXTRAIRE' RA13T 'SCAL' PCG ;
       dRA23T = 'EXTRAIRE' RA23T 'SCAL' PCD ;
       gRA23T = 'EXTRAIRE' RA23T 'SCAL' PCG ;
       ERRO = 1D-8 *
          (('MAXIMUM' ('PROG' dRA13T gRA13T dRA23T gRA23T)) 'ABS') ;
       HORROR = (((dRA13T '+' dRA23T) * XVOLD) '+'
          ((gRA13T '+' gRA23T) * XVOLG)) ;
       LOGI2 = HORROR < ERRO ;
       LOGI1 = LOGI1 'ET' LOGI2;
*
       dRA14 = 'EXTRAIRE' RA14 'SCAL' PCD ;
       gRA14 = 'EXTRAIRE' RA14 'SCAL' PCG ;
       dRA24 = 'EXTRAIRE' RA24 'SCAL' PCD ;
       gRA24 = 'EXTRAIRE' RA24 'SCAL' PCG ;
       ERRO = 1D-8 *
          (('MAXIMUM' ('PROG' dRA14 gRA14 dRA24 gRA24)) 'ABS') ;
       HORROR = (((dRA14 '+' dRA24) * XVOLD) '+'
          ((gRA14 '+' gRA24) * XVOLG)) ;
       LOGI2 = HORROR < ERRO ;
       LOGI1 = LOGI1 'ET' LOGI2;

       'SI' ('NON' LOGI1);
          'MESSAGE' ;
          'MESSAGE' 'OPERATEUR KONV';
          'MESSAGE' ('CHAINE' METO);
          'MESSAGE' ;
          'ERREUR' 5 ;
       'FINSI' ;

   'FIN' BLMETO ;

****************************************************
****************************************************
******** Fin boucle sur les angles         *********
****************************************************
****************************************************

'FIN' BLOC;

'FIN' ;
 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer