* 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