Test: Laminar flow in a 2D-duct with gradual expansion. ******************************************************* DISPLAY The problem considered is that defined by the International Association for Hydraulic Research Working Group on Refined Modelling of Flows for their 5th meeting. The report of the workshop is presented as a paper entitled 'Laminar flow in a complex geometry: a comparison', Int. j. numer. methods fluids, vol.5, 667-683(1985). The main features of the problem are: * laminar flow, Re=10.0 ( and 100.0); * the north and south boundaries of the channel are given by the following analytical expression : y(z) = +/- [tanh(2-30*z/Re)-tanh(2)]/2 for 0 < z< Re/3 * a parabolic profile for the axial velocity is specified at the inlet, w=3*(y-y*y/2) for z=0 and -1 < y < 1, v=0. ENDDIS PHOTON USE p ; ; ; ; ; msg Computational Domain: gr k 1 pause cl set vec av off msg Velocity Vectors: vec k 1 sh msg Press Any Key to Continue... pause cl msg Contours of UCRT-component: con ucrt k 1 fi;0.01 msg Press Any Key to Continue... pause cl msg Contours of p1 con p1 k 1 fi;0.01 msg Press Eto exit PHOTON ... ENDUSE BOOLEAN(LUNIF); LUNIF= F ************************************************************** GROUP 1. Run title and other preliminaries INTEGER(NY1,NY2) REAL(REYNO,UIN,LX,LY,DX,DY,DX1,DX2) REAL(TAN2,XCUR,YCUR,UCR,TARG,YWL) ** Problem definition: MESG(Select Reynolds Number: MESG( A - Re = 10 MESG( B - Re = 100 MESG(Enter choice (A - Re=10) READVDU(ANS,CHAR,A) REYNO=10 IF(:ANS:.EQ.2) THEN REYNO=100 ENDIF UIN= 1.0 NY1 = 32; NY2= NY1; NX = 32; NY = NY1+NY2 LX = REYNO/3.0; DX = LX/NX; DX1 = DX*0.3; DX2= DX*2 XCUR = LX ; TAN2= TANH(2.0); TARG=-8.0 LY = 1.0-(TANH(TARG)-TAN2)/2.0 GROUP 6. Body-fitted coordinates or grid distortion BFC= T; GSET(D,NX,NY,NZ,LX,LY,1.0) NONORT=T GSET(P,P1, 0.0,-1.0,0.0); GSET(P,P2, 0.0,1.0,0.0) GSET(P,P3, DX1,-1.0,0.0); GSET(P,P4, DX1,1.0,0.0) GSET(P,P5,LX-DX2, -LY,0.0); GSET(P,P6,LX-DX2, LY,0.0) GSET(P,P7, LX, -LY,0.0); GSET(P,P8, LX, LY,0.0) GSET(V,YWT,S,P4,SPLINE) DO II =1,5 + XCUR= (LX/2-DX1)/5*II + DX1; TARG= 2.0-10.*XCUR/LX + YCUR= 1.0-(TANH(TARG)-TAN2)/2.0 + GSET(V,XCUR,YCUR,0.0) ENDDO GSET(V,YWT,E,P6,1.0,0.0,0.0,0.0) GSET(L,LWT,P4,P6,NX-2,1.2CRVYWT) GSET(V,YWB,S,P3,SPLINE) DO II =1,5 + XCUR= (LX/2-DX)/5*II + DX1; TARG= 2.0-10.*XCUR/LX + YCUR= -(1.0-(TANH(TARG)-TAN2)/2.0) + GSET(V,XCUR,YCUR,0.) ENDDO GSET(V,YWB,E,P5,1.0,0.0,0.0,0.0) GSET(L,LWB,P3,P5,NX-2,1.2CRVYWB) GSET(L,L12,P1,P2,NY); GSET(L,L24,P2,P4, 1) GSET(L,L43,P4,P3,NY); GSET(L,L31,P3,P1, 1) GSET(L,L65,P6,P5,NY); GSET(L,L87,P8,P7,NY) GSET(L,L66,P6,P8, 1); GSET(L,L75,P7,P5, 1) GSET(F,F1,P1,-,P2,-,P4,-,P3,-); GSET(M,F1,+J+I, 1,1,1) GSET(F,F2,P3,-,P4,-,P6,-,P5,-); GSET(M,F2,+J+I, 2,1,1,LAP1) GSET(F,F3,P5,-,P6,-,P8,-,P7,-); GSET(M,F3,+J+I,NX,1,1) GSET(C,K:NZ+1:,F,K1,1,NX,1,NY,+,0.0,0.0,1.0,INC,1.0) MESG(Show grid? (N/y) READVDU(ANS,CHAR,N) IF(:ANS:.EQ.Y) THEN VIEW(K,1) ENDIF GROUP 7. Variables stored, solved & named SOLVE(P1,U1,V1) GROUP 9. Properties of the medium (or media) ENUL = 1./REYNO GROUP 11. Initialization of variable or porosity fields INIADD=F FIINIT(U1) = UIN; FIINIT(V1) = 1.E-3 GROUP 12. Unused GROUP 13. Boundary conditions and special sources DO II=1,NY + YCUR=-1+(2*II-1)/NY + IF(LUNIF) THEN + UCR =UIN + ELSE + UCR =3./2.*(1.0-YCUR**2) + ENDIF + INLET(BFCINL:II:,WEST,1,1,II,II,1,NZ,1,LSTEP) + VALUE(BFCINL:II:,P1,GRND1) + VALUE(BFCINL:II:,U1,GRND1) + VALUE(BFCINL:II:,V1,GRND1) + VALUE(BFCINL:II:,UCRT,UCR) ENDDO BFCA=RHO1 ** Walls. PATCH(WN,NWALL,1,NX,NY,NY,1,NZ,1,LSTEP) PATCH(WS,SWALL,1,NX, 1, 1,1,NZ,1,LSTEP) COVAL(WN, U1,1.0,0.0); COVAL(WS, U1,1.0,0.0) ** Outlet. PATCH(OUT,EAST,NX,NX,1,NY,1,NZ,1,LSTEP) COVAL(OUT,P1,1000.0,0.0) COVAL(OUT, U1,ONLYMS,0.0); COVAL(OUT, V1,ONLYMS,0.0) GROUP 15. Termination of sweeps LSWEEP = 200; TSTSWP = -1 GROUP 16. Termination of iterations SELREF = T; RESFAC = 1.E-3 GROUP 19. Data communicated by satellite to GROUND MESG(Use GCV solver? (Y/n) READVDU(ANS,CHAR,Y) GCV=:ANS:.EQ.Y IF(GCV) THEN LSG9=T; LSG8=T TEXT(IAHR Smooth Channel, GCV, Re = :REYNO: ELSE SYMBFC=T RELAX(P1,LINRLX,0.6) RELAX(U1,FALSDT,0.5); RELAX(V1,FALSDT,0.5) LSWEEP=400 TEXT(IAHR Smooth Channel, Re = :REYNO: ENDIF TITLE GROUP 22. Spot-value print-out IXMON= NX/2+1; IYMON= NY/2+1; IZMON= 1 GROUP 24. Dumps for restarts