TALK=T;RUN( 1, 1)
 ** LOAD(350) from the PHOENICS Input Library
        Laminar/Turbulent flow in a box with 'thin-plate'.
                 'Thin-plate' can be porous.
  **************************************************************
CHAR(AN1); AN1=T
BOOLEAN(LTURB);  LTURB= T
INTEGER(IDIR);   IDIR = 2
MESG(Select Turbulent (T) or Laminar (L) model (default=T):
READVDU(AN1,CHAR,T)
IF(:AN1:.EQ.L) THEN
+LTURB=F
ENDIF
MESG(Select direction of thin plate:
MESG(X-direction  -  1
MESG(Y-direction  -  2 (default)
MESG(Z-direction  -  3
READVDU(IDIR,INT,2)
  **************************************************************
  PHOTON USE
   p ; ; ; ; ;
 
   msg Computational Domain:
   gr k 1
   msg Press Any Key to Continue...
   pause
   cl
   set vec av off
   msg Velocity Vectors:
   vec k 1 sh
   msg Press Any Key to Continue...
   pause
   cl
   msg Contours of Pressure:
   con p1 k 1 fi;0.005
   msg Press Any Key to Continue...
   pause
   cl
   msg Contours of Temperature:
   con tem1 k 1 fi;0.005
   msg Press E  to exit PHOTON ...
  ENDUSE
  **************************************************************
    GROUP 1. Run title and other preliminaries
REAL(LEN,DIAM,UIN,REYNU,TKEIN,EPSIN,DTF)
  ** Problem definition:
DIAM= 0.3;  LEN= 3.*DIAM;
IF(LTURB) THEN
+ REYNU= 1.E4;  UIN = 10.0;
+ TKEIN= 0.25*UIN*UIN*0.018;  EPSIN= TKEIN**1.5/DIAM
+ TEXT(Porous Plate (K-E)
ELSE
+ REYNU= 100.0;  UIN = 1.0; ENUL= UIN*DIAM/REYNU
+ TEXT(Porous Plate (Laminar)
ENDIF
TITLE
    *** IDIR=1 'thin-plate' is in X-direction
IF(IDIR.EQ.1) THEN
+ NX= 15;  NY= 15;  NZ= 1;  DTF= 10.*DIAM/UIN/NX
+ GRDPWR(X,NX,DIAM,1.0); GRDPWR(Y,NY,LEN,1.0)
+ SOLVE(P1,U1,V1,TEM1)
ENDIF
    *** IDIR=2 'thin-plate' is in Y-direction
IF(IDIR.EQ.2) THEN
+ NX= 15;  NY= 15;  NZ= 1;  DTF= 10.*DIAM/UIN/NY
+ GRDPWR(X,NX,LEN,1.0); GRDPWR(Y,NY,DIAM,1.0)
+ SOLVE(P1,U1,V1,TEM1)
ENDIF
    *** IDIR=3 'thin-plate' is in Z-direction
IF(IDIR.EQ.3) THEN
+ NX= 1;  NY= 15;  NZ= 15;  DTF= 10.*DIAM/UIN/NZ
+ GRDPWR(Y,NY,LEN,1.0); GRDPWR(Z,NZ,DIAM,1.0)
+ SOLVE(P1,V1,W1,TEM1)
+ SOLUTN(P1,Y,Y,Y,P,P,P); SOLUTN(TEM1,Y,Y,Y,P,P,P)
ENDIF
STORE(DEN1,PRPS);  WALLCO= 1.0
DISWAL ; STORE(WGAP,TWAL)
IF(LTURB) THEN
+ EGWF= T; TURMOD(KECHEN); KELIN= 3; STORE(ENUT,GENK)
+ WALLCO= GRND2;  FIINIT(KE)= TKEIN;  FIINIT(EP)= EPSIN
+ WALPRN= T;  LSWEEP= 200
+ STORE(YPLS,SKIN,STAN)
ELSE
+ LSWEEP= 100
ENDIF
    GROUP 8. Terms & Devices
TERMS(TEM1,N,Y,Y,P,P,P)
    GROUP 11. Initialization of variable or porosity fields
INIADD= F;  FIINIT(PRPS)= 0.0;  FIINIT(TEM1)= 10.0
    GROUP 13. Boundary conditions and special sources
IF(IDIR.EQ.1) THEN
+ PATCH( IN,WEST, 1, 1,   1, 3,1,NZ,1,LSTEP)
+ COVAL( IN,U1,ONLYMS,UIN); COVAL(IN,V1,ONLYMS,0.0)
+ PATCH(OUT,EAST,NX,NX,NY-2,NY,1,NZ,1,LSTEP)
+ PATCH(PLT*1,EWALL,7,7,1,10,1,NZ,1,LSTEP)
+ COVAL(PLT*1 ,V1 , GRND2 ,0. )
+ PATCH(PLT_1,WWALL,8,8,1,10,1,NZ,1,LSTEP)
+ COVAL(PLT_1 ,V1 , GRND2 ,0. )
+ PATCH(PPD*1,FREEE,7,7,1,10,1,NZ,1,LSTEP)
+ COVAL(PPD*1 ,U1 , 100.0 ,0. )
+ PATCH(W1,WWALL, 1, 1, 4,  NY,1,NZ,1,LSTEP)
+ PATCH(W2,EWALL,NX,NX, 1,NY-3,1,NZ,1,LSTEP)
+ PATCH(W4,SWALL, 1,NX, 1,   1,1,NZ,1,LSTEP)
+ PATCH(W3,NWALL, 1,NX,NY,  NY,1,NZ,1,LSTEP)
+ COVAL(W1,V1,WALLCO,0.0); COVAL(W2,V1,WALLCO,0.0)
+ COVAL(W4,U1,WALLCO,0.0); COVAL(W3,U1,WALLCO,0.0)
ENDIF
IF(IDIR.EQ.2) THEN
+ PATCH( IN,SOUTH,   1, 3, 1, 1,1,NZ,1,LSTEP)
+ COVAL( IN,U1,ONLYMS,0.0); COVAL(IN,V1,ONLYMS,UIN)
+ PATCH(OUT,NORTH,NX-2,NX,NY,NY,1,NZ,1,LSTEP)
+ PATCH(PLT*1,NWALL,1,10,7,7,1,NZ,1,LSTEP)
+ COVAL(PLT*1 ,U1 , GRND2 ,0. )
+ PATCH(PLT_1,SWALL,1,10,8,8,1,NZ,1,LSTEP)
+ COVAL(PLT_1 ,U1 , GRND2 ,0. )
+ PATCH(PPD*1,FREEN,1,10,7,7,1,NZ,1,LSTEP)
+ COVAL(PPD*1 ,V1 , 100.0 ,0. )
+ PATCH(W1,WWALL,1,1,1,NY,1,NZ,1,LSTEP)
+ PATCH(W2,EWALL,NX,NX,1,NY,1,NZ,1,LSTEP)
+ PATCH(W4,SWALL,4,NX,1,1,1,NZ,1,LSTEP)
+ PATCH(W3,NWALL,1,NX-3,NY,NY,1,NZ,1,LSTEP)
+ COVAL(W1,V1,WALLCO,0.0); COVAL(W2,V1,WALLCO,0.0)
+ COVAL(W4,U1,WALLCO,0.0); COVAL(W3,U1,WALLCO,0.0)
ENDIF
IF(IDIR.EQ.3) THEN
+ PATCH( IN,LOW,1,NX,1,3,1,1,1,LSTEP)
+ COVAL( IN,V1,ONLYMS,0.0); COVAL(IN,W1,ONLYMS,UIN)
+ PATCH(OUT,HIGH,1,NX,NY-2,NY,NZ,NZ,1,LSTEP)
+ PATCH(PLT*1,HWALL,1,NX,1,10,7,7,1,LSTEP)
+ COVAL(PLT*1 ,V1 , GRND2 ,0. )
+ PATCH(PLT_1,LWALL,1,NX,1,10,8,8,1,LSTEP)
+ COVAL(PLT*1 ,V1 , GRND2 ,0. )
+ PATCH(PPD*1,FREEH,1,NX,1,10,7,7,1,LSTEP)
+ COVAL(PPD*1 ,W1 , 100.0 ,0. )
+ PATCH(W1,LWALL,1,NX, 4,  NY, 1, 1,1,LSTEP)
+ PATCH(W2,HWALL,1,NX, 1,NY-3,NZ,NZ,1,LSTEP)
+ PATCH(W4,SWALL,1,NX, 1,   1, 1,NZ,1,LSTEP)
+ PATCH(W3,NWALL,1,NX,NY,  NY, 1,NZ,1,LSTEP)
+ COVAL(W1,V1,WALLCO,0.0); COVAL(W2,V1,WALLCO,0.0)
+ COVAL(W4,W1,WALLCO,0.0); COVAL(W3,W1,WALLCO,0.0)
ENDIF

    ** Inlet:
COVAL(IN,P1,FIXFLU,1.189*UIN); COVAL(IN,TEM1,ONLYMS,90.)
    ** Outlet:
COVAL(OUT,P1,FIXP,0.0)
IF(LTURB) THEN
+ COVAL( IN,KE,ONLYMS,TKEIN); COVAL( IN,EP,ONLYMS,EPSIN)
+ COVAL(OUT,KE,ONLYMS, SAME); COVAL(OUT,EP,ONLYMS, SAME)
ENDIF
    ** PLATE-patch:
COVAL(PLT*1,PRPS,101.,0.001)
IF(LTURB) THEN
+ COVAL(PLT*1 ,KE , GRND2 , GRND2 )
+ COVAL(PLT*1 ,EP , GRND2 , GRND2 )
+ COVAL(PLT_1 ,KE , GRND2 , GRND2 )
+ COVAL(PLT_1 ,EP , GRND2 , GRND2 )
ENDIF
COVAL(PLT*1 ,TEM1,0. ,0. )
COVAL(PLT_1 ,TEM1,0. ,0. )
  
  set material index to 101
SPEDAT(SET,MATERIAL,101,L,T)
SPEDAT(SET,POROSITY,PLT*1,R,0.01)
SPEDAT(SET,PDROP_LAW,PLT*1,R,100.0)
    ** Walls:
COVAL(W1,TEM1,WALLCO,20.0); COVAL(W2,TEM1,WALLCO,20.0)
COVAL(W3,TEM1,WALLCO,20.0); COVAL(W4,TEM1,WALLCO,20.0)
IF(LTURB) THEN
+ COVAL(W1,KE,WALLCO,GRND2); COVAL(W1,EP,WALLCO,GRND2)
+ COVAL(W2,KE,WALLCO,GRND2); COVAL(W2,EP,WALLCO,GRND2)
+ COVAL(W3,KE,WALLCO,GRND2); COVAL(W3,EP,WALLCO,GRND2)
+ COVAL(W4,KE,WALLCO,GRND2); COVAL(W4,EP,WALLCO,GRND2)
ENDIF
    GROUP 15. Termination of sweeps
TSTSWP= -1
    GROUP 17. Under-relaxation devices
RELAX(U1,FALSDT,DTF); RELAX(V1,FALSDT,DTF); RELAX(W1,FALSDT,DTF)
RELAX(TEM1,LINRLX,0.5)
IF(LTURB) THEN
+ RELAX(KE,LINRLX,0.5); RELAX(EP,LINRLX,0.5)
ENDIF
    GROUP 22. Spot-value print-out
IXMON= NX/2+1; IYMON= NY/2+1; IZMON= NZ/2+1
 LIBREF = 350
  
DISTIL=T SPEDAT(SET,SELREF,RESFC,R,1E-6) RESFAC=1E-6 STOP