* fichier : recircpp.dgibi * tests ajustes par PV le 12/10/08 sur les valeurs obtenues en linux32 GRAPH=FAUX ; *GRAPH=VRAI ; nbit = 5 ; * * 1/ Exemple test : canal courbe * Eclt laminaire incompressible * On impose une vitesse a un bout * V normale nulle sur les parois * On indique comment imposer une Vitesse en entree d'un domaine * (Vitesse normale non nulle et Vitesse tangentielle nulle !!) * et comment imposer un glissement sur une paroi (Vitesse normale nulle) * Post : debit sur le contour , Vitesses ,pression * Teste : vitesse normale imposee en 2D plan * algorithme de projection transitoire * DISCR='QUAF' ; KPRES='MSOMMET' ; R=4. ; n1=5 ; n2=20 ; *R=4. ; n1=2 ; n2=5 ; p1=0 0 ; p2= 1 0 ; pc= R 0 ; entree = p1 d n1 p2 ; pp1=p1 c n2 pc q1 ; pp2=p2 c n2 pc q2 ; paroi= pp1 et pp2 ; NU= 1.e-2 ; U0=1. ; DT=2. ; * Comment imposer un debit d'entree * En general il faut imposer la composante normale a * la vitesse debitante et les composantes tangentielles a ZERO ! * On n'utilise donc pas VNIMP : * On extrait le champ des normales de la surface d'entree * en prenant garde a l'orientation des normales * On extrait les composantes nx ny etc * on cree les componsantes cartesiennes du champ de vitesse * qui seront imposees en condition limite type Dirichlet usx=u0*nx ; usy=u0*ny ; * Sur les parois la condition de glissement s'obtient * effectivement en imposant une vitesse normale nulle a l'aide de VNIMP OPTI EF 'CENTREE' 'IMPL' KPRES 'ZONE' $MT 'OPER' 'NS' 1. 'UN' NU 'INCO' 'UN' 'ZONE' $MT 'OPER' 'DFDT' 1. 'UN' DT 'INCO' 'UN' 'CLIM' 'UN' UIMP sortie usx 'UN' VIMP sortie usy ; rv.'INCO'= TABLE 'INCO' ; 'CLIM' ; * rvp. 'METHINV' . 'FCPRECT'=100 ; exec rv ; * affichage vitesse un=rv.inco.'UN' ; Si GRAPH ;trace ung mt;Finsi ; $cnt=model Mcnt1 'NAVIER_STOKES' line ; Mess ' Debit sur le contour ' q ; dq= (abs q) - 3.36856E-02 ; list dq ; si (dq > 1.e-5 ) ; erreur 5 ; finsi ; * affichage pression * On extrait la bonne composante de la pression * il y a aussi les multiplicateurs de Lagrange vitesse normale * On reaffecte les bon SPG au CHPOINT Si GRAPH ;trace pn mtp;Finsi ; dpn= abs (mpn - 1.7705); si ( dpn > 1.e-4 ) ; erreur 5 ; finsi ; * * 2/ Exemple test : recirculation dans une cavite semi circulaire * Eclt laminaire incompressible * On impose une vitesse tg sur la surface libre * V normale nulle sur le fond * Voir RECIRC.DGIBI pour l'algorithme Taylor Hood * Post : debit sur le contour , fonction de courant , pression * Teste : vitesse normale imposee en 2D plan * algorithme de projection transitoire * p0=0. 0. ; p1= -1. 0.; p2= 1. 0. ; p03= 0. -1. ; p3= 1. -1. ; p4= -1. -1. ; n1= 5; n2= 5; ab= p1 d n1 p2 ; bc= p2 c p0 n2 p03 c p0 n2 p1; *bc= p2 d n2 p3 d n2 p4 d n2 p1 ; cnt=ab et bc ; * La cavité est fermée il faut imposer la pression en 1 point ! * *NU= 1. / 61. ; NU= 1.e-2 ; U0=1. ; DT=1. ; OPTI EF 'CENTREE' 'IMPL' KPRES 'ZONE' $MT 'OPER' 'NS' 1. 'UN' NU 'INCO' 'UN' 'ZONE' $MT 'OPER' 'DFDT' 1. 'UN' DT 'INCO' 'UN' 'CLIM' 'UN' UIMP slib 1. 'UN' VIMP ab 0. ; rv.'INCO'= TABLE 'INCO' ; * rvp. 'METHINV' . 'FCPRECT'=100 ; exec rv ; un = rv.inco.'UN' ; Si GRAPH ;trace ung Mmt ; Finsi ; $cnt=model Mcnt1 'NAVIER_STOKES' line ; Mess ' Debit sur le contour ' q ; si ( dq > 1.e-5 ) ; erreur 5 ; finsi ; * * Calcul de la fonction de courant * 'ZONE' $mt 'OPER' 'LAPN' 1.0D0 'INCO' 'PSI' 'ZONE' $mt 'OPER' 'FIMP' sw 'INCO' 'PSI' 'CLIM' 'PSI' 'TIMP' cnt 0.0D0 ; rk . 'INCO' = 'TABLE' 'INCO' ; exec rk ; psi=rk.inco.'PSI' ; Si GRAPH ;trace psi Mmt cnt ; Finsi ; dpsi= abs (mpsi + .17603) ; si ( dpsi > 5.e-4 ) ; erreur 5 ; finsi ; * * Calcul de la pression * Si GRAPH ; trace pn mtp ; Finsi ; dpn= abs (mpn - .38065); si ( dpn > 1.e-3 ) ; erreur 5 ; finsi ; * * Troisieme cas : Meme probleme geometrie rectangulaire * MACRO CENTRE * * * * DISCR = 'QUAF'; KPRES= 'MSOMMET' ; p0=0. 0. ; p1= -1. 0.; p2= 1. 0. ; p03= 0. -1. ; p3= 1. -1. ; p4= -1. -1. ; n1= 5 ; n2= 5 ; ab= p1 d n1 p2 ; bc= p2 d n2 p3 d n2 p4 d n2 p1 ; cnt=ab et bc ; * La cavité est fermée il faut imposer la pression en 1 point ! * NU= 1.e-2 ; U0=1. ; DT=1. ; OPTI EF 'CENTREE' 'IMPL' KPRES 'ZONE' $MT 'OPER' 'NS' 1. 'UN' NU 'INCO' 'UN' 'ZONE' $MT 'OPER' 'DFDT' 1. 'UN' DT 'INCO' 'UN' 'CLIM' 'UN' UIMP slib 1. 'UN' VIMP ab 0. ; rv.'INCO'= TABLE 'INCO' ; rv.'INCO'.'VN'=0. ; exec rv ; un = rv.inco.'UN' ; Si GRAPH ;trace ung Mmt ; Finsi ; $cnt=model Mcnt1 'NAVIER_STOKES' line ; Mess ' Debit sur le contour ' q ; dq=abs ( q - 2.78540E-03); si ( dq > 1.e-3 ) ; erreur 5 ; finsi ; 'ZONE' $mt 'OPER' 'LAPN' 1.0D0 'INCO' 'PSI' 'ZONE' $mt 'OPER' 'FIMP' sw 'INCO' 'PSI' 'CLIM' 'PSI' 'TIMP' cnt 0.0D0 ; rk . 'INCO' = 'TABLE' 'INCO' ; exec rk ; psi=rk.inco.'PSI' ; Si GRAPH ;trace psi Mmt cnt ; Finsi ; dpsi= abs (mpsi + .18561) ; si ( dpsi > 1.e-3 ) ; erreur 5 ; finsi ; * * Calcul de la pression * Si GRAPH ; trace pn mtp ; Finsi ; dpn= abs (mpn - .43612); si ( dpn > 0.1 ) ; erreur 5 ; finsi ; FIN ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales