Download pent3D2.dgibi

Back to the list

* fichier :  pent3D2.dgibi
***********************************************************
**** APPROCHE VF "Cell-Centred Formulation".           ****
**** OPÉRATEUR PENT, pour le calcul des gradients et   ****
**** de limiteurs                                      ****
**** Cas test: calcul du limiteur en 3D                ****
****                                                   ****
**** A. BECCANTINI, TTMF    MAI     1998               ****
**** Modif, 10/07/01, syntaxe de PENT changée          ****
***********************************************************


'OPTION'  'DIME' 3 ;
'OPTION'  'ELEM' 'CUB8' ;
'OPTION'  'ISOV' 'SULI' ;
'OPTION'  'ECHO' 0;

 GRAPH = VRAI ;
*
**** Domaine
*

 A1 = 0.0 0.0 0.0;
 A2 = 2.0 0.0 0.0;
 A3 = 2.0 3.0 0.0;
 A4 = 0.0 2.0 0.0;
 A5 = 0.0 0.0 2.0;
 A6 = 2.0 0.0 2.0;
 A7 = 2.0 3.0 3.5;
 A8 = 0.0 2.0 3.0;
 A9 = 6.0 1.0 4.0;
 A10 = 3.0 1.0 -1.0;
 A11 = 0.0 -1.0 -1.0;
 A12 = -1.0 1.0 1.0;
 A13 = 0.0 -2.0 0.0;
 A14 = 2.0 4.0 1.0;


 DOM1= 'MANUEL' 'CUB8' A1 A2 A3 A4 A5 A6 A7 A8;
 DOM2= 'MANUEL' 'PYR5' A5 A6 A7 A8 A9;
 DOM3= 'MANUEL' 'PYR5' A2 A3 A7 A6 A10;
 DOM4= 'MANUEL' 'PYR5' A1 A2 A3 A4 A11;
 DOM5= 'MANUEL' 'PYR5' A1 A4 A8 A5 A12;
 DOM6= 'MANUEL' 'PYR5' A1 A2 A6 A5 A13;
 DOM7= 'MANUEL' 'PYR5' A3 A4 A8 A7 A14;

 DOMTOT= DOM1 'ET' DOM2 'ET' DOM3 'ET'
         DOM4 'ET' DOM5 'ET' DOM6 'ET'
          DOM7;

 $DOMTOT = 'MODE' DOMTOT 'EULER'  ;
 $DOM1   = 'MODE' DOM1   'EULER'  ;
 $DOM2   = 'MODE' DOM2   'EULER'  ;
 $DOM3   = 'MODE' DOM3   'EULER'  ;
 $DOM4   = 'MODE' DOM4   'EULER'  ;
 $DOM5   = 'MODE' DOM5   'EULER'  ;
 $DOM6   = 'MODE' DOM6   'EULER'  ;
 $DOM7   = 'MODE' DOM7   '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'  ;
 TDOM6   = 'DOMA' $DOM6   'VF'  ;
 TDOM7   = 'DOMA' $DOM7   'VF'  ;

 MDOMTOT = TDOMTOT . 'QUAF';
 MDOM1   = TDOM1   . 'QUAF';
 MDOM2   = TDOM2   . 'QUAF';
 MDOM3   = TDOM3   . 'QUAF';
 MDOM4   = TDOM4   . 'QUAF';
 MDOM5   = TDOM5   . 'QUAF';
 MDOM6   = TDOM6   . 'QUAF';
 MDOM7   = TDOM7   . 'QUAF';

'ELIM' (MDOMTOT 'ET' MDOM1 'ET' MDOM2 'ET' MDOM3 'ET' MDOM4 'ET' MDOM5
 'ET' MDOM6 'ET' MDOM7) 1D-6;
 
 XX YY ZZ= 'COOR' ('DOMA' $DOMTOT 'CENTRE');

 PHI1 =  'NOMC' 'UX' ((2 '*' XX) '+' (7 '*' YY) '-' (5 '*' ZZ))
         'NATU' 'DISCRET' ;
 PHI2 =  'NOMC' 'UY'  ((3 '*' XX) '+' (4 '*' YY) '+' (2 '*' ZZ))
         'NATU' 'DISCRET' ;
 PHI3 =  'NOMC' 'UZ' ((12 '*' (XX * XX)) '+' (7 '*' YY)
                      '-' (ZZ '*' ZZ)) 'NATU' 'DISCRET' ;

 PHI = PHI1 'ET' PHI2 'ET' PHI3 ;

 GRAPHI ALPHI COEF = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR'
               ('MOTS' 'UX' 'UY' 'UZ') PHI ;


