1.3 Equation de conservation lin´eaire
1.3.1 Formulation El´ements Finis Explicite Conservative
Op´erateurs utilis´es TSCAL
M´ethodes num´eriques EFM1, approximation P1 ou Q1, sch´ema SUPG
Nature du probl`eme Transport d’un scalaire dans un champ de vitesse `a di-vergence non-nulle.
Classification 2D plan, convection, stationnaire Jeu de donn´ees /u2/castem/dgibi/consmasse.dgibi
Description du probl`eme :
On s’int´eresse `a la solution stationnaire du probl`eme de conservation lin´eaire sur le domaine Ω ={(x, y)∈[0,2]×[0,1]} :
∂φ
∂t +∇ ·(u
¯φ) = 0 ∀x
¯∈Ω, avecu
¯ le champ de vitesse `a divergence non-nulle d´efini par : u¯ =
αx+βy+γ 0
, ∇ ·u
¯ =α 6= 0 et la condition aux limites en entr´ee,φ= 1 sur x= 0.
Ce probl`eme admet pour solution stationnaire la fonction suivante : φex(x, y) = βy+γ
αx+βy+γ
qui v´erifie ´evidemment la condition de conservation sur le flux : I(x) = I(0) = β
2 +γ, ∀x,0≤x≤2
o`u I(x) est le flux `a travers une section du domaine d’abscisse x et de normale unitaire 1
¯x,
I(x) = Z 1
0
u¯(x, y) φ(x, y)·1
¯x dy
SOLUTION EXACTE
VAL − ISO
> 3.33E−01
< 1.00E+00 .34 .37 .40 .43 .46 .49 .53 .56 .59 .62 .65 .68 .71 .74 .78 .81 .84 .87 .90 .93 .96 .99
Fig. 1.3.1 – Solution exacteφex(x, y) Mod´elisation :
On s’int´eresse au probl`eme d´efini par les param`etresα = 1, β = 2 et γ = 1. On r´esoud ce probl`eme `a l’aide de l’op´erateur de convection TSCAL, avec l’option CONS (Conservatif) et l’option de d´ecentrement SUPG. On effectue 2 calculs, l’un sur un maillage de quadrangles contenant 40×20 ´el´ements, l’un sur triangles contenant le double d’´el´ements (subdivision de chaque quadrangle en deux).
Synth`ese des r´esultats :
On s’int´eresse `a deux indicateurs d’erreur de conservation : L’erreur relative entre le flux entrant et le flux sortant, ∆I/I, et l’erreur relative sur tout le domaine et
´evalu´ee en normeL∞ discr`ete entre la solution num´erique φet la solution exacte φex.
maillage ∆I/I k∆φ/φkL∞
1.4×10−5 % 0.7 %
∆ 1.0×10−4 % 0.2 %
Ces r´esultats montrent que les erreurs de conservation de l’op´erateur El´ements Finis TSCAL (avec les options CONS et SUPG) sont tr`es faibles, que ce soit avec des maillages de quadrangles ou de triangles.
Jeu de donn´ees : COMPLET = FAUX ; SI ( COMPLET ) ;
NX = 40 ; NY = 20 ; NITER = 800 ;
CFL = 0.9 ; TOLCONV = -5.0 ; TOLDEBI = 8.0E-4 ; TOLSOLU = 0.8 ; SINON ;
NX = 8 ; NY = 4 ; NITER = 200 ; CFL = 0.9 ; TOLCONV = -4.0 ; TOLDEBI = 3.0E-3 ; TOLSOLU = 1.7 ; FINSI ;
GRAPH = ’N’ ;
******************************************************************
* TESTE LA CONSERVATION DE LA MASSE POUR L’EQUATION SOUS FORME *
* CONSERVATIVE : dC/dt + div ( U C ) = 0 AVEC U CHAMP DE VITESSE *
* A DIVERGENCE NON NULLE *
* COMPARAISON AVEC SOLUTION ANALYTIQUE EXACTE *
* ON TESTE SUCCESSIVEMENT MAILLAGE QUA4 ET MAILLAGE TRI3 *
******************************************************************
DEBPROC CALCUL ; ARGU RVX*’TABLE’ ; RV = RVX.’EQEX’ ; CN = RV.INCO.’CN’ ;
DD = RV.PASDETPS.’NUPASDT’ ; NN = DD/5 ;
LO = (DD-(5*NN)) EGA 0 ; SI ( LO ) ;
ERR = KOPS (RV.INCO.’CN’) - (RV.INCO.’CNM1’) ; ELI = MAXI ERR ’ABS’ ;
ELI = (LOG (ELI + 1.0E-20))/(LOG 10.) ;
MESSAGE ’ITER ’ RV.PASDETPS.’NUPASDT’ ’ ERREUR LINF ’ ELI ; IT = PROG RV.PASDETPS.’NUPASDT’ ;
ER = PROG ELI ;
RV.INCO.’IT’ = (RV.INCO.’IT’) ET IT ; RV.INCO.’ER’ = (RV.INCO.’ER’) ET ER ; FINSI ;
RV.INCO.’CNM1’ = KCHT $DOMTOT ’SCAL’ ’SOMMET’ (RV.INCO.’CN’) ; as2 ama1 = ’KOPS’ ’MATRIK’ ;
FINPROC as2 ama1 ;
opti dime 2 ; opti elem qua4 ; opti isov suli ;
titre ’Conservation de la masse’ ;
*************
* DIFFUSION *
*************
DIF = 1.0E-20 ;
************
* MAILLAGE *
************
A1 = 0.0 0.0 ; A2 = 2.0 0.0 ; A3 = 2.0 1.0 ; A4 = 0.0 1.0 ;
FBAS = A1 ’DROI’ NX A2 ; FDRO = A2 ’DROI’ NY A3 ; FHAU = A3 ’DROI’ NX A4 ; FGAU = A4 ’DROI’ NY A1 ; PA1 = FBAS POIN ’PROC’ A1 ; PA2 = FBAS POIN ’PROC’ A2 ; P12 = CHAN POI1 FBAS ;
MA1 = P12 ELEM ’CONTENANT’ PA1 ; MA2 = P12 ELEM ’CONTENANT’ PA2 ;
DOMTOT = ’DALL’ FBAS FDRO FHAU FGAU ’PLAN’ ;
************************************
* CREATION DU MODELE NAVIER_STOKES *
************************************
MDOMTOT = CHAN DOMTOT QUAF ;
$DOMTOT = MODE MDOMTOT ’NAVIER_STOKES’ LINE ; DOMA $DOMTOT ’IMPR’ ; DOMTOT = DOMA $DOMTOT MAILLAGE ;
CNT = ’CONT’ DOMTOT ; FDRO = CHAN FDRO QUAF ; FGAU = CHAN FGAU QUAF ;
ELIM (MDOMTOT ET FDRO ET FGAU ) 1.E-3 ;
$FDRO = MODE FDRO ’NAVIER_STOKES’ LINE ;
$FGAU = MODE FGAU ’NAVIER_STOKES’ LINE ; FDRO = DOMA $FDRO ’MAILLAGE’ ;
FGAU = DOMA $FGAU ’MAILLAGE’ ;
**************************************
* INITIALISATION DU CHAMP DE VITESSE *
**************************************
alpha = 1. ; beta = 2. ; gamma = 1. ;
XX = COOR 1 (DOMA $DOMTOT MAILLAGE) ; YY = COOR 2 (DOMA $DOMTOT MAILLAGE) ; XX = KCHT $DOMTOT ’SCAL’ ’SOMMET’ XX ; YY = KCHT $DOMTOT ’SCAL’ ’SOMMET’ YY ; U1 = KOPS XX ’*’ alpha ;
U2 = KOPS YY ’*’ beta ; U3 = gamma ;
U = KOPS ( KOPS U1 ’+’ U2) ’+’ U3 ; CEXACT = KOPS ( KOPS U2 ’+’ U3 ) ’/’ U ; U = NOMC ’UX’ U ’NATU’ ’DISCRET’ ;
VX = KCHT $DOMTOT ’SCAL’ ’SOMMET’ ’COMP’ ’UX’ U ; VY = KCHT $DOMTOT ’SCAL’ ’SOMMET’ ’COMP’ ’UY’ 0.0 ;
CHVIT=KCHT $DOMTOT ’VECT’ ’SOMMET’ ’COMP’ (MOTS ’UX’ ’UY’) (VX ET VY);
**********************************************
* TABLE EQEX CONTENANT L’EQUATION A RESOUDRE *
**********************************************
RV = EQEX $DOMTOT ’ITMA’ NITER ’ALFA’ CFL
’ZONE’ $DOMTOT
’OPER’ CALCUL
’OPTI’ ’CONS’ ’SUPG’
’OPER’ TSCAL DIF ’VITESSE’ 0.0 ’CN’ ’INCO’ ’CN’
’OPTI’ ’CENTREE’
’OPER’ DFDT 1. ’CN’ ’DELTAT’ ’INCO’ ’CN’
’CLIM’ ’CN’ ’TIMP’ FGAU 1.0 ; RV.INCO = TABLE ’INCO’ ;
RV.INCO.’CN’ = KCHT $DOMTOT ’SCAL’ ’SOMMET’ 0. ; RV.INCO.’VITESSE’= CHVIT ;
RV.INCO.’CNM1’ = KCHT $DOMTOT ’SCAL’ ’SOMMET’ 1. ; RV.INCO.’IT’ = PROG 1 ;
RV.INCO.’ER’ = PROG 0. ; RV.INCO.’NBIT’ = 0 ; EXEC RV ;
*************************************************************
* ANALYSE DES RESULTATS : *
* ON TESTE SUR LA CONVERGENCE VERS LA SOLUTION STATIONNAIRE *
* SUR LA PRECISION ENTRE DEBITS ENTRANT/SORTANT *
* SUR LA PRECISION SOLUTIONS NUMERIQUE/EXACTE *
*************************************************************
GX = KOPS VX ’*’ RV.INCO.’CN’ ; GY = KOPS VY ’*’ RV.INCO.’CN’ ; GX = NOMC ’UX’ GX ’NATU’ ’DISCRET’ ;
GY = NOMC ’UY’ GY ’NATU’ ’DISCRET’ ; G = KCHT $DOMTOT VECT SOMMET (GX ET GY) ; QENTREE = DBIT G $FGAU ;
QSORTIE = DBIT G $FDRO ;
ERQ = (QENTREE+QSORTIE)/QENTREE ; ERQ = ABS(ERQ)*100. ;
MESSAGE ’ERREUR RELATIVE ENTRE DEBIT ENTRANT ET SORTANT ’ ERQ ;
ERR = KOPS CEXACT ’-’ RV.INCO.’CN’ ; ERR = KOPS ERR ’/’ CEXACT ;
ERR = KOPS ERR ’*’ 100. ; ERR = ABS ERR ;
MESSAGE ’ERREUR RELATIVE ENTRE SOL. NUMERIQUE ET EXACTE’
(MAXI ERR) ;
SI ( (MINI RV.INCO.’ER’) > TOLCONV ) ; ERREUR 5 ;
FINSI ;
SI ( ERQ > TOLDEBI ) ; ERREUR 5 ; FINSI ;
SI ( (MAXI ERR) > TOLSOLU ) ; ERREUR 5 ;
FINSI ;
***********************
* TRACE DES RESULTATS *
***********************
SI ( ’EGA’ graph ’O’) ;
VV = VECT RV.INCO.’VITESSE’ 0.1 UX UY JAUNE ; TRACE DOMTOT ’TITR’ ’MAILLAGE’ ;
TRACE VV DOMTOT CNT ’TITR’ ’CHAMP DE VITESSE’ ; TRAC DOMTOT CEXACT CNT ’TITR’ ’SOLUTION EXACTE’ ;
TRAC DOMTOT (RV.INCO.’CN’) CNT ’TITR’ ’SOLUTION NUMERIQUE’ ; LISO = PROG 0. 2. 4. 6. 8. 10. 12. 14. 16. 20. ;
TRACE ERR DOMTOT (CONT DOMTOT) LISO ’TITR’ ’ERREUR RELATIVE’ ; EVOL4 = EVOL ’MANU’ ’ITERATIONS’ (RV.INCO.’IT’) ’LOG|E|inf’
(RV.INCO.’ER’) ;
DESS EVOL4 ’XBOR’ 0. 2000. ’YBOR’ -12.0 0.0
’TITR’ ’HISTOIRE DE CONVERGENCE’ ; FINSI ;
************************************
* ON TESTE MAINTENANT SUR DES TRI3 *
************************************
opti elem tri3 ;
DOMTOT = ’DALL’ FBAS FDRO FHAU FGAU ’PLAN’ ;
************************************
* CREATION DU MODELE NAVIER_STOKES *
************************************
MDOMTOT = CHAN DOMTOT QUAF ;
$DOMTOT = MODE MDOMTOT ’NAVIER_STOKES’ LINE ; DOMA $DOMTOT ’IMPR’ ; DOMTOT = DOMA $DOMTOT MAILLAGE ;
CNT = ’CONT’ DOMTOT ; FDRO = CHAN FDRO QUAF ; FGAU = CHAN FGAU QUAF ;
ELIM (MDOMTOT ET FDRO ET FGAU ) 1.E-3 ;
$FDRO = MODE FDRO ’NAVIER_STOKES’ LINE ;
$FGAU = MODE FGAU ’NAVIER_STOKES’ LINE ; FDRO = DOMA $FDRO ’MAILLAGE’ ;
FGAU = DOMA $FGAU ’MAILLAGE’ ;
**************************************
* INITIALISATION DU CHAMP DE VITESSE *
**************************************
alpha = 1. ; beta = 2. ; gamma = 1. ;
XX = COOR 1 (DOMA $DOMTOT MAILLAGE) ; YY = COOR 2 (DOMA $DOMTOT MAILLAGE) ; XX = KCHT $DOMTOT ’SCAL’ ’SOMMET’ XX ; YY = KCHT $DOMTOT ’SCAL’ ’SOMMET’ YY ; U1 = KOPS XX ’*’ alpha ;
U2 = KOPS YY ’*’ beta ; U3 = gamma ;
U = KOPS ( KOPS U1 ’+’ U2) ’+’ U3 ; CEXACT = KOPS ( KOPS U2 ’+’ U3 ) ’/’ U ; U = NOMC ’UX’ U ’NATU’ ’DISCRET’ ;
VX = KCHT $DOMTOT ’SCAL’ ’SOMMET’ ’COMP’ ’UX’ U ; VY = KCHT $DOMTOT ’SCAL’ ’SOMMET’ ’COMP’ ’UY’ 0.0 ;
CHVIT=KCHT $DOMTOT ’VECT’ ’SOMMET’ ’COMP’ (MOTS ’UX’ ’UY’) (VX ET VY);
**********************************************
* TABLE EQEX CONTENANT L’EQUATION A RESOUDRE *
**********************************************
RV = EQEX $DOMTOT ’ITMA’ NITER ’ALFA’ CFL
’ZONE’ $DOMTOT
’OPER’ CALCUL
’OPTI’ ’CONS’ ’SUPG’
’OPER’ TSCAL DIF ’VITESSE’ 0.0 ’CN’ ’INCO’ ’CN’
’OPTI’ ’CENTREE’
’OPER’ DFDT 1. ’CN’ ’DELTAT’ ’INCO’ ’CN’
’CLIM’ ’CN’ ’TIMP’ FGAU 1.0 ; RV.INCO = TABLE ’INCO’ ;
RV.INCO.’CN’ = KCHT $DOMTOT ’SCAL’ ’SOMMET’ 0. ; RV.INCO.’VITESSE’= CHVIT ;
RV.INCO.’CNM1’ = KCHT $DOMTOT ’SCAL’ ’SOMMET’ 1. ; RV.INCO.’IT’ = PROG 1 ;
RV.INCO.’ER’ = PROG 0. ; RV.INCO.’NBIT’ = 0 ; EXEC RV ;
*************************************************************
* ANALYSE DES RESULTATS : *
* ON TESTE SUR LA CONVERGENCE VERS LA SOLUTION STATIONNAIRE *
* SUR LA PRECISION ENTRE DEBITS ENTRANT/SORTANT *
* SUR LA PRECISION SOLUTIONS NUMERIQUE/EXACTE *
*************************************************************
GX = KOPS VX ’*’ RV.INCO.’CN’ ; GY = KOPS VY ’*’ RV.INCO.’CN’ ; GX = NOMC ’UX’ GX ’NATU’ ’DISCRET’ ; GY = NOMC ’UY’ GY ’NATU’ ’DISCRET’ ; G = KCHT $DOMTOT VECT SOMMET (GX ET GY) ; QENTREE = DBIT G $FGAU ;
QSORTIE = DBIT G $FDRO ;
ERQ = (QENTREE+QSORTIE)/QENTREE ; ERQ = ABS(ERQ)*100. ;
MESSAGE ’ERREUR RELATIVE ENTRE DEBIT ENTRANT ET SORTANT ’ ERQ ;
ERR = KOPS CEXACT ’-’ RV.INCO.’CN’ ; ERR = KOPS ERR ’/’ CEXACT ;
ERR = KOPS ERR ’*’ 100. ; ERR = ABS ERR ;
MESSAGE ’ERREUR RELATIVE ENTRE SOL. NUMERIQUE ET EXACTE’
(MAXI ERR) ;
SI ( (MINI RV.INCO.’ER’) > TOLCONV ) ; ERREUR 5 ;
FINSI ;
SI ( ERQ > TOLDEBI ) ; ERREUR 5 ; FINSI ;
SI ( (MAXI ERR) > TOLSOLU ) ; ERREUR 5 ;
FINSI ;
***********************
* TRACE DES RESULTATS *
***********************
SI ( ’EGA’ graph ’O’) ;
VV = VECT RV.INCO.’VITESSE’ 0.1 UX UY JAUNE ; TRACE DOMTOT ’TITR’ ’MAILLAGE’ ;
TRACE VV DOMTOT CNT ’TITR’ ’CHAMP DE VITESSE’ ; TRAC DOMTOT CEXACT CNT ’TITR’ ’SOLUTION EXACTE’ ;
TRAC DOMTOT (RV.INCO.’CN’) CNT ’TITR’ ’SOLUTION NUMERIQUE’ ; LISO = PROG 0. 2. 4. 6. 8. 10. 12. 14. 16. 20. ;
TRACE ERR DOMTOT (CONT DOMTOT) LISO ’TITR’ ’ERREUR RELATIVE’ ; EVOL4 = EVOL ’MANU’ ’ITERATIONS’ (RV.INCO.’IT’) ’LOG|E|inf’
(RV.INCO.’ER’) ;
DESS EVOL4 ’XBOR’ 0. 2000. ’YBOR’ -12.0 0.0
’TITR’ ’HISTOIRE DE CONVERGENCE’ ; FINSI ;
FIN ;