1.5.1 Formulation El´ ements Finis Explicite Non-Conservative
Op´erateurs utilis´es TSCAL
M´ethodes num´eriques EFM1, approximation Q1, sch´ema SUPG
Nature du probl`eme R´esolution d’une ´equation de convection non-lin´eaire et comparaison avec solution analytique.
Classification 2D plan, convection, instationnaire Jeu de donn´ees /u2/castem/dgibi/convnonlin1.dgibi
Description du probl`eme :
Ce cas-test est inspir´e d’un cas-test propos´e dans [1]. Il concerne la r´esolution d’une ´equation de conservation non-lin´eaire, qui sous forme conservative s’´ecrit :
∂u
∂t +∇ ·F
¯(u) = 0, F
¯(u) = u2
ln2u
et sous forme non-conservative,
∂u
∂t +λ
¯· ∇u= 0, λ
¯ = u
1/u
Ce probl`eme admet comme solution une solution analytique de la forme : uex(x, y, t) = x+t
y+t dans toute r´egion de l’espace o`uy+t6= 0, ∀t ≥0.
On consid`ere ici le domaine carr´e Ω = {(x, y) ∈ [1,2]2}, avec comme solution initiale `a t = 0,uex(x, y, t= 0) = xy, et les conditions aux limites sur la fronti`ere entrante ∂Ωe (voir figure 1.5.1) :
u(x, y, t) = uex(x, y, t), ∀t≥0, ∀(x, y)∈∂Ωe
x Ω
1 2
2 1
y
Fig. 1.5.1 – G´eom´etrie et fronti`ere entrante sur lesquelles on impose la solution
`a chaque instant. Le champ de vitesse repr´esent´e sur la figure correspond `a la solution `a t= 0.
Mod´elisation :
On r´esoud le probl`eme sous forme non-conservative avec l’op´erateur TSCAL, et avec l’option de d´ecentrement ‘SUPG’ (sch´ema lin´eaire). Le sch´ema est expli-cite en temps, avec une matrice masse diagonale non-consistante. A chaque pas de temps, les conditions aux limites sont r´eactualis´ees, et le champ de vitesse transportant, `a savoir λ
¯, ´evalu´e `a partir de la solution num´erique `a ce pas de temps.
On consid`ere 3 maillages de plus en plus fins, le premier constitu´e de 10×10 mailles, le deuxi`eme de 20×20 mailles et le troisi`eme de 40×40 mailles. On effectue dans chaque cas le calcul jusqu’au temps tf = 2.0, avec le mˆeme pas de temps ∆t, ´egal `a 5×10−3, qui est plus petit que le plus petit pas de stabilit´e du sch´ema sur le maillage le plus fin. Ainsi, on peut comparer la pr´ecision du sch´ema en fonction seulement du pas d’espace ∆x = ∆y = 1/N o`u N est le nombre de points dans l’une ou l’autre direction.
R´esultats num´eriques
La solution num´erique correspondant au maillage fin et aux 4 instants t = 0, t = 0.5, t = 1 et t = 1.5 est repr´esent´ee sur la figure 1.5.2. On observe que cette solution est constitu´ee de caract´eristiques divergentes, c’est `a dire qu’elle repr´esente une solution r´eguli`ere, sans discontinuit´e, analogue `a une d´etente.
Les courbes donnant l’erreur entre la solution num´erique et la solution exacte (erreur ´evalu´ee en norme L2 discr`ete) sont trac´ees pour les 3 maillages sur la courbe 1.5.3. On remarque que lorsque le pas d’espace du maillage est divis´e par 2, l’erreur est r´eduite environ de moiti´e, ce qui sugg`ere qu’en instationnaire et en explicite (avec une matrice masse non consistante), le sch´ema SUPG n’est que d’ordre 1 en espace (alors qu’en stationnaire, il est d’ordre 2 en espace).
GIBI FECIT
Fig. 1.5.3 – Evolution de l’erreur entre solution num´erique et solution exacte pour les 3 maillages.
R´ef´erence :
−1− D.B. Fairlie, “Formal Solutions of an Evolution Equations of Riemann Ty-pe”, in Studies in Applied Mathematics, vol. 98, p.203-205.
Jeu de donn´ees :
COMPLET = FAUX ; GRAPH = FAUX ; NX = 10 ; NY = 10 ; CFL = 0.7 ;
’SI’ ( COMPLET ) ; TFIN = 10. ;
’SINON’ ;
TFIN = 1. ;
’FINSI’ ;
***********************************************************
* EQUATION DE CONVECTION NON-LINEAIRE Ut + div (F(U)) = 0 *
* AVEC F(U) = U*U/2 1_x + ln U 1_y U > 0 *
* RESOLUE SOUS FORME NON-CONSERVATIVE *
* dU/dt + U dU/dx + 1/U dU/dy = 0 *
* AVEC OPTION SUPGDC (par d´efaut) *
* SOLUTION ANALYTIQUE Uex(x,y,t) = (x-t)/(y-t) *
* Probleme hyperbolique avec conditions aux limites *
* variant dans le temps *
* H. PAILLERE AVRIL 1997 *
***********************************************************
*******************************************************************
* PROCEDURE POUR CALCULER CHAMP DE VITESSE, METTRE A JOUR LES C.L *
* TESTER LA CONVERGENCE VERS L’ETAT STATIONNAIRE ET L’ERREUR *
* ENTRE SOLUTION NUMERIQUE ET SOLUTION ANALYTIQUE *
*******************************************************************
’DEBPROC’ CALCUL ;
’ARGU’ RVX*’TABLE’ ; RV = RVX.’EQEX’ ; CN = RV.INCO.’CN’ ;
* calcul du champ de vitesse VX1 = CN ;
VX1 = ’NOMC’ ’UX’ VX1 ; VY1 = ’KOPS’ 1. ’/’ CN ; VY1 = ’NOMC’ ’UY’ VY1 ;
VV=’KCHT’ $DOMTOT ’VECT’ ’SOMMET’ ’COMP’ (MOTS ’UX’ ’UY’) (VX1 ’ET’ VY1) ;
RV.INCO.’VITESSE’ = VV ;
* mise a jour des conditions aux limites CL_CN = ’EXCO’ ’CN’ RV.’CLIM’ ’CN’ ;
UEXAC = ’KOPS’ (’KOPS’ XX ’-’ RV.PASDETPS.’TPS’) ’/’
(’KOPS’ YY ’-’ RV.PASDETPS.’TPS’) ; CL_NOUV = ’KCHT’ $CL ’SCAL’ ’SOMMET’ UEXAC ; CL_NOUV = ’NOMC’ ’CN’ CL_NOUV ’NATU’ ’DISCRET’ ;
RV.’CLIM’ = 0.D0 * CL_CN + CL_NOUV ;
* calcul de l’erreur de convergence vers l’etat stationnaire
* et de l’erreur entre solution numerique et solution analytique 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’ ’TEMPS = ’ RV.PASDETPS.’TPS’
’ITER ’ RV.PASDETPS.’NUPASDT’ ’ ERREUR LINF (dUdt) ’ ELI ; IT = ’PROG’ RV.PASDETPS.’NUPASDT’ ;
ER = ’PROG’ ELI ;
RV.INCO.’IT’ = (RV.INCO.’IT’) ’ET’ IT ;
RV.INCO.’ERCONV’ = (RV.INCO.’ERCONV’) ’ET’ ER ; UEXAC = ’KCHT’ $DOMTOT ’SCAL’ ’SOMMET’ UEXAC ; UEXAC = ’NOMC’ ’CN’ UEXAC ’NATU’ ’DISCRET’ ; ERRP = ’KOPS’ UEXAC ’-’ RV.INCO.’CN’ ;
ERRP = ’KOPS’ ERRP ’*’ ERRP ; ERR2 = 0. ;
’REPETER’ BLOC1 (NBNO DOMTOT) ;
P1 = (DOMA $DOMTOT SOMMET) ’POIN’ &BLOC1 ; ERR1 = ’EXTR’ ERRP ’SCAL’ P1 ;
ERR2 = ERR2 + ERR1 ;
’FIN’ BLOC1 ;
ERR2 = ERR2/(NBNO DOMTOT) ; ERR2 = ERR2 ** 0.5 ;
ER = ’PROG’ ERR2 ;
RV.INCO.’ERSOLU’ = (RV.INCO.’ERSOLU’) ’ET’ ER ;
’MESSAGE’ ’ERREUR |Uex(x,y,t) - Unum(x,y,t)| EN NORME L2 = ’ ERR2 ;
’FINSI’ ;
RV.INCO.’CNM1’ = ’KCHT’ $DOMTOT ’SCAL’ ’SOMMET’ (RV.INCO.’CN’) ; as2 ama1 = ’KOPS’ ’MATRIK’ ;
FINPROC as2 ama1 ;
’OPTI’ ’DIME’ 2 ;
’OPTI’ ’ELEM’ ’QUA4’ ;
*************
* DIFFUSION *
*************
DIF = 1.0E-10 ;
************
* MAILLAGE *
************
A1 = -2.0 -2.0 ; A2 = -1.0 -2.0 ; A3 = -1.0 -1.0 ; A4 = -2.0 -1.0 ;
FBAS = A1 ’DROI’ NX A2 ; FDRO = A2 ’DROI’ NY A3 ; FHAU = A3 ’DROI’ NX A4 ; FGAU = A4 ’DROI’ NY A1 ;
DOMTOT = ’DALL’ FBAS FDRO FHAU FGAU ’PLAN’ ;
************************************
* CREATION DU MODELE NAVIER_STOKES *
************************************
GEOCL = FBAS ’ET’ FGAU ;
’ELIM’ GEOCL 1.E-3 ;
MDOMTOT = CHAN DOMTOT QUAF ;
$DOMTOT = MODE MDOMTOT ’NAVIER_STOKES’ LINE ; DOMA $DOMTOT ’IMPR’ ; MGEOCL = CHAN GEOCL QUAF ;
ELIM MDOMTOT MGEOCL 1.E-3 ;
$CL = MODE MGEOCL ’NAVIER_STOKES’ LINE ;
*********************
* SOLUTION INITIALE *
*********************
XX YY = ’COOR’ (DOMA $DOMTOT MAILLAGE) ; SOLINI = ’KOPS’ XX ’/’ YY ;
SOLCL = ’KCHT’ $CL ’SCAL’ ’SOMMET’ SOLINI ;
***********************
* TABLE DE RESOLUTION *
***********************
RV = ’EQEX’ $DOMTOT ’ITMA’ 1000 ’ALFA’ CFL ’TFINAL’ (TFIN/2.)
’ZONE’ $DOMTOT
’OPER’ CALCUL
’OPTI’ ’SUPGDC’
’OPER’ TSCAL DIF ’VITESSE’ 0.0 ’INCO’ ’CN’
’OPTI’ ’CENTREE’
’OPER’ DFDT 1. ’CN’ ’DELTAT’ ’INCO’ ’CN’
’CLIM’ ’CN’ ’TIMP’ GEOCL SOLCL ; RV.INCO = ’TABLE’ ’INCO’ ;
RV.INCO.’CN’ = ’KCHT’ $DOMTOT ’SCAL’ ’SOMMET’ SOLINI ; RV.INCO.’VITESSE’= CHVIT ;
RV.INCO.’CNM1’ = ’KCHT’ $DOMTOT ’SCAL’ ’SOMMET’ SOLINI ; RV.INCO.’IT’ = ’PROG’ 1 ;
RV.INCO.’ERCONV’ = ’PROG’ 0. ; RV.INCO.’ERSOLU’ = ’PROG’ 0. ;
* ON EXECTUTE JUSQU’A TFIN/2. * EXEC RV ;
* ON TESTE L’OPTION SUPG (IDCEN=3) DE TFIN/2. A TFIN * RV.’2TSCAL’.’KOPT’.’IDCEN’ = 3 ;
RV.’TFINAL’ = TFIN ; EXEC RV ;
’SI’ ( GRAPH ) ;
’OPTI’ ’ISOV’ ’SULI’ ;
’TRACE’ RV.INCO.’CN’ DOMTOT (’CONT’ DOMTOT) 20 ;
EVOL4 = ’EVOL’ ’MANU’ ’ITERATIONS’ (RV.INCO.’IT’) ’LOG|E|inf’
(RV.INCO.’ERCONV’) ;
’DESS’ EVOL4 ’XBOR’ 0. 2000. ’YBOR’ -20.0 0.0 ;
’FINSI’ ;
’SI’ ( ’MINI’ ( RV.INCO.’ERCONV’ ) > -2.0 ) ;
’ERREUR’ 5 ;
’FINSI’ ;
’SI’ ( ’MAXI’ ( RV.INCO.’ERSOLU’ ) > 0.09 ) ;
’ERREUR’ 5 ;
’FINSI’ ;
’FIN’ ;