****************************************************
**** Le limiteur: les paramètres géométriques   ****
****************************************************

 PCDOM1 = ('DOMA' $DOM1 'CENTRE') 'POIN' 1;

 xC1 yC1 zC1 = 'COORDONNEE' PCDOM1 ;

*
**** 1-2
*

 PCDOM2 = ('DOMA' $DOM2 'CENTRE') 'POIN' 1 ;

 xA5 yA5 zA5 = 'COORDONNEE' A5 ;
 xA7 yA7 zA7 = 'COORDONNEE' A7 ;
 xF2 = (xA5 '+' xA7) '/' 2.0 ;
 yF2 = (yA5 '+' yA7) '/' 2.0 ;
 zF2 = (zA5 '+' zA7) '/' 2.0 ;

 F2 = ('DOMA' $DOMTOT 'FACEL') 'POIN' 'PROC' (xF2 yF2 zF2) ;

 xC2 yC2 zC2 = 'COORDONNEE' PCDOM2 ;
 xF2 yF2 zF2 = 'COORDONNEE' F2 ;


 DXC1F2 = xF2 '-' xC1 ;
 DYC1F2 = yF2 '-' yC1 ;
 DZC1F2 = zF2 '-' zC1 ;
 DC1F2 = ((DXC1F2 '**' 2) '+' (DYC1F2 '**' 2) 
        '+' (DZC1F2 '**' 2)) '**' 0.5;

 DXC2F2 = xF2 '-' xC2 ;
 DYC2F2 = yF2 '-' yC2 ;
 DZC2F2 = zF2 '-' zC2 ;
 DC2F2 = ((DXC2F2 '**' 2) '+' (DYC2F2 '**' 2) 
        '+' (DZC2F2 '**' 2)) '**' 0.5;

 DTOT2  = DC1F2 '+' DC2F2 ;

*
**** 1-3
*

 PCDOM3 = ('DOMA' $DOM3 'CENTRE') 'POIN' 1 ;

 xA2 yA2 zA2 = 'COORDONNEE' A2 ;
 xA7 yA7 zA7 = 'COORDONNEE' A7 ;
 xF3 = (xA2 '+' xA7) '/' 2.0 ;
 yF3 = (yA2 '+' yA7) '/' 2.0 ;
 zF3 = (zA2 '+' zA7) '/' 2.0 ;

 F3 = ('DOMA' $DOMTOT 'FACEL') 'POIN' 'PROC' (xF3 yF3 zF3) ;

 xC3 yC3 zC3 = 'COORDONNEE' PCDOM3 ;
 xF3 yF3 zF3 = 'COORDONNEE' F3 ;


 DXC1F3 = xF3 '-' xC1 ;
 DYC1F3 = yF3 '-' yC1 ;
 DZC1F3 = zF3 '-' zC1 ;
 DC1F3 = ((DXC1F3 '**' 2) '+' (DYC1F3 '**' 2) 
        '+' (DZC1F3 '**' 2)) '**' 0.5;

 DXC3F3 = xF3 '-' xC3 ;
 DYC3F3 = yF3 '-' yC3 ;
 DZC3F3 = zF3 '-' zC3 ;
 DC3F3 = ((DXC3F3 '**' 2) '+' (DYC3F3 '**' 2) 
        '+' (DZC3F3 '**' 2)) '**' 0.5;

 DTOT3  = DC1F3 '+' DC3F3 ;

