Download prim_gfm.dgibi

Back to the list

* fichier :  prim_gfm.gdibi
***********************************************************
**** APPROCHE VF "Cell-Centred Formulation" pour la    ****
**** solution des                                      **** 
**** Equations d'Euler, GFMP                           ****
**** OPERATEUR  'PRIM', GFMP                           ****
**** Stiffened gas                                     ****
****                                                   ****
**** A. BECCANTINI DRN/DMT/SEMT/TTMF         MAI 2011  ****
***********************************************************
*

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

*
**** GRAPH
*

 GRAPH = FAUX ;
* GRAPH = VRAI ;


*************************** 
***** 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;

 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) ;

***********************
**** TEST1 ************
***********************

 TABG = 'TABLE' ;
 TABG . 'ESPEULE' = 'MOTS' ;
 TABG . 'ESPNEULE' = 'ESP1' ;
 
 GAMMA1 = 1.4 ;
 GAMMA2 = 2.8 ;
 PINF1 = 1.0 ;
 PINF2 = 5.0 ;

 TABG . 'MGAM' = 'PROG' GAMMA1 ;
 TABG . 'PGAM' = 'PROG' GAMMA2 ;
 TABG . 'MPIN' = 'PROG' PINF1 ;
 TABG . 'PPIN' = 'PROG' PINF2 ;

*
**** CHPOINTs definis sur la meme rapresentation du maillage
*    

 PHI   = 'BRUI' 'BLAN' 'UNIF' 0.0 0.3  MAI1 ;

 RN    = 'BRUI' 'BLAN' 'UNIF' 1.24 0.5  MAI1 ;
 PN    = 'BRUI' 'BLAN' 'UNIF' 11.24 5.5  MAI1 ;
 VNY   = ('NOMC' 'UY'
        ('BRUI' 'BLAN' 'UNIF' 1.24 7.5  MAI1)
        'NATU' 'DISCRET') ; 
 VNX   = ('NOMC' 'UX'
        ('BRUI' 'BLAN' 'UNIF' 0.24 0.5  MAI1)
        '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 ;

* Composantes de GN1: 'UY', 'UX' ; 
 
*       
*** L'energie totale (ROET)
*
 GM11 = (gamma1 - 1.) * (MASQ PHI 'EGINFE' 0.0) ;
 GP1 = (gamma1 * pinf1) * (MASQ PHI 'EGINFE' 0.0) ;
 GM12 = (gamma2 - 1.) * (MASQ PHI 'SUPERIEUR' 0.0) ;
 GP2 = (gamma2 * pinf2) * (MASQ PHI 'SUPERIEUR' 0.0) ;
 GM1 = GM11 + GM12 ;
 GP = GP1 + GP2 ;
 ETHER = (PN + GP) '/' GM1;
 ECIN = (0.5D0 * ('PSCAL' VN VN ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY')))
   '*' RN;
 EN =  ECIN '+' ETHER ;

 VITESSE PRES   = 'PRIM' 'GFMP' TABG  PHI RN GN EN  ;

 ERRGN  = 'MAXIMUM' (GN1 '-' GN) 'ABS' ;
 ERRV = 'MAXIMUM' (VITESSE '-' VN) 'ABS';
 VCELL = ('MAXIMUM' VN 'ABS') ;
 'SI' (VCELL > 0);
    ERRV = ERRV '/' VCELL;
 'FINSI'  ;        

 ERRP  = ('MAXIMUM' (PRES '-' PN) 'ABS') '/' ('MAXIMUM' PN);

 ERRO = 'MAXIMUM' ('PROG' ERRGN ERRV ERRP) ;
 'SI' (ERRO '>'
          1.0D-12);
     'MESSAGE' ('CHAINE' 'Erreur maximum');
     'LISTE' ('MAXIMUM' ('PROG' ERRVX ERRVY ERRP));
    'ERREUR'  5;
 'FINSI' ;

***********************
**** TEST2 ************
***********************

 TABG = 'TABLE' ;
 TABG . 'ESPEULE' = 'MOTS' 'ESP2' ;
 TABG . 'ESPNEULE' = 'ESP1' ;
 
 GAMMA1 = 1.4 ;
 GAMMA2 = 2.8 ;
 PINF1 = 1.0 ;
 PINF2 = 5.0 ;

 TABG . 'MGAM' = 'PROG' GAMMA1 GAMMA1 ;
 TABG . 'PGAM' = 'PROG' GAMMA2 GAMMA2 ;
 TABG . 'MPIN' = 'PROG' PINF1 PINF1 ;
 TABG . 'PPIN' = 'PROG' PINF2 PINF2 ;

 YN = (RN * 0.0) '+' 0.1 ;
 YN = 'NOMC'  YN 'ESP2' ;
 RYN = RN * YN ;
 ALN = YN * 0.3 ;

 VITESSE1 PRES1 YN1   = 'PRIM' 'GFMP' TABG  PHI RN GN EN
   RYN ALN ;

 ERRV = 'MAXIMUM' (VITESSE '-' VITESSE1) 'ABS';
 VCELL = ('MAXIMUM' VN 'ABS') ;
 'SI' (VCELL > 0);
    ERRV = ERRV '/' VCELL;
 'FINSI'  ;        

 ERRP  = ('MAXIMUM' (PRES '-' PRES1) 'ABS') '/' ('MAXIMUM' PN);

 ERRY  = ('MAXIMUM' (YN '-' YN1) 'ABS') ;
 
 ERRO = 'MAXIMUM' ('PROG' ERRY ERRV ERRP) ;
 'SI' (ERRO '>'
          1.0D-12);
     'MESSAGE' ('CHAINE' 'Erreur maximum');
     'LISTE' (('PROG' ERRY ERRV ERRP));
    'ERREUR'  5;
 'FINSI' ;
 
 'FIN' ;
 
 

© Cast3M 2003 - All rights reserved.
Disclaimer