* fichier : dvisi.dgibi ************************************************************************ * Section : Fluides Transitoire ************************************************************************ *$$$ DVISI *X DVISI(Jeux de donnees) ** ** -- DVISI -- Cavite carrée De Vahl Davis RA=1.E6 ** Algorithme implicite * * Teste en IMPLICITE NS TSCA DUDW DFDT LAPN * éléments MACRO * et QUADRATIQUE QUA9 et TRI7 * * à noter : 1/ l'initialisation du champ de température se fait * sur (doma $mt maillage) et non pas mt lorsqu'on utilise * MACRO * * 2/ Le champ de vitesse (inconnue UN) est défini et * calculé sur le domaine fluide $MF uniquement * * 3/ Pour amortir les ondes de gravité on utilise DFDT sur U * uniquement avec un pas de temps judicieusement calculé *---------------------------------------------------------------------- GRAPH = 'N' ; COMPLET = FAUX ; SI (COMPLET) ; NITER = 30 ; d1=0.02 ; d2= 0.1 ; d1=0.03 ; d2= 0.2 ; SINON ; d1=0.05 ; d2= 0.3 ; *d1=0.5 ; d2= 0.5 ; NITER = 10 ; FINSI ; DEBP CALCUL ; ARGU RX*TABLE ; rv=rx.'EQEX' ; tn=rv.'INCO'.'TN' ; un=rv.'INCO'.'UN' ; rv.'INCO'.'TF'=kcht $mf scal sommet (redu tn (doma $mf maillage)); as2 ama1 = 'KOPS' 'MATRIK' ; FINPROC as2 ama1 ; DEBPROC POST ; ARGU RV*TABLE GRAPH*MOT ; tn=rv.'INCO'.'TN' ; un=rv.'INCO'.'UN' ; uref=rv.INCO.'UREF' ; srti=RV.'£AA'.'MAILLAGE' ; srth=RV.'£BB'.'MAILLAGE' ; evolV = EVOL 'CHPO' (rv.'INCO'.'UN') UX (srti ) ; evolH = EVOL 'CHPO' (rv.'INCO'.'UN') UY (srth ) ; evx=extr evolV 'ORDO' ; evy=extr evolV 'ABSC' ; evolV= evol 'MANU' 'Vitesse' evx 'Hauteur' evy ; evh=extr evolH 'ORDO' ; rv.'EVH'=evh ; SI ('EGA' GRAPH 'O' ); $mt = rv.'$MT' ; mt=DOMA $mt MAILLAGE ; ung1=vect un uref ux uy jaune ; trac ung1 mt ; trace tn mt ; TAB1=TABLE; TAB1.'TITRE'=TABLE ; TAB1 . 1 ='MARQ REGU ' ; TAB1.'TITRE' . 1 = mot 'Composante_UX ' ; DESS evolV 'TITX' 'R (m)' 'TITY' 'V (m/s)' LEGE TAB1 ; TAB1.'TITRE' . 1 = mot 'Composante_UY ' ; DESS evolH 'TITX' 'R (m)' 'TITY' 'V (m/s)' LEGE TAB1 ; FINSI ; FINPROC ; DEBPROC TEST DISCR*MOT KTYP*MOT ; option dime 2 elem ktyp ; p1=0 0 ; p15= 0.5 0 ; p2=1 0 ; p25=1 0.5 ; p3=1 1; p35=0.5 1 ; p4=0 1 ; p45= 0 0.5 ; nt= 1 ; bas=p1 d dini d1 dfin d2 p15 d dini d2 dfin d1 p2 ; cdro=p2 d dini d1 dfin d2 p25 d dini d2 dfin d1 p3 ; haut=p3 d dini d1 dfin d2 p35 d dini d2 dfin d1 p4 ; cgau=p4 d dini d1 dfin d2 p45 d dini d2 dfin d1 p1 ; cnt= bas et cdro et haut et cgau ; mdro=cdro trans nt (0.2 0.) ; mdro=mdro coul bleu ; mgau=cgau trans nt (-0.2 0.) ; mgau=mgau coul rouge; pdro=cote 3 mdro ; pgau=cote 3 mgau ; mf= bas cdro haut cgau daller ; mt= mf et mgau et mdro ; *trace mt ; mt = chan mt quaf ; mf = chan mf quaf ; *opti donn 5 ; mdro = chan mdro quaf ; mgau = chan mgau quaf ; elim (mt et mf et mdro et mgau) 1.e-3 ; $mt= MODE mt 'NAVIER_STOKES' DISCR ; $mf= MODE mf 'NAVIER_STOKES' DISCR ; $mdro = MODE mdro 'NAVIER_STOKES' DISCR ; $mgau = MODE mgau 'NAVIER_STOKES' DISCR ; *doma $mt 'IMPR' ; *doma $mf 'IMPR' ; AA=cdro moin (0.5 0.) ; BB=bas plus (0. 0.5) ; elim (AA et BB et mt) 1.e-3 ; $AA=mode AA 'NAVIER_STOKES' DISCR ; $BB=mode BB 'NAVIER_STOKES' DISCR ; £AA = DOMA $AA 'TABLE' ; £BB = DOMA $BB 'TABLE' ; C1 = KCHT $mf SCAL SOMMET 1. ; NU =.7 ; ALF=NU ; ALFP=1.e3 ; Ra = 1.E6 ; uref= 0.5/(Ra**0.5) ; gb = 0. (-1.*(Ra)) ; t0 = 0. ; EPSS=1.E-8 ; DT=0.1/(Ra**0.5) ; KPRESS=MOT 'CENTREP1' ; RV=EQEX 'OMEGA' 1. 'NITER' NITER 'OPTI' 'EF' IMPL 'CENTREE' 'NODIV' 'ZONE' $MF 'OPER' 'CALCUL' 'ZONE' $MF 'OPER' 'DFDT' C1 'UN' DT 'INCO' 'UN' 'ZONE' $MF 'OPER' 'NS' 1. 'UN' NU GB 'TF' T0 'INCO' 'UN' 'OPTI' 'IMPL' KPRESS 'ZONE' $MF 'OPER' 'DUDW' EPSS 'INCO' 'UN' ; RV=EQEX RV 'OPTI' 'EF' 'IMPL' 'CENTREE' 'DIV2' 'ZONE' $MF 'OPER' 'TSCA' 1. 'UN' ALF 0. 'INCO' 'TN' 'ZONE' $MGAU 'OPER' 'LAPN' ALFP 'INCO' 'TN' 'ZONE' $MDRO 'OPER' 'LAPN' ALFP 'INCO' 'TN' ; RV = EQEX RV 'CLIM' 'UN' 'UIMP' (bas et cgau et cdro et haut) 0. 'UN' 'VIMP' (bas et cgau et cdro et haut) 0. 'TN' 'TIMP' pgau 1. 'TN' 'TIMP' pdro 0. ; RV.INCO=TABLE INCO ; RV.INCO.'UN'=kcht $MF VECT SOMMET (0. 0.); RV.INCO.'UF'=kcht $MF VECT SOMMET (0. 0.); corx= coor 1 (doma $mt maillage) ; RV.INCO.'TN'=kcht $MT SCAL SOMMET ((6./7.) -(10./14.*corx)) ; RV.INCO.'UREF'= uref ; EXEC RV ; RV.'£AA'=£aa ; RV.'£BB'=£bb ; RV.'$MT'=$MT ; FINPROC RV ; DISCR='QUAF' ; rv = test DISCR 'QUA8' ; POST rv graph ; si (non COMPLET ) ; evh=abs (rv.'EVH') ; list evh ; levh=prog +1.28705E-28 190.48 169.84 73.736 8.8625 +4.6032 +6.6793 +7.3036 22.072 +3.4506 15.628 4.1952 +22.973 +75.193 +167.79 +185.76 +5.01314E-28; ER=SOMM( (((abs (levh - evh))*0.0625)**2.) / 200. ) ; mess ' Ecart sur profil de vitesse ' er ; si ( ER > 5.e-2 ) ; erreur 5 ; finsi ; FINSI ; DISCR='MACRO'; rv = test DISCR 'QUA8' ; POST rv graph ; si (non COMPLET ) ; evh=abs (rv.'EVH') ; list evh ; levh=prog +1.08113E-27 199.41 180.27 74.817 10.442 +7.2698 +9.7538 +6.5028 12.026 +3.4137 12.737 7.0361 +18.851 +75.526 +178.49 +195.70 +3.56690E-28; ER=SOMM( (((abs (levh - evh))*0.0625)**2.) / 200. ) ; mess ' Ecart sur profil de vitesse ' er ; si ( ER > 1.e-2) ; erreur 5 ; finsi ; FINSI ; DISCR='QUAF'; rv = test DISCR 'TRI6' ; POST rv graph ; si (non COMPLET ) ; evh=abs (rv.'EVH') ; list evh ; levh=prog +4.52120E-28 195.09 164.52 75.608 18.322 +4.2786 +12.250 +5.8335 9.3695 2.1938 2.3476 4.2553 +10.490 +74.205 +165.31 +183.44 +3.22803E-28; ER=SOMM( (((abs (levh - evh))*0.0625)**2.) / 200. ) ; mess ' Ecart sur profil de vitesse ' er ; si ( ER > 5.e-3 ) ; erreur 5 ; finsi ; FINSI ; FIN ;