*
**** 1-4
*

 PCDOM4 = ('DOMA' $DOM4 'CENTRE') 'POIN' 1 ;

 xA1 yA1 zA1 = 'COORDONNEE' A1 ;
 xA3 yA3 zA3 = 'COORDONNEE' A3 ;
 xF4 = (xA1 '+' xA3) '/' 2.0 ;
 yF4 = (yA1 '+' yA3) '/' 2.0 ;
 zF4 = (zA1 '+' zA3) '/' 2.0 ;

 F4 = ('DOMA' $DOMTOT 'FACEL') 'POIN' 'PROC' (xF4 yF4 zF4) ;

 xC4 yC4 zC4 = 'COORDONNEE' PCDOM4 ;
 xF4 yF4 zF4 = 'COORDONNEE' F4 ;


 DXC1F4 = xF4 '-' xC1 ;
 DYC1F4 = yF4 '-' yC1 ;
 DZC1F4 = zF4 '-' zC1 ;
 DC1F4 = ((DXC1F4 '**' 2) '+' (DYC1F4 '**' 2) 
        '+' (DZC1F4 '**' 2)) '**' 0.5;

 DXC4F4 = xF4 '-' xC4 ;
 DYC4F4 = yF4 '-' yC4 ;
 DZC4F4 = zF4 '-' zC4 ;
 DC4F4 = ((DXC4F4 '**' 2) '+' (DYC4F4 '**' 2) 
        '+' (DZC4F4 '**' 2)) '**' 0.5;

 DTOT4  = DC1F4 '+' DC4F4 ;

*
**** 1-5
*

 PCDOM5 = ('DOMA' $DOM5 'CENTRE') 'POIN' 1 ;

 xA1 yA1 zA1 = 'COORDONNEE' A1 ;
 xA8 yA8 zA8 = 'COORDONNEE' A8 ;
 xF5 = (xA1 '+' xA8) '/' 2.0 ;
 yF5 = (yA1 '+' yA8) '/' 2.0 ;
 zF5 = (zA1 '+' zA8) '/' 2.0 ;

 F5 = ('DOMA' $DOMTOT 'FACEL') 'POIN' 'PROC' (xF5 yF5 zF5) ;

 xC5 yC5 zC5 = 'COORDONNEE' PCDOM5 ;
 xF5 yF5 zF5 = 'COORDONNEE' F5 ;


 DXC1F5 = xF5 '-' xC1 ;
 DYC1F5 = yF5 '-' yC1 ;
 DZC1F5 = zF5 '-' zC1 ;
 DC1F5 = ((DXC1F5 '**' 2) '+' (DYC1F5 '**' 2) 
        '+' (DZC1F5 '**' 2)) '**' 0.5;

 DXC5F5 = xF5 '-' xC5 ;
 DYC5F5 = yF5 '-' yC5 ;
 DZC5F5 = zF5 '-' zC5 ;
 DC5F5 = ((DXC5F5 '**' 2) '+' (DYC5F5 '**' 2) 
        '+' (DZC5F5 '**' 2)) '**' 0.5;

 DTOT5  = DC1F5 '+' DC5F5 ;

*
**** 1-6
*

 PCDOM6 = ('DOMA' $DOM6 'CENTRE') 'POIN' 1 ;

 xA1 yA1 zA1 = 'COORDONNEE' A1 ;
 xA6 yA6 zA6 = 'COORDONNEE' A6 ;
 xF6 = (xA1 '+' xA6) '/' 2.0 ;
 yF6 = (yA1 '+' yA6) '/' 2.0 ;
 zF6 = (zA1 '+' zA6) '/' 2.0 ;

 F6 = ('DOMA' $DOMTOT 'FACEL') 'POIN' 'PROC' (xF6 yF6 zF6) ;

 xC6 yC6 zC6 = 'COORDONNEE' PCDOM6 ;
 xF6 yF6 zF6 = 'COORDONNEE' F6 ;


 DXC1F6 = xF6 '-' xC1 ;
 DYC1F6 = yF6 '-' yC1 ;
 DZC1F6 = zF6 '-' zC1 ;
 DC1F6 = ((DXC1F6 '**' 2) '+' (DYC1F6 '**' 2) 
        '+' (DZC1F6 '**' 2)) '**' 0.5;

 DXC6F6 = xF6 '-' xC6 ;
 DYC6F6 = yF6 '-' yC6 ;
 DZC6F6 = zF6 '-' zC6 ;
 DC6F6 = ((DXC6F6 '**' 2) '+' (DYC6F6 '**' 2) 
        '+' (DZC6F6 '**' 2)) '**' 0.5;

 DTOT6  = DC1F6 '+' DC6F6 ;

