* fichier : colline.dgibi **--------------------------------- ** ECOULEMENT AUTOUR D'UNE COLLINE ** G. TURBELIN 14/12/99 **---------------------------------- COMPLET=FAUX; GRAPH='N' ; Si complet ; iitma=20000 ; sinon; iitma=5 ; finsi ; *------------------ PROCEDURE FILTREKE --------------------------------- * Filtre sur K et Epsilon * - Echelle de vitesse (K**0.5) inférieure à une fraction (alfk) * de Uref (vitesse caractéristique) (alfk=1 pour l'instant) * Uref=max(UN,U0) * - K > K0 * - Epsilon tel que l'echelle de longueur reste inférieure * à (L0/a) où L0 = diamètre enceinte et a=f(Re) * => Nut < Uref*L0/a rvp=rv.'PRESSION' ; iarg=rx.'IARG' ; NASTOK = rv.'NAVISTOK' ; si( non ( ega iarg 4)) ; finsi ; U1=rv.'INCO'.(rx.'ARG1') ; sinon ; U1=rx.'ARG1' ; sinon ; finsi ; finsi ; L0=rv.'INCO'.(rx.'ARG2') ; sinon ; L0=rx.'ARG2' ; sinon ; finsi ; finsi ; NU=rv.'INCO'.(rx.'ARG3') ; sinon ; NU=rx.'ARG3' ; sinon ; finsi ; finsi ; UN=rv.'INCO'.(rx.'ARG4') ; sinon ; UN=rx.'ARG4' ; sinon ; finsi ; finsi ; si( non ( ega nic 2)) ; finsi ; en=rv.'INCO'.nom2 ; kn=rv.'INCO'.nom1 ; Rec=100.; k0 = 1.e-10 ; cnu=0.09; mdu=mdu ** 0.5 ; rv.'INCO'.nom2=en ; rv.'INCO'.nom1=kn ; *RESPRO as2 ama1 ; FINPROC ; *------------------------------- FIN PROCEDURE FILTREKE ---------------- ** CONSTRUCTION DU MAILLAGE **------------------------ **Définition des longueurs **----------------------- **hauteur du domaine (mm) Hdo = 170.; **hauteur de la colline (mm) H_ref = 28.; **abscisses caractéristiques (mm) Xmind = -326.; Xmaxd = 500.; X1d=0.; X2d=9.; X3d= 14.; X4d= 20.; X5d=30.; X6d=40.; X7d=54.; **abscisses caractéristiques adim Xmin = Xmind/H_ref ; Xmax = Xmaxd/H_ref; X1=X1d/H_ref; X2=X2d/H_ref; X3= X3d/H_ref; X4=X4d/H_ref; X5=X5d/H_ref; X6=X6d/H_ref; X7=X7d/H_ref; Hd = Hdo/H_ref ; **Nb de maille **Nombre de maille entre x=9 et x=14(colline) Nbcol = 1; **Nb de maille entre x=-326 et x =-54 (bas1 & haut4) Nbbas1 = 25; ****Nb de maille entre x=54 et x =500 (bas2 & haut1) Nbbas2 = 40; **Nb de maille entre y=0 et x =170 (sortie et entree) ** Nbsort = 20 ; **Densité DIbasG = -1*(Xmin+X7)/Nbbas1 ; DIbas1 = 2*DIbasG ; DFbas1 = 0.5*DIbasG; DIbasD = (Xmax-X7)/Nbbas1 ; DIbas2 = 0.8*DIbasD ; DFbas2 = 1.5*DIbasD; Dsort = Hd '/' Nbsort ; DIsort = 0.3* Dsort; DFsort = 2.* Dsort; **----------------------------------------- ** Construction de la colline a partir ** de polynomes du troisième ordre **----------------------------------------- ** ** Cote GAUCHE coG60 = 0. (56.39011190988/H_ref); coG61 = 1. (+2.010520359035); coG62 = 0. ((1.644919857549e-2)*H_ref) ; coG63 = 0. (-2.674976141766e-5 *(H_ref**2)); lignG6 = COURBE (3*Nbcol) 'DINI'1. 'DFIN'1. coG60 coG61 coG62 coG63 'PARAMETRE' (-1*X7) (-1*X6) ; coG50 = 0. (17.92461334664/H_ref); coG51 = 1. -8.743920332081e-1 ; coG52 = 0. ((-5.567361123058e-2)*H_ref) ; coG53 = 0. ((-6.277731764683e-4)*(H_ref**2)); lignG5 = COURBE (2*Nbcol) 'DINI'1. 'DFIN'1. coG50 coG51 coG52 coG53 'PARAMETRE' (-1*X6) (-1*X5) ; coG40 = 0. (40.46435022819/H_ref); coG41 = 1. +1.379581654948; coG42 = 0. ((1.945884504128e-2)*H_ref); coG43 = 0. ((+2.070318932190e-4)*(H_ref**2)); lignG4 = COURBE (2*Nbcol) 'DINI'1. 'DFIN'1. coG40 coG41 coG42 coG43 'PARAMETRE' (-1*X5) (-1*X4) ; coG30 = 0. (25.79601052357/H_ref); coG31 = 1. -8.20669300745e-1; coG32 = 0. ((-9.055370274339e-2)*H_ref) ; coG33 = 0. ((-1.626510569859e-3)*(H_ref**2)); lignG3 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1. coG30 coG31 coG32 coG33 'PARAMETRE' (-1*X4) (-1*X3) ; coG20 = 0. ((2.507355893131e+1)/H_ref); coG21 = 1. -9.754803562315e-1; coG22 = 0. ((-1.016116352781e-1)*H_ref) ; coG23 = 0. ((-1.889794677828e-3)*(H_ref**2)) ; lignG2 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1. coG20 coG21 coG22 coG23 'PARAMETRE' (-1*X3) (-1*X2) ; coG10 = 0. (28/H_ref); coG11 = 1. 0.; coG12 = 0. ((6.775070969851e-3)*H_ref) ; coG13 = 0. ((+2.124527775800e-3)*(H_ref**2)) ; lignG1 = COURBE (2*Nbcol) 'DINI'1. 'DFIN'1. coG10 coG11 coG12 coG13 'PARAMETRE' (-1*X2) X1 ; colG = lignG6 et lignG5 et lignG4 et lignG3 et lignG2 et lignG1 ; *trac colG; **Cote Droit coD10 = 0. (28/H_ref); coD11 = 1. 0.; coD12 = 0. ((6.775070969851e-3)*H_ref) ; coD13 = 0. ((-2.124527775800e-3)*(H_ref**2)); lignD1 = COURBE (2*Nbcol) 'DINI'1. 'DFIN'1. coD10 coD11 coD12 coD13 'PARAMETRE' X1 X2 ; coD20 = 0. ((2.507355893131e+1)/H_ref); coD21 = 1. 9.754803562315e-1; coD22 = 0. ((-1.016116352781e-1)*H_ref) ; coD23 = 0. ((1.889794677828e-3)*(H_ref**2)) ; lignD2 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1. coD20 coD21 coD22 coD23 'PARAMETRE' X2 X3 ; coD30 = 0. ((25.79601052357)/H_ref); coD31 = 1. 8.20669300745e-1; coD32 = 0. ((-9.055370274339e-2)*H_ref) ; coD33 = 0. ((1.626510569859e-3)*(H_ref**2)) ; lignD3 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1. coD30 coD31 coD32 coD33 'PARAMETRE' X3 X4 ; coD40 = 0. (40.46435022819/H_ref); coD41 = 1. -1.379581654948; coD42 = 0. ((1.945884504128e-2)*H_ref); coD43 = 0. ((-2.070318932190e-4)*(H_ref**2)); lignD4 = COURBE (2*Nbcol) 'DINI'1. 'DFIN'1. coD40 coD41 coD42 coD43 'PARAMETRE' X4 X5 ; coD50 = 0. (17.92461334664/H_ref); coD51 = 1. 8.743920332081e-1; coD52 = 0. ((-5.567361123058e-2)*H_ref) ; coD53 = 0. ((6.277731764683e-4)*(H_ref**2)); lignD5 = COURBE (2*Nbcol) 'DINI'1. 'DFIN'1. coD50 coD51 coD52 coD53 'PARAMETRE' X5 X6 ; coD60 = 0. (56.39011190988/H_ref); coD61 = 1. -2.010520359035; coD62 = 0. ((1.644919857549e-2)*H_ref) ; coD63 = 0. ((2.674976141766e-5)*(H_ref**2)) ; lignD6 = COURBE (3*Nbcol) 'DINI'1. 'DFIN'1. coD60 coD61 coD62 coD63 'PARAMETRE' X6 X7 ; colD = lignD1 et lignD2 et lignD3 et lignD4 et lignD5 et lignD6 ; colline = colG et colD; *trac colline;opti donn 5 ; ** **Construction des cotes du domaine **----------------------------------- bas1 = (Xmin 0.) d (-1*Nbbas1) ((-1*X7) 0.) DINI DIbas1 DFIN DFbas1; bas2 = (X7 0.) d (-1*Nbbas2) (Xmax 0.) DINI DIbas2 DFIN DFbas2; bas = bas1 et colline et bas2; ** Le maillage de la face supérieure doit correspondre avec le ** maillage de la face inférieure. Pour ne pas avoir de pb dans le ** post-traitement (définition de lignes a X=Cst) , il est utile d'avoir ** un maillage rectiligne. *Haut Droite et Haut Gauche hautD = (Xmax Hd) d (-1*Nbbas2) (X7 Hd) DINI DFbas2 DFIN DIbas2; hautG = ((-1*X7) Hd) d (-1*Nbbas1) (Xmin Hd) DINI DFbas1 DFIN DIbas1; **cote Droit haut1D = (X7 Hd) d (3*Nbcol) (X6 Hd); haut2D = (X6 Hd) d (2*Nbcol) (X5 Hd); haut3D = (X5 Hd) d (2*Nbcol) (X4 Hd); haut4D = (X4 Hd) d (1*Nbcol) (X3 Hd); haut5D = (X3 Hd) d (1*Nbcol) (X2 Hd); haut6D = (X2 Hd) d (2*Nbcol) (X1 Hd); **Cote Gauche haut6G = ((-1*X1) Hd) d (2*Nbcol) ((-1*X2) Hd); haut5G = ((-1*X2) Hd) d (1*Nbcol) ((-1*X3) Hd); haut4G = ((-1*X3) Hd) d (1*Nbcol) ((-1*X4) Hd); haut3G = ((-1*X4) Hd) d (2*Nbcol) ((-1*X5) Hd); haut2G = ((-1*X5) Hd) d (2*Nbcol) ((-1*X6) Hd); haut1G = ((-1*X6) Hd) d (3*Nbcol) ((-1*X7) Hd); haut = hautD et haut1D et haut2D et haut3D et haut4D et haut5D et haut6D et haut6G et haut5G et haut4G et haut3G et haut2G et haut1G et hautG; sortie1 =(Xmax 0.) d (-1*(Nbsort/2)) (Xmax (Hd/2)) DINI DIsort DFIN DFsort; sortie2 =(Xmax (Hd/2)) d (-1*(Nbsort/2)) (Xmax Hd) DINI DFsort DFIN DIsort; sortie = (sortie1 et sortie2); entree1 =(Xmin Hd) d (-1*(Nbsort/2)) (Xmin (Hd/2)) DINI DIsort DFIN DFsort; entree2 =(Xmin (Hd/2)) d (-1*(Nbsort/2)) (Xmin 0.) DINI DFsort DFIN DIsort; entree = (entree1 et entree2); ORIENTER surf2; *trac surf2; opti donn 5; ** Le maillage est sans dimension ... **------------------------------- **CALCUL DE L'ERREUR ** ------------------------------ 'DEBPROC' ERR; 'ARGUMENT' rvx*'TABLE'; DD = rv.PASDETPS.'NUPASDT' ; NN = DD/5; L0 = (DD '-' (5*NN)) 'EGA' 0; 'SI' L0; UN = RV.INCO.'UN' ; UNM1 = RV.INCO.'UNM1' ; ELIX = (LOG (ELIX + 1.0E-20))/(LOG 20.) ; ELIY = (LOG (ELIY + 1.0E-20))/(LOG 20.) ; MESSAGE 'ITER ' RV.PASDETPS.'NUPASDT' ' ERREUR LINF ' ELIX ELIY RV.INCO.'IT' = (RV.INCO.'IT') ET IT ; RV.INCO.'ERY' = (RV.INCO.'ERY') ET ERY ; RV.INCO.'ERX' = (RV.INCO.'ERX') ET ERX ; 'FINSI' ; 'FINPROC' ; **------------------------------------------------ ** ** Définition des domaines **------------------------ ORIENTER surf; entree= $entree.maillage; haut = $haut.maillage ; bas = $bas.maillage ; sortie= $sortie.maillage ; ** CONSTANTES (avec Dim) **---------------------- **Hauteur du canal (m) Hc = 170e-3; **Hauteur de reference (m) H_ref = 28.e-3 ; *vitesse de reference (m/s) = Vx(85) U_ref = 2.147; * constante de Von Karman C1 = 0.4; * constante du modele k-e CNU = 0.09; * taux de turbulence INT = 0.03 ; *vitesse de frottement (aerodynamique) en m/s Uf = 0.079; Lref = (Hc/H_ref) ; ** Proprietes physiques **------------------- ** nu de l'eau (m**2/s) nu_eau = 1e-6; nu = nu_eau; ** NUT_ent/Nu alf1 = 40.; **Reynolds de l'écoulement Re = (U_ref*H_ref)/nu ; iRe = 1/Re ; ** Coordonnees **------------ ** Ordonnées de tous les points du maillage (sans dim) ** Ordonnées de tous les points de l'entree (CHPO et LISTREEL) (sans dim) ** Nombre de noeud en hauteur *list NH ; ** DISTANCE A LA PAROI (1/2 hauteur de la premiere maille) (sans dim) **----------------------------------------------- *list Yp; *opti donn 5; ** Prise en compte de Yp dans les ordonnees (y=y+yp) Yyp = Y2 + Yyp; ** CALCUL DES PROFILS D'ENTREE (un peu complique ...) **--------------------------------------------------- ** (U= a*lnYyp + b) et (K= c*Yyp + d) ** (a,b,c,d) sont obtenus a partir des profils experimentaux. ** Definition du domaine ou les profils seront imposes M_imp =entree; ** Calcul du profil symetrique Ysym = Yc -(abs(Yyp - Yc)); Yslog = log Ysym; ** Profil de vitesse (sans dim) : Calcul des coeff a et b **------------------ ** De maniere grossiere a = 0.873/( (log((85.e-3/H_ref)+YP)) - (log((1.e-3/ H_ref)+YP)) ) ; *list a; b= 2.147-( a*(log((85.e-3/H_ref)+YP)) ); *list b ; *opti donn 5; Uent = (Yslog*a)+b ; Uent = Uent /U_ref; *List Uent ; *opti donn 5; ** Transformation du chpo scalaire en ** chpo vecteur + imposition sur le domaine ** Valeurs IMPOSEES ** Valeurs INITIALES (sans dim) *opti donn 5; **ENERGIE CINETIQUE **----------------- ** Kadim = K/(U_ref**2) * ** Profil ECT : coeff c et d **------------------ c = -1.85184878e-1*H_ref; d = 1.912227164e-2; ** Fonction de l'intensite de la turbulence K2 = (INT)**2 ; ***INITIALE ***IMPOSEE ** DISSIPATION **-------------- ** Fonction de K_ini et de NUT ** K_ini est sans dim E2 = (CNU*(K_ini**2)*Re)/(alf1); ** En entree, fonction de Kent et d'une longueur caractéristique ** K_ent est sans dim ** INITIALE ** IMPOSEE *list E_imp; *opti donn 5; ** NUT INITIALE ** ------------------ ** NUTadim = NUT/(Uref*Href) ** NUadim =1/Re ** Fonction de K et E *N2=CNU*(K_ini**2)*(E_ini**-1); ** Fonction de nu ** U* INITIALES **------------- *opti donn 5; ** Module de resolution **------------------- OPTI 'SUPG' 'RNG' ZONE $surf OPER ERR ZONE $surf OPER NSKE iRe 'NUT' INCO 'UN' 'KN' 'EN' ZONE $bas OPER FPU iRe 'UET1' YP INCO 'UN' 'KN' 'EN' ZONE $haut OPER FPU iRe 'UET2' YP INCO 'UN' 'KN' 'EN' RV = EQEX RV CLIM 'UN' UIMP M_imp UX_imp CLIM 'UN' VIMP M_imp UY_imp CLIM 'KN' TIMP M_imp K_imp CLIM 'EN' TIMP M_imp E_imp ; RVP = eqpr $surf ZONE $surf OPER PRESSION ZONE $bas OPER VNIMP 0. RV.PRESSION = RVP; RV.INCO = TABLE INCO; RV.INCO.'UN' = U_ini; RV.INCO.'KN' = K_ini; RV.INCO.'EN' = E_ini; RV.INCO.'NUT' = N_ini; RV.INCO.'UET1' = UET_ini1; RV.INCO.'UET2' = UET_ini2; rv.inco.'TABFK' = TABLE 'FiltreK' ; rv.inco.'TABFE' = TABLE 'FiltreE' ; rv.inco.'TTF' = TABLE 'Temps' ; 'UN' 2 lh 'KN' lh 'EN' lh; exec RV; Fin;
© Cast3M 2003 - Tous droits réservés.
Mentions légales