Download pente1.dgibi

Back to the list

* fichier :  pente1.dgibi
***********************************************************
**** APPROCHE VF "Cell-Centred Formulation".           ****
**** OPÉRATEUR PENT, pour le calcul des gradients et   ****
**** des limiteurs                                     ****
**** Cas test: calcul du gradient reconstruction       ****
****           linéaire exacte                         ****
****                                                   ****
**** A. BECCANTINI, TTMF    MAI     1998               ****
**** Modif, 10/07/01, syntaxe de PENT changée          ****
***********************************************************



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

 GRAPH = VRAI ;
 GRAPH = FAUX ;
 
*
*** MAILLAGE
*

 A0 = 0.0D0 0.0D0 ;
 A1 = 3.0D0 0.0D0 ;
 A2 = 3.0D0 3.0D0 ;
 A3 = 0.0D0 3.0D0 ;
 A4 = 6.0D0 0.0D0 ;
 A5 = 6.0D0 3.0D0 ;

 N1 = 2 ;
 N2 = 3 ;
 N3 = 4 ;
 N4 = 2 ;
 N5 = 2 ;
 N6 = 2 ;
 N7 = 1;

 LINEXT1 = ((A0 D N1 A1) 'ET' (A1 D N2 A2) 'ET' 
          (A2 D N3 A3) 'ET' (A3 D N4 A0)) ;
          
 LINEXT2 = ((A1 D N2 A2) 'ET' (A2 D N5 A5) 'ET' 
          (A5 D N6 A4) 'ET' (A4 D N7 A1)) ;          

 'OPTION' 'ELEM' TRI3;
 DOM1 = 'SURFACE'  LINEXT1 'PLAN';

 'OPTION' 'ELEM' QUA4;
 DOM2 = 'SURFACE'  LINEXT2 'PLAN';


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

 LTYPE = 'MOTS' 'TRI3' 'QUA4' ;
 LELEM = 'NBEL' DOMTOT LTYPE ;


 'MESSAGE' ;
 'MESSAGE' 'Le maillage :';
 'MESSAGE' ('CHAINE' 'Nombre TRI3: ' ('EXTRAIRE' LELEM 1));
 'MESSAGE' ('CHAINE' 'Nombre QUA4: ' ('EXTRAIRE' LELEM 2));
 
*
**** Le domaine interne
*

 MAICON = DOMTOT 'ELEM'  'APPUYE' 'LARGEMENT' ('CONTOUR'  DOMTOT);
 DOMINT = DOMTOT 'DIFF' MAICON 'COULEUR' 'VERTE' ;

 MDNS = 'EULER' ;
 $DOMTOT = 'MODE' DOMTOT MDNS  ;
 $DOMINT = 'MODE' DOMINT MDNS  ;
* 
 TDOMTOT = 'DOMA' $DOMTOT 'VF'  ;
 TDOMINT = 'DOMA' $DOMINT 'VF'  ;
 MDOMTOT = TDOMTOT . 'QUAF';
 MDOMINT = TDOMINT . 'QUAF';
'ELIM' (MDOMTOT 'ET' MDOMINT) 1D-6;
 
 'SI' GRAPH ;
     'TRACER' DOMTOT 'TITRE' 'Domaine' ;
 'FINSI' ;
      
*
*** Calcul du gradient pour un champ lineaire
*

 COEF1X = 2.01517  ;
 COEF1Y = 3.1421   ;
 COEF2X = -2.7  ;
 COEF2Y = -3.21   ;
 XX YY = 'COORDONNEE' ('DOMA' $DOMTOT 'CENTRE') ;
 CHP1 = (COEF1X '*' XX) '+' (COEF1Y '*' YY) ;
 CHP1 = 'NOMC' 'C1' CHP1 'NATU' 'DISCRET' ;
 CHP2 = (COEF2X '*' XX) '+' (COEF2Y '*' YY) ;
 CHP2 = 'NOMC' 'C2' CHP2 'NATU' 'DISCRET' ;
 CHP = CHP1 'ET' CHP2 ;

*

 AA = 'CONTOUR' DOMTOT ;
 BB = 'MODELISER' AA 'EULER' ;
 CC = 'DOMA' BB 'VF' ;
 DD = CC . 'QUAF'; 
 'ELIMINATION' MDOMTOT 1.0D-6 DD ;

 XX YY = 'COORDONNEE' ('DOMA' BB 'CENTRE') ;
 CHP1 = (COEF1X '*' XX) '+' (COEF1Y '*' YY) ;
 CHP1 = 'NOMC' 'C1' CHP1 'NATU' 'DISCRET' ;
 CHP2 = (COEF2X '*' XX) '+' (COEF2Y '*' YY) ;
 CHP2 = 'NOMC' 'C2' CHP2 'NATU' 'DISCRET' ;
 CHPL = CHP1 'ET' CHP2 ;

* 
*
**** N.B. : CHP1 n'as pas comme support geometrique
*           ('DOMA' $DOMTOT 'CENTRE')
*

 GRCHP0 CHPLIM COECH0 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL'
    'NOLIMITE' ('MOTS' 'C1' 'C2') CHP 'CLIM' CHPL ;
    
 UNCH1=VECT GRCHP0 0.1 'P1DX' 'P1DY'  ROUGE;
 UNCH2=VECT GRCHP0 0.1 'P2DX' 'P2DY'  VERT;
 
 GRCHP ALCHP COECH = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL'
     'LIMITEUR' ('MOTS' 'C1' 'C2') CHP 'CLIM' CHPL ;
                   
*
**** Le calcul du limiteur ne change pas le gradient
*

 ERRO = 'MAXIMUM' ('PROG' ('MAXIMUM' (GRCHP0 '-' GRCHP) 'ABS')) ;

 'SI' (ERRO  > 1E-15);
    'MESSAGE' 'Probleme dans PENT';
    'ERREUR' 5 ;
 'FINSI';

 EXGRAD1 = 'KCHT' $DOMTOT 'VECT' 'CENTRE'
          'COMP' 'P1DX' 'P1DY' (COEF1X COEF1Y);
          
 EXGRAD2 = 'KCHT' $DOMTOT 'VECT' 'CENTRE'
          'COMP' 'P2DX' 'P2DY' (COEF2X COEF2Y);
          
 EXGRAD = EXGRAD1 'ET' EXGRAD2 ;
  
 ERRO = 'MAXIMUM' (EXGRAD '-' GRCHP) 'ABS';

 'SI' (ERRO > 1D-12);
     'MESSAGE' ;
     'MESSAGE' ('CHAINE' 'Probleme dans PENT');
     'MESSAGE' ;
     'ERREUR' 5;
 'FINSI' ;
 
  'SI' GRAPH ; 
      TRAC UNCH1 DOMTOT ;
      TRAC UNCH2 DOMTOT;
  'FINSI' ;

'FIN' ;

 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer