TALK=T;RUN( 1, 1)
 ** LOAD(x207) from the x Input Library
     MB-FGE Test: 2D flow in the 'Arc'-like geometry.
  **************************************************************
BOOLEAN(LTURB); LTURB= T
  **************************************************************
  DISPLAY
   This case concerns plane incompressible laminar (LTURB=F)
   or turbulent (LTURB=T) flow in the 'Arc'-like domain. When
   flow is turbulent, the two-layer KE-EP turbulence model is
   used. This model employs distances to the nearest wall, so
   user can check the procedure of wall distance (varable WDIS)
   calculation for a rather complex geometry in the presence
   of MBFGE links.
 
   The computational grid uses 4 blocks, and 1 embedded fine
   grid, for a total of 5 domains. It is built in Y-Z plane.
 
   User can  use higher  order convective  schemes (MINMOD-,
   SUPER-BB-, SMART- or QUICK-scheme) by setting appropriate
   name of the scheme for solved variable.
  ----------------------------------------------------------
  ENDDIS
L(PAUSE
  **************************************************************
  PHOTON USE
   p ; ; ; ; ;
 
   msg Computational Domain:
   mgrid 1 i 1
   mgrid 2 i 1 col 2
   mgrid 3 i 1 col 3
   mgrid 4 i 1 col 4
   mgrid 5 i 1 col 5
   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
   mvec 3 i 1 sh
   mvec 4 i 1 sh
   mvec 5 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
   mcon 3 p1 i 1 fi
   0.005
   mcon 4 p1 i 1 fi
   0.005
   mcon 5 p1 i 1 fi
   0.005
   msg Press E  to exit PHOTON ...
   pause
  ENDUSE
    GROUP 1. Run title and other preliminaries
TEXT(MB-FGE: 2D Laminar Flow Inside The 'Arc'.
INTEGER(NX1,NY1,NZ1,NX2,NY2,NZ2,NX3,NY3,NZ3,NX4,NY4,NZ4,NX5,NY5,NZ5)
INTEGER(IC,KYS1I,KYN1I,KZW1O,KZE1O,KYS3O,KYN3O,KZW3I,KZE3I)
INTEGER(NARC,IFC12,IFC32,IFC43,IFC51Z,IFC51Y,NZC1,NYCA1)
REAL(PI,LXD1,LYD1,LZD1,LZD4,YCBOT,YCTOP,ZCEST1,YCTOP1,YCBOT1)
REAL(REYNU,WIN,VIN,DTHYD,TKEIN,EPSIN)
IF(LTURB) THEN
+ REYNU= 4.5E4
+ TEXT(MB-FGE: 2D Turbulent Flow Inside The 'Arc'.
ELSE
+ REYNU= 500.
+ TEXT(MB-FGE: 2D Laminar Flow Inside The 'Arc'.
ENDIF
TITLE
  ** Problem definition:
WIN  = 1.0;  VIN  = 0.0; PI   = 3.1415
NARC = 4;    IFC12= 1;   IFC32=2; IFC43= 2; IFC51Z= 2; IFC51Y= 2
KYS1I=8;     KYN1I= 12;  KZW1O=NARC*IFC12+1; KZE1O=3*NARC*IFC12
KYS3O=14;    KYN3O= 18;  KZW3I=NARC*IFC32+1; KZE3I=3*NARC*IFC32
  ** 1st domain:
LXD1 = 1.0;  LYD1= 1.0;  LZD1= 1.0;  LZD4= 0.4
NX1  = 1;    NY1 = 20;   NZ1 = 4*IFC12*NARC
NYCA1= 4;    NZC1= 8
  ** 2nd domain:
NX2  = 1;    NY2 = 20;   NZ2 = 2*NARC
  ** 3rd domain:
NX3  = 1;    NY3 = 20;   NZ3 = 4*IFC32*NARC
  ** 4th domain:
NX4  = 1;    NY4 = IFC43*(KYN3O-KYS3O+1);  NZ4= 10
  ** 5th domain:
NX5  = 1; NY5= IFC51Y*(KYN1I-KYS1I+1+2*NYCA1); NZ5= IFC51Z*NZC1
    GROUP 6. Body-fitted coordinates or grid distortion
BFC= T; GSET(D,NX1,NY1,NZ1,LXD1/NX1,LYD1/NX1,LZD1/NZ1)
  ** Define grid points and lines for the first domain:
GSET(P,P11,0.0, 0.0,0.0);  GSET(P,P12,0.0,0.0, LZD1)
GSET(P,P14,0.0,LYD1,0.0);  GSET(P,P13,0.0,LYD1,LZD1)
GSET(L,L112,P11,P12,NZ1,1.0); GSET(L,L123,P12,P13,NY1,1.0)
GSET(L,L134,P13,P14,NZ1,1.0); GSET(L,L141,P14,P11,NY1,1.0)
GSET(F,F1,P11,-,P12,-,P13,-,P14,-); GSET(M,F1,+K+J,1,1,1)
GSET(C,I:NX1+1:,F,I1,+,LXD1,0.0,0.0)
  ** Corner points for the embedded grid. **
IC = KYS1I-NYCA1;   YCBOT1 = YC(1,IC, 1)
IC = KYN1I+NYCA1+1; YCTOP1 = YC(1,IC, 1)
IC = NZC1+1;        ZCEST1 = ZC(1, 1,IC)
DUMPC(MBGR1)
  ** Define grid points and lines for the second domain:
GSET(D,NX2,NY2,NZ2,LXD1/NX2,LYD1/NY2,LZD1/NZ2)
GSET(P,P21,0.0,LYD1,LZD1/4.); GSET(P,P22,0.0,LYD1,3*LZD1/4)
GSET(P,P24,0.0,LYD1,LZD1/4.); GSET(P,P23,0.0,LYD1,3*LZD1/4)
GSET(L,L212,P21,P22,NZ2,1.0); GSET(L,L223,P22,P23,1,1.0)
GSET(L,L234,P23,P24,NZ2,1.0); GSET(L,L241,P24,P21,1,1.0)
GSET(F,F2,P21,-,P22,-,P23,-,P24,-); GSET(M,F2,+K+J,1,1,1)
GSET(C,I:NX2+1:,F,I1,+,LXD1,0.0,0.0)
GSET(C,J:NY2+1:,F,J1,RX,PI,1.0,1.5,INC,1.0)
DUMPC(MBGR2)
  ** Define grid points and lines for the third domain:
GSET(D,NX3,NY3,NZ3,LXD1/NX3,LYD1/NY3,LZD1/NZ3)
GSET(P,P31,0.0,LYD1,3*LZD1);  GSET(P,P32,0.0,LYD1,2*LZD1)
GSET(P,P34,0.0, 0.0,3*LZD1);  GSET(P,P33,0.0, 0.0,2*LZD1)
GSET(L,L312,P31,P32,NZ3,1.0); GSET(L,L323,P32,P33,NY3,1.0)
GSET(L,L334,P33,P34,NZ3,1.0); GSET(L,L341,P34,P31,NY3,1.0)
GSET(F,F3,P31,-,P32,-,P33,-,P34,-); GSET(M,F3,+K+J,1,1,1)
GSET(C,I:NX3+1:,F,I1,+,LXD1,0.0,0.0)
DUMPC(MBGR3)
  ** Define grid points and lines for the forth domain:
IC= KYN3O+1; YCBOT= YC(1,KYS3O,1); YCTOP= YC(1,IC,1)
GSET(D,NX4,NY4,NZ4,LXD1/NX4,LYD1/NY4,LZD4/NZ4)
GSET(P,P41,0.0,YCBOT,3*LZD1+LZD4); GSET(P,P42,0.0,YCBOT,3*LZD1)
GSET(P,P44,0.0,YCTOP,3*LZD1+LZD4); GSET(P,P43,0.0,YCTOP,3*LZD1)
GSET(L,L412,P41,P42,NZ4,1.0); GSET(L,L423,P42,P43,NY4,1.0)
GSET(L,L434,P43,P44,NZ4,1.0); GSET(L,L441,P44,P41,NY4,1.0)
GSET(F,F4,P41,-,P42,-,P43,-,P44,-); GSET(M,F4,+K+J,1,1,1)
GSET(C,I:NX4+1:,F,I1,+,LXD1,0.0,0.0)
DUMPC(MBGR4)
  ** Define grid points and lines for the fine grid:
GSET(D,NX5,NY5,NZ5,LXD1/NX5,LYD1/NY5,LZD1/NZ5)
GSET(P,P51,0.0,YCBOT1,0.0); GSET(P,P52,0.0,YCBOT1,ZCEST1)
GSET(P,P54,0.0,YCTOP1,0.0); GSET(P,P53,0.0,YCTOP1,ZCEST1)
GSET(L,L512,P51,P52,NZ5,1.0); GSET(L,L523,P52,P53,NY5,1.0)
GSET(L,L534,P53,P54,NZ5,1.0); GSET(L,L541,P54,P51,NY5,1.0)
GSET(F,F5,P51,-,P52,-,P53,-,P54,-); GSET(M,F5,+K+J,1,1,1)
GSET(C,I:NX5+1:,F,I1,+,LXD1,0.0,0.0)
DUMPC(MBGR5)
  ** Assemble blocks:
NUMBLK = 5; READCO(MBGR+)
GVIEW(X); VIEW
  ** Set links:
MBLINK(1,NORTH,2,SOUTH); MBLINK(2,NORTH,3,SOUTH)
MBLINK(3,LOW , 4,HIGH ); MBLINK(5,IN,1)
    GROUP 7. Variables stored, solved & named
STORE(VPOR); SOLVE(P1,V1,W1)
IF(LTURB) THEN
+ STORE(GEN1,ENUT,LEN1,WGAP); TURMOD(KEMODL-2L)
ENDIF
L($F150)
    GROUP 9. Properties of the medium (or media)
ENUL = WIN/REYNU; RHO1 = 1.0
    GROUP 11. Initialization of variable or porosity fields
INIADD= F
IF(LTURB) THEN
+ TKEIN= (0.05*WIN)**2;    EPSIN= 0.1643*TKEIN**1.5/0.09
+ FIINIT(P1)= 1.3E-4; FIINIT(KE)= TKEIN;  FIINIT(EP)= EPSIN
ENDIF
    GROUP 13. Boundary conditions and special sources
    ** Inlet.
IC = IFC51Y*NYCA1
MPATCH(5,IN,LOW,1,NX1,IC+1,NY5-IC,1,1,1,LSTEP)
 COVAL(IN, P1,FIXFLU,RHO1*WIN)
 COVAL(IN,VC1,ONLYMS,     0.0); COVAL(IN,WC1,ONLYMS,WIN)
    ** Outlet.
MPATCH(4,OUT,LOW,1,NX4,1,NY4,1,1,1,LSTEP)
 COVAL(OUT, P1,  1.E5,0.0)
 COVAL(OUT,VC1,ONLYMS,0.0); COVAL(OUT,WC1,ONLYMS,0.0)
    ** Walls:
    **** 1st domain.
MPATCH(1,LW11,LWALL,1,NX1,1,KYS1I-1,1,1,1,LSTEP)
MPATCH(1,LW12,LWALL,1,NX1,KYN1I+1,NY1,1,1,1,LSTEP)
MPATCH(1,HW12,HWALL,1,NX1,1,NY1,NZ1,NZ1,1,LSTEP)
MPATCH(1,WS11,SWALL,1,NX1,1,1,1,NZ1,1,LSTEP)
MPATCH(1,WN11,NWALL,1,NX1,NY1,NY1,1,KZW1O-1,1,LSTEP)
MPATCH(1,WN12,NWALL,1,NX1,NY1,NY1,KZE1O+1,NZ1,1,LSTEP)
    **** 2nd domain.
MPATCH(2,LW22,LWALL,1,NX2,1,NY2,1,1,1,LSTEP)
MPATCH(2,HW22,HWALL,1,NX2,1,NY2,NZ2,NZ2,1,LSTEP)
    **** 3rd domain.
MPATCH(3,LW31,LWALL,1,NX3,1,KYS3O-1,1,1,1,LSTEP)
MPATCH(3,LW32,LWALL,1,NX3,KYN3O+1,NY3,1,1,1,LSTEP)
MPATCH(3,WN31,NWALL,1,NX3,NY3,NY3,1,NZ3,1,LSTEP)
MPATCH(3,WS31,SWALL,1,NX3,1,1,1,KZW3I-1,1,LSTEP)
MPATCH(3,WS32,SWALL,1,NX3,1,1,KZE3I+1,NZ3,1,LSTEP)
MPATCH(3,HW31,HWALL,1,NX3,1,NY3,NZ3,NZ3,1,LSTEP)
    **** 4th domain.
MPATCH(4,WN41,NWALL,1,NX4,NY4,NY4,1,NZ4,1,LSTEP)
MPATCH(4,WS41,SWALL,1,NX4,1,1,1,NZ4,1,LSTEP)
    **** 5th domain.
IC = IFC51Y*NYCA1
MPATCH(5,LW51,LWALL,1,NX5,1,IC,1,1,1,LSTEP)
MPATCH(5,LW52,LWALL,1,NX5,NY5-IC+1,NY5,1,1,1,LSTEP)
IF(LTURB) THEN
+ COVAL( IN,KE,ONLYMS,TKEIN); COVAL( IN,EP,ONLYMS,EPSIN)
+ COVAL(OUT,KE,ONLYMS, SAME); COVAL(OUT,EP,ONLYMS, SAME)
+ COVAL(LW11,KE,1.0,0.0); COVAL(LW11,LTLS,1.0,0.0)
+ COVAL(LW12,KE,1.0,0.0); COVAL(LW12,LTLS,1.0,0.0)
+ COVAL(HW12,KE,1.0,0.0); COVAL(HW12,LTLS,1.0,0.0)
+ COVAL(WS11,KE,1.0,0.0); COVAL(WS11,LTLS,1.0,0.0)
+ COVAL(WN11,KE,1.0,0.0); COVAL(WN11,LTLS,1.0,0.0)
+ COVAL(WN12,KE,1.0,0.0); COVAL(WN12,LTLS,1.0,0.0)
+ COVAL(LW22,KE,1.0,0.0); COVAL(LW22,LTLS,1.0,0.0)
+ COVAL(HW22,KE,1.0,0.0); COVAL(HW22,LTLS,1.0,0.0)
+ COVAL(LW31,KE,1.0,0.0); COVAL(LW31,LTLS,1.0,0.0)
+ COVAL(LW32,KE,1.0,0.0); COVAL(LW32,LTLS,1.0,0.0)
+ COVAL(WN31,KE,1.0,0.0); COVAL(WN31,LTLS,1.0,0.0)
+ COVAL(WS31,KE,1.0,0.0); COVAL(WS31,LTLS,1.0,0.0)
+ COVAL(WS32,KE,1.0,0.0); COVAL(WS32,LTLS,1.0,0.0)
+ COVAL(HW31,KE,1.0,0.0); COVAL(HW31,LTLS,1.0,0.0)
+ COVAL(WN41,KE,1.0,0.0); COVAL(WN41,LTLS,1.0,0.0)
+ COVAL(WS41,KE,1.0,0.0); COVAL(WS41,LTLS,1.0,0.0)
+ COVAL(LW51,KE,1.0,0.0); COVAL(LW51,LTLS,1.0,0.0)
+ COVAL(LW52,KE,1.0,0.0); COVAL(LW52,LTLS,1.0,0.0)
ENDIF
COVAL(LW11,VC1, 1.0,0.0); COVAL(LW11,WC1,1.0,0.0)
COVAL(LW12,VC1, 1.0,0.0); COVAL(LW12,WC1,1.0,0.0)
COVAL(HW12,VC1, 1.0,0.0); COVAL(HW12,WC1,1.0,0.0)
COVAL(WS11,VC1, 1.0,0.0); COVAL(WS11,WC1,1.0,0.0)
COVAL(WN11,VC1, 1.0,0.0); COVAL(WN11,WC1,1.0,0.0)
COVAL(WN12,VC1, 1.0,0.0); COVAL(WN12,WC1,1.0,0.0)
COVAL(LW22,VC1, 1.0,0.0); COVAL(LW22,WC1,1.0,0.0)
COVAL(HW22,VC1, 1.0,0.0); COVAL(HW22,WC1,1.0,0.0)
COVAL(LW31,VC1, 1.0,0.0); COVAL(LW31,WC1,1.0,0.0)
COVAL(LW32,VC1, 1.0,0.0); COVAL(LW32,WC1,1.0,0.0)
COVAL(WN31,VC1, 1.0,0.0); COVAL(WN31,WC1,1.0,0.0)
COVAL(WS31,VC1, 1.0,0.0); COVAL(WS31,WC1,1.0,0.0)
COVAL(WS32,VC1, 1.0,0.0); COVAL(WS32,WC1,1.0,0.0)
COVAL(HW31,VC1, 1.0,0.0); COVAL(HW31,WC1,1.0,0.0)
COVAL(WN41,VC1, 1.0,0.0); COVAL(WN41,WC1,1.0,0.0)
COVAL(WS41,VC1, 1.0,0.0); COVAL(WS41,WC1,1.0,0.0)
COVAL(LW52,VC1, 1.0,0.0); COVAL(LW52,WC1,1.0,0.0)
COVAL(LW51,VC1, 1.0,0.0); COVAL(LW51,WC1,1.0,0.0)
    GROUP 15. Termination of sweeps
LSWEEP = 100; TSTSWP = T
    GROUP 16. Termination of iterations
SELREF = T; RESFAC = 1.E-4
    GROUP 17. Under-relaxation devices
RELAX(P1, LINRLX,0.5)
IF(LTURB) THEN
+ DTHYD= 1.0/NZ5/WIN; KELIN= 1
+ RELAX(KE,FALSDT,DTHYD); RELAX(EP,FALSDT,DTHYD)
ENDIF
    GROUP 19. Data communicated by satellite to GROUND
    * LSG3 = T, activates curvilinearity treatment;
    * LSG7 permits CCM-solver to use higher order schemes.
LSG3= BFC; LSG7= T
  SCHMBEGIN
      VARNAM UC1  SCHEME SMART
      VARNAM VC1  SCHEME SMART
  SCHMEND
    GROUP 22. Spot-value print-out
IXMON= 1; IYMON= NY1/2+1; IZMON= NZ1/2+1
 LIBREF = 207
STOP