** Plane channel with distorted grid.
  DISPLAY
 
    The Q1 presents a test case for viscous flow through
    a highly distorted mesh, with or without a body force
    representing a porous medium.
 
    It allows the behaviour of the GCV, CCM and standard
    staggered solvers to be compared.
 
    In all cases, the vector field should show completely
    uniform flow.
 
    If the body force is not included, the pressure should
    be uniform and zero, as there are no wall boundaries.
 
    If they are included, there should be a uniform pressure
    gradient in the X direction.
 
  ENDDIS
MESG(Select equation formulation:
MESG(    G - GCV (default)
MESG(    S - Standard staggered formulation
MESG(    M - CCM Colocated formulation
MESG(    V - CCV Colocated formulation
MESG(
MESG(Enter letter for choice
READVDU(ANS,CHAR,G)
REAL(DTF)
CASE :ANS: OF
WHEN S,1
 SYMBFC=T; ANS='Staggered'
 DTF=0.0001
WHEN M,1
 CCM=T  ; ANS=CCM; DTF=0.0001
WHEN V,1
 CCV=T  ; ANS=CCV; DTF=0.0001
 MESG(To get the correct vectors in PHOTON, issue the
 MESG(command:
 MESG(SET VEC COMP UC1 VC1 -
 MESG(before drawing the vectors.
ORELSE
 GCV=T;LSG9=T; ANS=GCV; DTF=1E4
ENDCASE
  PHOTON USE
   p ; ; ; ; ;
 
   msg Computational Domain:
   gr k 1
   pause
   cl
   msg Velocity Vectors:
   vec k 1 sh
   msg Press Any Key to Continue...
   pause
   cl
   msg Contours of p1
   con p1 k 1 fi;0.0001
   msg Press E  to exit PHOTON ...
  ENDUSE
REAL(ANGL,DELX,DNX)
REAL(X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,X17,X18)
REAL(Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9,Y10,Y11,Y12,Y13,Y14,Y15,Y16,Y17,Y18)
REAL(XLEN1,XLEN2,XLEN3,YLEN1,YLEN2)
INTEGER(NX1,NX2,NX3,NY1,NY2)
MESG(Enter skew angle in range 0 - 70 (70)
READVDU(ANGL,REAL,70)
IF(:ANS:.EQ.CCM.AND.ANGL.GT.50) THEN
MESG(WARNING: CCM wil not converge for angles much above 50
ENDIF
TEXT(XY Duct, :ANS: Solver, Skew angle :ANGL:
TITLE
ANGL = ANGL*3.14159/180.0
XLEN1=0.2;XLEN2=0.2;XLEN3=0.8;YLEN1=0.1;YLEN2=0.1
  note: NX3 > 2 !
  ---------------
NX1=2;NX2=2;NX3=6;NY1=5;NY2=NY1
DNX = XLEN3 / NX3; DELX = YLEN1 * TAN(ANGL)
X1=0.;X4=X1;X6=X1
X2=XLEN1;X3=X2;X5=X2
X7=XLEN1+XLEN3;X10=X7;X12=X7
X8=XLEN1+XLEN3+XLEN2;X9=X8;X11=X8
X13=XLEN1+DNX;X17=X13
X14=XLEN1+XLEN3-DNX-DELX;X18=X14
X15=XLEN1+DNX+DELX
X16=XLEN1+XLEN3-DNX
Y1=0.;Y2=Y1;Y7=Y1;Y8=Y1;Y13=Y1;Y14=Y1
Y4=YLEN1;Y3=Y4;Y10=Y4;Y9=Y4;Y15=Y4;Y16=Y4
Y6=YLEN1+YLEN2;Y5=Y6;Y12=Y6;Y11=Y6;Y17=Y6;Y18=Y6
 
NX = NX1+NX2+NX3; NY = NY1+NY2 ; NZ = 1
BFC= T; GSET(D,NX,NY,NZ,X8,Y6,1.0)
 
GSET(P,P1 ,X1 ,Y1 ,0.0)
GSET(P,P2 ,X2 ,Y2 ,0.0)
GSET(P,P3 ,X3 ,Y3 ,0.0)
GSET(P,P4 ,X4 ,Y4 ,0.0)
GSET(P,P5 ,X5 ,Y5 ,0.0)
GSET(P,P6 ,X6 ,Y6 ,0.0)
GSET(P,P7 ,X7 ,Y7 ,0.0)
GSET(P,P8 ,X8 ,Y8 ,0.0)
GSET(P,P9 ,X9 ,Y9 ,0.0)
GSET(P,P10,X10,Y10,0.0)
GSET(P,P11,X11,Y11,0.0)
GSET(P,P12,X12,Y12,0.0)
GSET(P,P13,X13,Y13,0.0)
GSET(P,P14,X14,Y14,0.0)
GSET(P,P15,X15,Y15,0.0)
GSET(P,P16,X16,Y16,0.0)
GSET(P,P17,X17,Y17,0.0)
GSET(P,P18,X18,Y18,0.0)
GSET(L,L12 ,P1 ,P2 ,NX1,1.0)
GSET(L,L43 ,P4 ,P3 ,NX1,1.0)
GSET(L,L65 ,P6 ,P5 ,NX1,1.0)
GSET(L,L78 ,P7 ,P8 ,NX2,1.0)
GSET(L,L109,P10,P9 ,NX2,1.0)
GSET(L,L121,P12,P11,NX2,1.0)
GSET(L,L213,P2 ,P13,  1,1.0)
GSET(L,L134,P13,P14,NX3-2,1.0)
GSET(L,L147,P14,P7 ,  1,1.0)
GSET(L,L315,P3 ,P15,  1,1.0)
GSET(L,L156,P15,P16,NX3-2,1.0)
GSET(L,L160,P16,P10,  1,1.0)
GSET(L,L517,P5 ,P17,  1,1.0)
GSET(L,L178,P17,P18,NX3-2,1.0)
GSET(L,L182,P18,P12,  1,1.0)
GSET(L,L14 ,P1 ,P4 ,NY1,1.0)
GSET(L,L23 ,P2 ,P3 ,NY1,1.0)
GSET(L,L710,P7 ,P10,NY1,1.0)
GSET(L,L89 ,P8 ,P9 ,NY1,1.0)
GSET(L,L46 ,P4 ,P6 ,NY2,1.0)
GSET(L,L35 ,P3 ,P5 ,NY2,1.0)
GSET(L,L102,P10,P12,NY2,1.0)
GSET(L,L911,P9 ,P11,NY2,1.0)
GSET(L,L135,P13,P15,NY1,1.0)
GSET(L,L146,P14,P16,NY1,1.0)
GSET(L,L157,P15,P17,NY2,1.0)
GSET(L,L168,P16,P18,NY2,1.0)
GSET(F,F1,P1 ,-,P2 ,-,P3 ,-,P4 ,-); GSET(M,F1,+I+J,        1,1,1)
GSET(F,F2,P7 ,-,P8 ,-,P9 ,-,P10,-); GSET(M,F2,+I+J,NX1+NX3+1,1,1)
GSET(F,F3,P4 ,-,P3 ,-,P5 ,-,P6 ,-); GSET(M,F3,+I+J,    1,NY1+1,1)
GSET(F,F4,P10,-,P9 ,-,P11,-,P12,-);GSET(M,F4,+I+J,NX1+NX3+1,NY1+1,1)
GSET(F,F5,P2 ,-,P13,-,P15,-,P3 ,-); GSET(M,F5,+I+J,    NX1+1,1,1)
GSET(F,F6,P13,-,P14,-,P16,-,P15,-); GSET(M,F6,+I+J,    NX1+2,1,1)
GSET(F,F7,P14,-,P7 ,-,P10,-,P16,-); GSET(M,F7,+I+J,NX1+NX3,1,1)
GSET(F,F8,P3 ,-,P15,-,P17,-,P5 ,-); GSET(M,F8,+I+J,NX1+1,NY1+1,1)
GSET(F,F9,P15,-,P16,-,P18,-,P17,-); GSET(M,F9,+I+J,NX1+2,NY1+1,1)
GSET(F,F10,P16,-,P10,-,P12,-,P18,-);GSET(M,F10,+I+J,NX1+NX3,NY1+1,1)
GSET(C,K:NZ+1:,F,K1,1,NX,1,NY,+,0.0,0.0,1.0)
REAL(SCA); SCA = 1.
INTEGER(IYIN1); IYIN1=2
DIFCUT=0.0; ENUL=1.0; RHO1=1.
SOLVE(P1,U1,V1)
FIINIT(U1) =0.0; FIINIT(V1)  = 0.0; FIINIT(P1) =0.0
PATCH(INL1,WEST,1,1,      1,IYIN1,1,1,1,1)
PATCH(INL2,WEST,1,1,IYIN1+1,NY   ,1,1,1,1)
COVAL(INL1,P1,FIXFLU,1.0    )
COVAL(INL2,P1,FIXFLU,1.0*SCA)
PATCH(OULET,EAST,NX,NX,1,NY,1,1,1,1)
COVAL(OULET,P1, 1.0E8 ,0.0)
NONORT=T
COVAL(INL1,U1,ONLYMS,1.0    )
COVAL(INL2,U1,ONLYMS,1.0*SCA)
MESG(Introduce Porous Medium? (N/y)
READVDU(ANS,CHAR,N)
IF(:ANS:.EQ.Y) THEN
  Porous Medium Test
+ PATCH(RES,PHASEM,1,NX,1,NY,1,1,1,1)
+ COVAL(RES,U1,1.E4,0.0)
+ COVAL(RES,V1,1.E4,0.0)
+ IF(GCV) THEN
+   LSG9=F
+ ENDIF
ENDIF
SELREF = T; RESFAC =1.0E-8
ECHO=T;IXMON=NX-1;IYMON=NY/2
NXPRIN=1;  NYPRIN=1
TSTSWP=-1; LSWEEP=1000
NXPRIN= 1; NYPRIN=1
IF(.NOT.GCV) THEN
RELAX(P1,LINRLX,0.1)
ENDIF
RELAX(U1,FALSDT,DTF);RELAX(V1,FALSDT,DTF)
MESG(Show the grid? (N/y)
READVDU(ANS,CHAR,N)
IF(:ANS:.EQ.Y) THEN
GCLEAR;GVIEW(Z);GGRID(Z,1,1,NX+1,1,NY+1,3,0); GDRAW
ENDIF