TEXT(YX DIAGONAL SCALAR CONVECTION  :N101
TITLE
DISPLAY
Numerical Schemes validation example:
2-d x-y, Cartesian, steady, elliptic simulation
This problem concerns the pure convection of a step profile of
a scalar by a unidirectional and uniform flow field, which forms
an angle 45 degrees with the horizontal axis. Since physical
diffusion is absent, no mixing layer should form and the scalar
discontinuity should persist in the streamwise direction. The
example compares the solution for 6 different linear schemes and
9 non-linear schemes for the discretisation of convection.

--> / / / / /                     y  ^
inflow of  --> / / / / / flow at 45 deg         |
'fluid 1' --> / / / / /                        +----->
--> / / / / /                              x
^  ^  ^  ^
|  |  |  |  inflow of
'fluid 2'
ENDDIS
PHOTON USE
P;;;

msg the grid and the velocity vectors
vec z 1;gr z 1;pause;gr off;vec off;red
cl;con USOL z 1 fi;.1
msg usol: Upwind Differencing Scheme, the PHOENICS default

pause; cl
msg poorly performing schemes (omitted for case n122)
pause;cl;con qSOL z 1 fi;.1
msg qsol: QUICK Scheme

pause;cl;con vSOL z 1 fi;.1
msg vsol: Van Aldbda Scheme

pause; cl; con 3SOL z 1 fi;.1
msg 3sol: Cubic Upwind Scheme

pause;cl;con oSOL z 1 fi;.1
msg osol: Ospre Scheme

pause ;cl;con fSOL z 1 fi;.1
msg fsol: Fromm Scheme

pause;cl;con lSOL z 1 fi;.1
msg lsol: Linear upwind Scheme

pause;  cl;con CSOL z 1 fi;.1
msg csol: Cds Scheme
pause; cl
msg better-performing schemes

pause ;  cl;con SSOL z 1 fi;.1
msg ssol: Smart Scheme
pause; cl;con bSOL z 1 fi;.1
msg bsol: Superbee Scheme
pause;cl;con hSOL z 1 fi;.1
msg hsol: Hquick Scheme
pause;cl;con iSOL z 1 fi;.1
msg isol: UMIST Scheme
pause;cl;con kSOL z 1 fi;.1
msg ksol: Koren Scheme
pause;cl;con mSOL z 1 fi;.1
msg msol: Minmod Scheme
pause;cl;con nSOL z 1 fi;.1
msg nsol: Van Leer 1 Scheme
pause;cl;con zSOL z 1 fi;.1
msg zsol: Van Leer 2 Scheme
ENDUSE

User-defined variables:
FLOLX = flow rate of liquid in X direction (volume/time.area)
FLOLY = flow rate of liquid in Y direction (volume/time.area)
VALINX= value of PHI at x-axis
VALINY= value of PHI at y-axis
REAL(FLOLX,FLOLY,PECLNO);REAL(VALINX,VALINY,DTF)
FLOLX=1.0; FLOLY=1.0; VALINY=1.0; VALINX=0.0
GROUP 3,4 & 5
NX=20; NY=20
l(unigrid

GROUP 7. Variables stored, solved & named
** linear schemes assigned to scalars
USOL = Upwind        CSOL = cds           QSOL = quick
LSOL = linear upwind 3SOL = cubic upwind  FSOL = fromm's scheme
** non-linear schemes assigned to scalars
SSOL = SMART             KSOL = KOREN       MSOL = MINMOD
VSOL = VAN ALDBDA        BSOL = SUPERBEE    HSOL = HQUICK
NSOL = VAN LEER 1 (NOLL) ZSOL = VAN LEER 2 (ZHU)
OSOL = OSPRE             ISOL = UMIST
SOLVE(3SOL,BSOL,CSOL,FSOL,HSOL,ISOL,KSOL,LSOL,MSOL,NSOL,OSOL,QSOL)
SOLVE(SSOL,USOL,VSOL,ZSOL)
STORE(P1,U1,V1) ! P1 needed so Editor thinks Pressue/velocity is ON

GROUP 8. Terms (in differential equations) & devices
INTEGER(NPH1)
NPH1=NPHI-15
DO II= NPH1,NPHI
TERMS(:II:,P,P,N,P,P,P)
ENDDO
** Select numerical schemes for convection
SCHEME(QUICK,QSOL) ;SCHEME(CDS,CSOL);   SCHEME(LUS,LSOL)
SCHEME(CUS,3SOL)   ;SCHEME(FROMM,FSOL); SCHEME(SMART,SSOL)
SCHEME(KOREN,KSOL) ;SCHEME(MINMOD,MSOL);SCHEME(VANALB,VSOL)
SCHEME(SUPBEE,BSOL);SCHEME(HQUICK,HSOL);SCHEME(VANL1,NSOL)
SCHEME(VANL2,ZSOL); SCHEME(OSPRE,OSOL); SCHEME(UMIST,ISOL)

GROUP 11. Initialization of variable or porosity fields
FIINIT(U1)=FLOLX  ; FIINIT(V1)=FLOLY
GROUP 13. Boundary conditions and special sources
Patches for entry of liquid
PATCH(INL1,WEST ,1,1,1,NY,1,NZ,1,LSTEP)
PATCH(INL2,SOUTH,1,NX,1,1,1,NZ,1,LSTEP)
DO II=NPH1,NPHI
COVAL(INL1,:II:,FLOLX,VALINY);COVAL(INL2,:II:,FLOLY,VALINX)
ENDDO
GROUP 15. Termination of sweeps
LSWEEP=100
GROUP 17. Under-relaxation devices
DTF=0.1*XULAST/FLOLX
RELAX(SSOL,FALSDT,DTF);RELAX(KSOL,FALSDT,DTF)
GROUP 20. Preliminary print-out
GROUP 21. Print-out of variables
OUTPUT(U1,N,N,N,N,N,N);OUTPUT(V1,N,N,N,N,N,N)
GROUP 22. Spot-value print-out
IXMON=NX/2;IYMON=NY/2;IZMON=1;NPLT=10;TSTSWP=-1
GROUP 24. Dumps for restarts

SPEDAT(LONGNAME,USOL,C,Upwind)
SPEDAT(LONGNAME,CSOL,C,Cds)
SPEDAT(LONGNAME,QSOL,C,Quick)
SPEDAT(LONGNAME,LSOL,C,Linear_upwind)
SPEDAT(LONGNAME,3SOL,C,Cubic_upwind)
SPEDAT(LONGNAME,FSOL,C,Fromm's_scheme)
SPEDAT(LONGNAME,SSOL,C,Smart)
SPEDAT(LONGNAME,KSOL,C,Koren)
SPEDAT(LONGNAME,MSOL,C,Minmod)
SPEDAT(LONGNAME,VSOL,C,Van_Aldbda)
SPEDAT(LONGNAME,BSOL,C,Superbee)
SPEDAT(LONGNAME,HSOL,C,Hquick)
SPEDAT(LONGNAME,NSOL,C,Van_Leer_1_(Noll))
SPEDAT(LONGNAME,ZSOL,C,Van_Leer_2_(Zhu))
SPEDAT(LONGNAME,OSOL,C,Ospre)
SPEDAT(LONGNAME,ISOL,C,UMIST)