*
**** 1-7
*

 PCDOM7 = ('DOMA' $DOM7 'CENTRE') 'POIN' 1 ;

 xA8 yA8 zA8 = 'COORDONNEE' A8 ;
 xA3 yA3 zA3 = 'COORDONNEE' A3 ;
 xF7 = (xA8 '+' xA3) '/' 2.0 ;
 yF7 = (yA8 '+' yA3) '/' 2.0 ;
 zF7 = (zA8 '+' zA3) '/' 2.0 ;

 F7 = ('DOMA' $DOMTOT 'FACEL') 'POIN' 'PROC' (xF7 yF7 zF7) ;

 xC7 yC7 zC7 = 'COORDONNEE' PCDOM7 ;
 xF7 yF7 zF7 = 'COORDONNEE' F7 ;


 DXC1F7 = xF7 '-' xC1 ;
 DYC1F7 = yF7 '-' yC1 ;
 DZC1F7 = zF7 '-' zC1 ;
 DC1F7 = ((DXC1F7 '**' 2) '+' (DYC1F7 '**' 2) 
        '+' (DZC1F7 '**' 2)) '**' 0.5;

 DXC7F7 = xF7 '-' xC7 ;
 DYC7F7 = yF7 '-' yC7 ;
 DZC7F7 = zF7 '-' zC7 ;
 DC7F7 = ((DXC7F7 '**' 2) '+' (DYC7F7 '**' 2) 
        '+' (DZC7F7 '**' 2)) '**' 0.5;

 DTOT7  = DC1F7 '+' DC7F7 ;


*
**** Composantes à controller
*

 LISTCOM = 'MOTS' 'UX' 'UY' 'UZ' ;
 LISTNG1 = 'MOTS' 'P1DX' 'P2DX' 'P3DX' ;
 LISTNG2 = 'MOTS' 'P1DY' 'P2DY' 'P3DY' ;
 LISTNG3 = 'MOTS' 'P1DZ' 'P2DZ' 'P3DZ' ;
 LISTNAL = 'MOTS' 'P1' 'P2' 'P3' ;

'REPETER' BLOC1 ('DIME' LISTCOM);

   NOMCOM =  'EXTRAIRE' &BLOC1 LISTCOM ;
   NOMG1  =  'EXTRAIRE' &BLOC1 LISTNG1 ;
   NOMG2  =  'EXTRAIRE' &BLOC1 LISTNG2 ;
   NOMG3  =  'EXTRAIRE' &BLOC1 LISTNG3 ;
   NOMAL  =  'EXTRAIRE' &BLOC1 LISTNAL ;


   PHICOM = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' ('EXCO' NOMCOM PHI);
   PHI1 = 'EXTRAIRE' PHICOM 'SCAL' PCDOM1 ;
   PHIMAX = 'MAXIMUM' PHICOM;
   PHIMIN = 'MINIMUM' PHICOM;
   DPHISTE = PHIMAX '-' PHIMIN;

   GPHI1X = 'EXTRAIRE'  GRAPHI NOMG1 PCDOM1 ;
   GPHI1Y = 'EXTRAIRE'  GRAPHI NOMG2 PCDOM1 ;
   GPHI1Z = 'EXTRAIRE'  GRAPHI NOMG3 PCDOM1 ;

*
**** 1-2
*
            
   DPHI0 = (GPHI1X '*' DXC1F2) '+' (GPHI1Y '*' DYC1F2)
           '+' (GPHI1Z '*' DZC1F2) ;

   'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE));
          AL12 = 1.0D0;
   'SINON' ;
         'SI'  (DPHI0 > 0.0);
              DPHI = PHIMAX '-' PHI1;
              AL12 = (DPHI '/' DTOT2) * (DC1F2 '/' DPHI0) ;
         'SINON' ;
               DPHI = PHIMIN '-' PHI1;
               AL12 = (DPHI '/' DTOT2) * (DC1F2 '/' DPHI0) ;
         'FINSI' ;
   'FINSI' ;
   AL12 = 'MINIMUM' ('PROG' 1.0 AL12) ;

