• Aucun résultat trouvé

Equation de conservation non-lin´eaire : cas d’une solution sans

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×103, 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’ ;