** MB-FGE Test: 2D 'cyclone'-like geometry. ************************************************************** DISPLAY This case concerns incompressible laminar/turbulent flow through 'cyclone'-like geometry. To calculate turbulent flow the two layer K-E model is used. 3 Blocks are used. The main block comprises XCYCLE-like link to itself. This Q1 file includes Photon Use information. --------------------------------------------------------- ENDDIS L(PAUSE ************************************************************** BOOLEAN(LTURB); LTURB= F ************************************************************** PHOTON USE p ; ; ; ; ; msg Computational Domain: mgrid 1 k 1 col 2 mgrid 2 k 1 col 3 mgrid 3 k 1 col 4 msg Press Any Key to Continue... pause cl set vec av off msg Velocity Vectors: mgrid 1 out k 1 mgrid 2 out k 1 mgrid 3 out k 1 mvec 1 k 1 sh mvec 2 k 1 sh mvec 3 k 1 sh msg Press Any Key to Continue... pause cl msg Contours of Pressure: mgrid 1 out k 1 mgrid 2 out k 1 mgrid 3 out k 1 mcon 1 p1 k 1 fi 0.01 mcon 2 p1 k 1 fi 0.01 mcon 3 p1 k 1 fi 0.01 msg Press Any Key to Continue... msg Press Eto exit PHOTON ... pause ENDUSE ************************************************************** GROUP 1. Run title and other preliminaries REAL(REYNO,UIN,REXT,RINT,PI,DEL,DTHYD,TKEIN,EPSIN) REAL(XB1,YB1,XB2,YB2,XB3,YB3,XARC,YARC,TETC) INTEGER(NX11,NX12,NX13,NX14,NX15,NX16,NX17,NX1,NY1,NZ1) INTEGER(NX2,NY2,NZ2,NX3,NY3,NZ3,IBFCX,IC,JC,IC1,JC1) IF(LTURB) THEN + REYNO= 4.5E4; UIN = 10.0 + TEXT(MB-FGE: Turbulent flow through 'cyclone'. ELSE + REYNO= 100.0; UIN = 10.0 + TEXT(MB-FGE: Laminar flow through 'cyclone'. ENDIF TITLE PI = 3.14159 ** Problem definition: REXT = 1.0; RINT= 0.5; DEL = 0.5; TETC = 3.*PI/20. NX11 = 4; NX12= 6; NX13= 6; NX14 = 12; NX15= 6 NX16 = 6; NX17= 4; NX1 = NX11+NX12+NX13+NX14+NX15+NX16+NX17 NY1 = 10; NZ1 = 1; JC = NY1/2;IBFCX= 1 NX2 = IBFCX*NX12; NY2 = 8; NZ2 = 1 NX3 = IBFCX*NX16; NY3 = 8; NZ3 = 1 GROUP 6. Body-fitted coordinates or grid distortion ** Create grid for the 1st domain: BFC= T; GSET(D,NX1,NY1,NZ1) GSET(P,P1,-REXT,REXT,0.0); GSET(P,P2,-REXT, 0.0,0.0) GSET(P,S4,-RINT,REXT,0.0); GSET(P,S3,-RINT, 0.0,0.0) GSET(P,P3, 0.0, 0.0,0.0); GSET(P,P4, 0.0,REXT,0.0) GSET(L,L12,P1,P2,NX11,1.0); GSET(L,L23,P2,S3,NY1-JC, 1.3) GSET(L,LS3,S3,P3, JC,1.0); GSET(L,L34,P3,P4, NX11, 1.0) GSET(L,L4S,P4,S4, JC,1.0); GSET(L,L41,S4,P1,NY1-JC,-1.3) GSET(F,F1,P1,-,P2,S3,P3,-,P4,S4); GSET(M,F1,+I+J,1,1,1) GSET(C,I:NX11+1:,F,I1,RZ,PI/5.,0.0,REXT,INC,1.0); GSET(I) IC= NX11+1; IC1= IC+NX12; JC1= NY1-JC+1 GSET(C,I:IC1:,F,I:IC:,JC1,NY1,1,1,RZ,TETC,0.0,REXT,INC,1.0) XB1= XC( IC, 1,1); YB1= YC( IC, 1,1) XB2= XC( IC,JC1,1); YB2= YC( IC,JC1,1) XB3= XC(IC1,JC1,1); YB3= YC(IC1,JC1,1) IC1= IC+NX12/2; XARC= XC(IC1,JC1,1); YARC= YC(IC1,JC1,1) GSET(P,P5,XB1, YB1,0.0); GSET(P,P6,XB1,0.0,0.0) GSET(P,P7,XB3, YB3,0.0); GSET(P,P8,XB2,YB2,0.0) GSET(L,L56,P5,P6,NX12,1.0); GSET(L,L67,P6,P7,NY1-JC, 1.3) GSET(L,L78,P7,P8,NX12,1.0,ARC,XARC,YARC,0.0) GSET(L,L85,P8,P5,NY1-JC,-1.3); GSET(F,F2,P5,-,P6,-,P7,-,P8,-) GSET(M,F2,+I+J,NX11+1,1,1,LAP15) IC= IC+NX12; IC1= IC+NX13 GSET(C,I:IC1:,F,I:IC:,JC1,NY1,1,1,RZ,TETC,0.0,REXT,INC,1.0) XB2= XC(IC1,JC1,1); YB2= YC(IC1,JC1,1) IC1= IC+NX13/2; XARC= XC(IC1,JC1,1); YARC= YC(IC1,JC1,1) GSET(P,P9,0.0,0.0,0.0); GSET(P,P10,XB2,YB2,0.0) GSET(P,S7,XB3,YB3,0.0) GSET(L,L69,P6,P9,NX13,1.0); GSET(L,L910,P9,P10,NY1-JC, 1.3) GSET(L,L107,P10,S7,NX12,1.0,ARC,XARC,YARC,0.0) GSET(L,L76,S7,P6,NY1-JC,-1.3); GSET(F,F3,P6,-,P9,-,P10,-,S7,-) GSET(M,F3,+I+J,NX11+NX12+1,1,1,LAP15) IC= NX11+NX12+NX13+1; IC1= IC+NX14 GSET(C,I:IC1:,F,I:IC:,RZ,PI,0.0,REXT,INC,1.0) IC= IC1; IC1= IC+NX15; GSET(I) GSET(C,I:IC1:,F,I:IC:,JC1,NY1,1,1,RZ,TETC,0.0,REXT,INC,1.0) XB2= XC( IC,JC1,1); YB2= YC( IC,JC1,1) XB3= XC(IC1,JC1,1); YB3= YC(IC1,JC1,1) IC1= IC+NX15/2; XARC= XC(IC1,JC1,1); YARC= YC(IC1,JC1,1) GSET(P,P1,0.0,2.*REXT,0.0); GSET(P,P2,XB1,2.*REXT,0.0) GSET(P,P3,XB3, YB3,0.0); GSET(P,P4,XB2, YB2,0.0) GSET(L,L12,P1,P2,NX15,1.0); GSET(L,L23,P2,P3,NY1-JC, 1.3) GSET(L,L34,P3,P4,NX15,1.0,ARC,XARC,YARC,0.0) GSET(L,L41,P4,P1,NY1-JC,-1.3); GSET(F,F4,P1,-,P2,-,P3,-,P4,-) GSET(M,F4,+I+J,NX11+NX12+NX13+NX14+1,1,1,LAP15) IC= IC+NX15; IC1= IC+NX16 GSET(C,I:IC1:,F,I:IC:,JC1,NY1,1,1,RZ,TETC,0.0,REXT,INC,1.0) XB2= XC(IC1,JC1,1); YB2= YC(IC1,JC1,1) IC1= IC+NX16/2; XARC= XC(IC1,JC1,1); YARC= YC(IC1,JC1,1) GSET(P,P5,XB1,2.*REXT-YB1,0.0); GSET(P,P6,XB2,YB2,0.0) GSET(P,P7,XB3, YB3,0.0) GSET(L,L25,P2,P5,NX16,1.0); GSET(L,L56,P5,P6,NY1-JC, 1.3) GSET(L,L67,P6,P7,NX15,1.0,ARC,XARC,YARC,0.0) GSET(L,L72,P7,P2,NY1-JC,-1.3); GSET(F,F5,P2,-,P5,-,P6,-,P7,-) GSET(M,F5,+I+J,NX11+NX12+NX13+NX14+NX15+1,1,1,LAP15) IC= NX11+NX12+NX13+NX14+NX15+NX16+1 GSET(C,I:NX17+IC:,F,I:IC:,RZ,PI/5.,0.0,REXT,INC,1.0) GSET(C,K:NZ1+1:,F,K1,1,NX1,1,NY1,+,0.0,0.0,0.1,INC,1.0) DUMPC(MBGR1) ** Create grid for the 2nd domain: GSET(D,NX2,NY2,NZ2,REXT,DEL,REXT) GSET(P,P1,-(DEL+REXT),YB1,0.0);GSET(P,P2,-(DEL+REXT),0.0,0.0) GSET(P,P3, XB1,0.0,0.0);GSET(P,P4, XB1,YB1,0.0) GSET(L,L12,P1,P2,NX2,1.0); GSET(L,L23,P2,P3,NY2,-1.3) GSET(L,L34,P3,P4,NX2,1.0); GSET(L,L41,P4,P1,NY2, 1.3) GSET(F,F1,P1,-,P2,-,P3,-,P4,-); GSET(M,F1,+I+J,1,1,1) GSET(C,K:NZ2+1:,F,K1,1,NX2,1,NY2,+,0.0,0.0,0.1,INC,1.0) DUMPC(MBGR2) ** Create grid for the 3nd domain: GSET(D,NX3,NY3,NZ3,REXT,DEL,REXT) GSET(P,P1,-(DEL+REXT), 2.*REXT,0.0) GSET(P,P2,-(DEL+REXT),2.*REXT-YB1,0.0) GSET(P,P3, XB1,2.*REXT-YB1,0.0) GSET(P,P4, XB1, 2*REXT,0.0) GSET(L,L12,P1,P2,NX2,1.0); GSET(L,L23,P2,P3,NY2,-1.3) GSET(L,L34,P3,P4,NX2,1.0); GSET(L,L41,P4,P1,NY2, 1.3) GSET(F,F1,P1,-,P2,-,P3,-,P4,-); GSET(M,F1,+I+J,1,1,1) GSET(C,K:NZ2+1:,F,K1,1,NX2,1,NY2,+,0.0,0.0,0.1,INC,1.0) DUMPC(MBGR3) ** Assemble blocks: NUMBLK= 3; READCO(MBGR+L); GVIEW(Z); VIEW ** Set links: ** To set up LINKS you can use MBLINK or MPATCH commands instead of READCO(...+L). MBLINK(1,WEST,1,EAST) MPATCH(1,MBL1.2,SOUTH ,NX11+1,NX11+NX12, 1, 1,1,NZ1,1,LSTEP) MPATCH(2,MBL2.1,NORTH , 1, NX2,NY2,NY2,1,NZ2,1,LSTEP) IC= NX11+NX12+NX13+NX14+NX15 MPATCH(1,MBL1.3,SOUTH , IC+1, IC+NX16, 1, 1,1,NZ1,1,LSTEP) MPATCH(3,MBL3.1,NORTH , 1, NX3,NY3,NY3,1,NZ3,1,LSTEP) GROUP 7. Variables stored, solved & named STORE(VPOR); SOLVE(P1,U1,V1) IF(LTURB) THEN + STORE(ENUT,LEN1); TURMOD(KEMODL-2L) ENDIF L($F150) GROUP 9. Properties of the medium (or media) ENUL = UIN*REXT/REYNO; RHO1 = 1.189 GROUP 11. Initialization of variable or porosity fields INIADD= F IF(LTURB) THEN + TKEIN= (0.05*UIN)**2; EPSIN= 0.1643*TKEIN**1.5/0.09/DEL + FIINIT(P1)= 1.3E-4; FIINIT(KE)= TKEIN; FIINIT(EP)= EPSIN ENDIF GROUP 13. Boundary conditions and special sources ** Inlet: MPATCH(3,INL,SOUTH,1,NX3,1,1,1,NZ3,1,LSTEP) COVAL(INL, P1,FIXFLU,RHO1*UIN) COVAL(INL,UC1,ONLYMS,0.0); COVAL(INL,VC1,ONLYMS,UIN) ** Walls: MPATCH(1,WS1,SWALL,1,NX11,1,1,1,NZ1,1,LSTEP) IC= NX11+NX12+NX13+NX14+NX15 MPATCH(1,WS2,SWALL,NX11+NX12+1,IC,1,1,1,NZ1,1,LSTEP) IC= IC+NX16 MPATCH(1,WS3,SWALL,IC+1,NX1,1,1,1,NZ1,1,LSTEP) MPATCH(2,WW2,WWALL,1,1,1,NY2,1,NZ2,1,LSTEP) MPATCH(2,WE2,EWALL,NX2,NX2,1,NY2,1,NZ2,1,LSTEP) MPATCH(3,WW3,WWALL,1,1,1,NY3,1,NZ3,1,LSTEP) MPATCH(3,WE3,EWALL,NX3,NX3,1,NY3,1,NZ3,1,LSTEP) ** Outlet: MPATCH(2,OUT,SOUTH,1,NX2,1,1,1,NZ2,1,LSTEP) COVAL(OUT, P1,1000.0,0.0) COVAL(OUT,UC1,ONLYMS,0.0); COVAL(OUT,VC1,ONLYMS,0.0) IF(LTURB) THEN + COVAL(INL,KE,ONLYMS,TKEIN); COVAL(INL,EP,ONLYMS,EPSIN) + COVAL(OUT,KE,ONLYMS, SAME); COVAL(OUT,EP,ONLYMS, SAME) + COVAL(WS1,KE,1.0,0.0); COVAL(WS1,LTLS,1.0,0.0) + COVAL(WS2,KE,1.0,0.0); COVAL(WS2,LTLS,1.0,0.0) + COVAL(WS3,KE,1.0,0.0); COVAL(WS3,LTLS,1.0,0.0) + COVAL(WW2,KE,1.0,0.0); COVAL(WW2,LTLS,1.0,0.0) + COVAL(WE2,KE,1.0,0.0); COVAL(WE2,LTLS,1.0,0.0) + COVAL(WW3,KE,1.0,0.0); COVAL(WW3,LTLS,1.0,0.0) + COVAL(WE3,KE,1.0,0.0); COVAL(WE3,LTLS,1.0,0.0) + COVAL(WS1,UC1,LOGLAW,0.0); COVAL(WS1,VC1,LOGLAW,0.0) + COVAL(WS2,UC1,LOGLAW,0.0); COVAL(WS2,VC1,LOGLAW,0.0) + COVAL(WS3,UC1,LOGLAW,0.0); COVAL(WS3,VC1,LOGLAW,0.0) + COVAL(WW2,UC1,LOGLAW,0.0); COVAL(WW2,VC1,LOGLAW,0.0) + COVAL(WE2,UC1,LOGLAW,0.0); COVAL(WE2,VC1,LOGLAW,0.0) + COVAL(WW3,UC1,LOGLAW,0.0); COVAL(WW3,VC1,LOGLAW,0.0) + COVAL(WE3,UC1,LOGLAW,0.0); COVAL(WE3,VC1,LOGLAW,0.0) ELSE + COVAL(WS1,UC1,1.0,0.0); COVAL(WS1,VC1,1.0,0.0) + COVAL(WS2,UC1,1.0,0.0); COVAL(WS2,VC1,1.0,0.0) + COVAL(WS3,UC1,1.0,0.0); COVAL(WS3,VC1,1.0,0.0) + COVAL(WW2,UC1,1.0,0.0); COVAL(WW2,VC1,1.0,0.0) + COVAL(WE2,UC1,1.0,0.0); COVAL(WE2,VC1,1.0,0.0) + COVAL(WW3,UC1,1.0,0.0); COVAL(WW3,VC1,1.0,0.0) + COVAL(WE3,UC1,1.0,0.0); COVAL(WE3,VC1,1.0,0.0) ENDIF GROUP 15. Termination of sweeps LSWEEP = 700; TSTSWP = -1 GROUP 16. Termination of iterations SELREF = T; RESFAC = 1.E-3 GROUP 17. Under-relaxation devices DTHYD= 10.*REXT/NY/UIN; RELAX(P1,LINRLX,0.25) RELAX(UC1,FALSDT,DTHYD); RELAX(VC1,FALSDT,DTHYD) IF(LTURB) THEN + KELIN= 1 + RELAX(KE,FALSDT,DTHYD); RELAX(EP,FALSDT,DTHYD) ENDIF GROUP 19. Data communicated by satellite to GROUND * LSG3 = T, activates curvilinearity treatment; * LSG4 = T, activates nonorthogonality treatment. LSG3= T; LSG4= T GROUP 22. Spot-value print-out IXMON = NX1/2+1; IYMON = NY1/2+1; IZMON = 1