*
**** 1-3
*
            
   DPHI0 = (GPHI1X '*' DXC1F3) '+' (GPHI1Y '*' DYC1F3)
           '+' (GPHI1Z '*' DZC1F3) ;

   'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE));
          AL13 = 1.0D0;
   'SINON' ;
         'SI'  (DPHI0 > 0.0);
              DPHI = PHIMAX '-' PHI1;
              AL13 = (DPHI '/' DTOT3) * (DC1F3 '/' DPHI0) ;
         'SINON' ;
               DPHI = PHIMIN '-' PHI1;
               AL13 = (DPHI '/' DTOT3) * (DC1F3 '/' DPHI0) ;
         'FINSI' ;
   'FINSI' ;
   AL13 = 'MINIMUM' ('PROG' 1.0 AL13) ;

*
**** 1-4
*
            
   DPHI0 = (GPHI1X '*' DXC1F4) '+' (GPHI1Y '*' DYC1F4)
           '+' (GPHI1Z '*' DZC1F4) ;

   'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE));
          AL14 = 1.0D0;
   'SINON' ;
         'SI'  (DPHI0 > 0.0);
              DPHI = PHIMAX '-' PHI1;
              AL14 = (DPHI '/' DTOT4) * (DC1F4 '/' DPHI0) ;
         'SINON' ;
               DPHI = PHIMIN '-' PHI1;
               AL14 = (DPHI '/' DTOT4) * (DC1F4 '/' DPHI0) ;
         'FINSI' ;
   'FINSI' ;
   AL14 = 'MINIMUM' ('PROG' 1.0 AL14) ;

*
*** 1-5
*
            
   DPHI0 = (GPHI1X '*' DXC1F5) '+' (GPHI1Y '*' DYC1F5)
           '+' (GPHI1Z '*' DZC1F5) ;

   'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE));
          AL15 = 1.0D0;
   'SINON' ;
         'SI'  (DPHI0 > 0.0);
              DPHI = PHIMAX '-' PHI1;
              AL15 = (DPHI '/' DTOT5) * (DC1F5 '/' DPHI0) ;
         'SINON' ;
               DPHI = PHIMIN '-' PHI1;
               AL15 = (DPHI '/' DTOT5) * (DC1F5 '/' DPHI0) ;
         'FINSI' ;
   'FINSI' ;
   AL15 = 'MINIMUM' ('PROG' 1.0 AL15) ;

*
**** 1-6
*
            
   DPHI0 = (GPHI1X '*' DXC1F6) '+' (GPHI1Y '*' DYC1F6)
           '+' (GPHI1Z '*' DZC1F6) ;

   'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE));
          AL16 = 1.0D0;
   'SINON' ;
         'SI'  (DPHI0 > 0.0);
              DPHI = PHIMAX '-' PHI1;
              AL16 = (DPHI '/' DTOT6) * (DC1F6 '/' DPHI0) ;
         'SINON' ;
               DPHI = PHIMIN '-' PHI1;
               AL16 = (DPHI '/' DTOT6) * (DC1F6 '/' DPHI0) ;
         'FINSI' ;
   'FINSI' ;
   AL16 = 'MINIMUM' ('PROG' 1.0 AL16) ;

*
**** 1-7
*
            
   DPHI0 = (GPHI1X '*' DXC1F7) '+' (GPHI1Y '*' DYC1F7)
           '+' (GPHI1Z '*' DZC1F7) ;

   'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE));
          AL17 = 1.0D0;
   'SINON' ;
         'SI'  (DPHI0 > 0.0);
              DPHI = PHIMAX '-' PHI1;
              AL17 = (DPHI '/' DTOT7) * (DC1F7 '/' DPHI0) ;
         'SINON' ;
               DPHI = PHIMIN '-' PHI1;
               AL17 = (DPHI '/' DTOT7) * (DC1F7 '/' DPHI0) ;
         'FINSI' ;
   'FINSI' ;
   AL17 = 'MINIMUM' ('PROG' 1.0 AL17) ;

*
*** ALPHA ELT
*    

 ALELT = 'MINIMUM' ('PROG' AL12 AL13 AL14 AL15 AL16 AL17);

 ALELT0 = 'EXTRAIRE'  ALPHI NOMAL PCDOM1 ;
 'SI' (('ABS' (ALELT '-' ALELT0)) > 1.0D-14);
    'ERREUR' 5;
 'FINSI' ;

'FIN' BLOC1 ;


'FIN' ;
 

 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer