** MB-FGE Test: Laminar/Turbulent swirling flow in a pipe with linear expansion. ************************************************************** DISPLAY ---------------------------------------------------------- This case concerns axisymmetric incompressible laminar (or turbulent LTURB= T) flow in the pipe with linear expansion. The flow exhibits recirculation in the region on the pipe axis. That kind of flows is common for gas burners. The problem is set in Y-Z plane; the swirling velocity component UC1 is solved as scalar using special treatment (LSG6= T). User can model the same problem as 3D (NX>1), however the speed of convergence, provided the problem is truly axisymmetric, is rather slow. --------------------------------------------------------- ENDDIS L(PAUSE ************************************************************** BOOLEAN(LUNIF,LTURB); LTURB= F; LUNIF= LTURB INTEGER(IFC); IFC= 1 ************************************************************** PHOTON USE p ; ; ; ; ; msg Computational Domain: mgrid 1 i 1 mgrid 2 i 1 col 4 msg Press Any Key to Continue... pause cl set vec av off msg Velocity Vectors: mvec 1 i 1 sh mvec 2 i 1 sh msg Press Any Key to Continue... pause cl msg Contours of Pressure: mcon 1 p1 i 1 fi 0.005 mcon 2 p1 i 1 fi 0.005 msg Press Any Key to Continue... pause cl msg Contours of Swirling Velocity: mcon 1 uc1 i 1 fi 0.005 mcon 2 uc1 i 1 fi 0.005 msg Press Eto exit PHOTON ... pause ENDUSE ************************************************************** INTEGER(NX1,NY1,NZ1,NZ11,NZ12,NZ13,NX2,NY2,NZ2) REAL(REYNO,WIN,HCH1,LST1,LST2,HCH2,LCHAN,WCR,DTHYD,DXX,UIN,UCR) REAL(KEIN,EPIN,HCHN) GROUP 1. Run title and other preliminaries ** Problem definition: IF(LTURB) THEN + WIN= 1.0; UIN= 1.0*WIN; LCHAN= 10.; NZ13= 24 + TEXT(MBFGE: Swirling flow; Lin-expan. (K-E). ELSE + WIN= 1.0; UIN= 1.75*WIN; LCHAN= 5.0; NZ13= 12 + TEXT(MBFGE: Swirling flow; Lin-expan. (Re=200). ENDIF HCH2= 0.5; HCH1= 0.2; LST1= 0.2; LST2= 0.8; DXX= 0.025 HCHN= 0.6; NZ11= 4; NZ12= 10; NZ1 = NZ11+NZ12+NZ13 NY1 = 12; NX1 = 1; NX2 = NX1; NY2 = 5; NZ2= IFC*NZ13 GROUP 6. Body-fitted coordinates or grid distortion BFC = T; GSET(D,NX1,NY1,NZ1,DXX,HCH2,LCHAN) ** Create first domain: GSET(P,P1,0.0,0.0 ,0.0 ); GSET(P,P2,0.0,0.0 ,LST1 ) GSET(P,P3,0.0,0.0 ,LST1+LST2); GSET(P,P4,0.0,0.0 ,LCHAN ) GSET(P,P5,0.0,HCH2,LCHAN ); GSET(P,P6,0.0,HCH2,LST1+LST2) GSET(P,P7,0.0,HCH1,LST1 ); GSET(P,P8,0.0,HCH1,0.0 ) GSET(L,L12,P1,P2,NZ11, 1.0); GSET(L,L23,P2,P3,NZ12, 1.3) GSET(L,L34,P3,P4,NZ13, 1.4); GSET(L,L45,P4,P5,NY1, 1.0) GSET(L,L56,P5,P6,NZ13,-1.4); GSET(L,L67,P6,P7,NZ12,-1.3) GSET(L,L78,P7,P8,NZ11, 1.0); GSET(L,L81,P8,P1,NY1, 1.0) GSET(F,F1,P1,P2.P3,P4,-,P5,P6.P7,P8,-); GSET(M,F1,+K+J,1,1,1) GSET(C,I:NX1+1:,F,I1,RZ,-DXX*NX1,0.0,0.0,INC,1.0) DUMPC(MBGR1) ** Create second domain: GSET(D,NX2,NY2,NZ2,DXX,HCHN,LCHAN) GSET(P,P1,0.0,HCH2,LST1+LST2); GSET(P,P2,0.0,HCH2, LCHAN) GSET(P,P3,0.0,HCHN, LCHAN); GSET(P,P4,0.0,HCHN,LST1+LST2) GSET(L,L12,P1,P2,NZ2, 1.4); GSET(L,L23,P2,P3,NY2, 1.0) GSET(L,L34,P3,P4,NZ2,-1.4); GSET(L,L41,P4,P1,NY2, 1.0) GSET(F,F2,P1,-,P2,-,P3,-,P4,-); GSET(M,F2,+K+J,1,1,1) GSET(C,I:NX2+1:,F,I1,RZ,-DXX*NX2,0.0,0.0,INC,1.0) DUMPC(MBGR2) ** Assemble blocks: NUMBLK = 2; READCO(MBGR+YL) ** To set up LINKS you can use MBLINK or MPATCH commands instead of READCO(...+YL). MBLINK(1,NORTH,2,SOUTH) GROUP 7. Variables stored, solved & named STORE(VPOR); SOLVE(P1,V1,W1); SOLUTN(P1,Y,Y,Y,N,N,N) NAME(C1)= UC1; NAME(C2)= VC1; NAME(C3)= WC1 SOLVE(UC1,VC1,WC1); SOLUTN(UC1,Y,Y,Y,P,P,P) SOLUTN(VC1,Y,Y,Y,P,P,P); SOLUTN(WC1,Y,Y,Y,P,P,P) IF(NX.GT.1) THEN + XCYCLE= T; SOLVE(U1) + TERMS(UC1,N,Y,Y,P,P,P); TERMS(U1,N,N,N,N,P,N) ENDIF IF(LTURB) THEN + TURMOD(KEMODL) + SOLUTN(KE,Y,Y,Y,P,P,P); SOLUTN(EP,Y,Y,Y,P,P,P) + KEIN= (0.05*WIN)**2; EPIN= 0.1643*KEIN**1.5/(0.09*HCH1) + ENUL= 1.544E-5; FIINIT(KE)= KEIN; FIINIT(EP)= EPIN ELSE + REYNO= 200.0; ENUL= WIN*HCH1/REYNO ENDIF GROUP 8. Terms (in differential equations) & devices TERMS(WC1,N,Y,Y,P,P,P); TERMS(VC1,N,Y,Y,P,P,P) TERMS(W1, N,N,N,N,P,N); TERMS(V1, N,N,N,N,P,N) GROUP 9. Properties of the medium (or media) RHO1= 1.189 GROUP 11. Initialization of variable or porosity fields INIADD= F; FIINIT(WC1)= WIN GROUP 13. Boundary conditions and special sources ** Inlet. DO II = 1,NY1 +IF(LUNIF) THEN + WCR = WIN +ELSE + WCR = WIN*(1.0-((2*II-1)/NY1/2)**2) +ENDIF + UCR = UIN*(2*II-1)/NY1/2 + MPATCH(1,INL:II:,LOW,1,NX1,II,II,1,1,1,LSTEP) + COVAL(INL:II:,P1,FIXFLU,WCR*RHO1) + COVAL(INL:II:,UC1,ONLYMS,UCR); COVAL(INL:II:,VC1,ONLYMS,0.0) + COVAL(INL:II:,WC1,ONLYMS,WCR) +IF(LTURB) THEN + COVAL(INL:II:,KE,ONLYMS,KEIN); COVAL(INL:II:,EP,ONLYMS,EPIN) +ENDIF ENDDO ** Walls. MPATCH(1,WN1,NWALL,1,NX1,NY1,NY1,1,NZ11+NZ12,1,LSTEP) MPATCH(2,WL2,LWALL,1,NX2, 1,NY2,1, 1,1,LSTEP) MPATCH(2,WN2,NWALL,1,NX2,NY2,NY2,1, NZ2,1,LSTEP) ** Outlet. MPATCH(1,OUT1,HIGH,1,NX1,1,NY1,NZ1,NZ1,1,LSTEP) MPATCH(2,OUT2,HIGH,1,NX2,1,NY2,NZ2,NZ2,1,LSTEP) COVAL(OUT1, P1, 1.E5, 0.0); COVAL(OUT2, P1, 1.E5, 0.0) COVAL(OUT1,UC1,ONLYMS, 0.0); COVAL(OUT2,UC1,ONLYMS, 0.0) COVAL(OUT1,VC1,ONLYMS,SAME); COVAL(OUT2,VC1,ONLYMS,SAME) COVAL(OUT1,WC1,ONLYMS,SAME); COVAL(OUT2,WC1,ONLYMS,SAME) IF(LTURB) THEN + COVAL( WN1,KE, LOGLAW,LOGLAW); COVAL( WN1,EP, LOGLAW,LOGLAW) + COVAL( WL2,KE, LOGLAW,LOGLAW); COVAL( WL2,EP, LOGLAW,LOGLAW) + COVAL( WN2,KE, LOGLAW,LOGLAW); COVAL( WN2,EP, LOGLAW,LOGLAW) + COVAL(OUT1,KE,ONLYMS, SAME); COVAL(OUT1,EP,ONLYMS, SAME) + COVAL(OUT2,KE,ONLYMS, SAME); COVAL(OUT2,EP,ONLYMS, SAME) + COVAL(WN1,UC1,LOGLAW,0.0); COVAL(WN1,VC1,LOGLAW,0.0) + COVAL(WN1,WC1,LOGLAW,0.0) + COVAL(WL2,UC1,LOGLAW,0.0); COVAL(WL2,VC1,LOGLAW,0.0) + COVAL(WL2,WC1,LOGLAW,0.0) + COVAL(WN2,UC1,LOGLAW,0.0); COVAL(WN2,VC1,LOGLAW,0.0) + COVAL(WN2,WC1,LOGLAW,0.0) ELSE + COVAL(WN1,UC1,1.0,0.0); COVAL(WN1,VC1,1.0,0.0) + COVAL(WN1,WC1,1.0,0.0) + COVAL(WL2,UC1,1.0,0.0); COVAL(WL2,VC1,1.0,0.0) + COVAL(WL2,WC1,1.0,0.0) + COVAL(WN2,UC1,1.0,0.0); COVAL(WN2,VC1,1.0,0.0) + COVAL(WN2,WC1,1.0,0.0) ENDIF GROUP 15. Termination of sweeps LSWEEP = 500; TSTSWP = -1 GROUP 16. Termination of iterations SELREF = T; RESFAC = 1.E-3 GROUP 17. Under-relaxation devices RELAX(P1,LINRLX,0.5); DTHYD = LCHAN/NZ/WIN RELAX(UC1,FALSDT,DTHYD); RELAX(VC1,FALSDT,DTHYD) RELAX(WC1,FALSDT,DTHYD); VARMIN(UC1)= 0.0 IF(LTURB) THEN + LSWEEP= 1000; KELIN= 1; YPLS= T + RELAX(KE,FALSDT,DTHYD); RELAX(EP,FALSDT,DTHYD) ENDIF GROUP 19. Data communicated by satellite to GROUND CSG3= LCRU; LSG4= T; LSG6= T GROUP 22. Spot-value print-out IXMON= 1; IYMON= NY/2+1; IZMON= NZ/2+1