TALK=T;RUN(1,1)
  PHOTON USE
  p;;;;;

  msg             Numerical solution  contours
  con c1 z 1 fi;0.1
  msg  Press Enter to continue
  pause;clear;con errr z 1 fi;0.1
  msg               Error contours. Press e to END
  ENDUSE
  DISPLAY
    A two-dimensional transient diffusion problem with time-dependen
    boundary conditions and space-dependent initial fields is used a
    an illustration of how PLANT statements can be used to:-

    * set initial fields;
    * set boundary conditions and other sources;
    * make comparisons with exact solutions.

    The analytical solution is: C1 = X + Y + T ,
    where X and Y are cartesian coordinates and T is time.

    The C1 computed by PHOENICS, the exact solution (EXAC) and the
    difference between them (ERRR) are all printed out.

    The GROUND coding which the PLANT statements generate is
    appended to the Q1 file.

    This case enables the influences on accuracy to be investigated
    of numerical settings such as LITER(C1), RESFAC, ISOLX, ISOLY &
    CSG3. The latter, when set = CNGR, activates the conjugate-
    gradient solver.
  ENDDIS
   PLANTBEGIN
solve(errr);store(exac)
  PLANT.. Following commands set the initial field as.. C1 = X + Y
PATCH(INIT,INIVAL,1,NX,1,NY,1,NZ,1,1)
   VAL=XG2D+YG2D
INIT(INIT,C1,0.0,GRND)
   VAL=XG2D+YG2D+TLAST
INIT(INIT,EXAC,0.0,GRND)

    GROUP 13. Boundary conditions and special sources
  PLANT.. Following commands set the west values as.. C1 = T + Y
PATCH(WEST,WWALL,1,1,1,NY,1,NZ,1,LSTEP)
   VAL=TIM+YG2D
COVAL(WEST,C1,1.,GRND)

  PLANT.. Following commands set the east values as.. C1 = T + 1 + Y
PATCH(EAST,EWALL,NX,NX,1,NY,1,NZ,1,LSTEP)
   VAL=TIM+1.0+YG2D
COVAL(EAST,C1,1.,GRND)

  PLANT.. Following commands set south values as.. C1 = T + X
PATCH(SOUTH,SWALL,1,NX,1,1,1,NZ,1,LSTEP)
   VAL=TIM+XG2D
COVAL(SOUTH,C1,1.,GRND)

  PLANT.. Following commands set north values as.. C1 = T + 1 + X
PATCH(NORTH,NWALL,1,NX,NY,NY,1,NZ,1,LSTEP)
   VAL=TIM+1.0+XG2D
COVAL(NORTH,C1,1.,GRND)

  PLANT.. Following commands set field values of EXAC as.. T + 1 + Y
PATCH(ERROR,CELL,1,NX,1,NY,1,NZ,1,LSTEP)
   VAL=TIM+XG2D+YG2D-C1
COVAL(ERROR,ERRR,FIXVAL,GRND)
   PLANTEND
 ************************************************************
  Group 1. Run Title and Number
 ************************************************************
 ************************************************************
 
 TEXT( 2D UNSTEADY DIFFUSION PROBLEM:Z104     )
 
 ************************************************************
 ************************************************************
 
 IRUNN = 1 ;LIBREF = 104
 ************************************************************
  Group 2. Time dependence
 STEADY = F
    * Set overall time and no. of steps
 TFIRST =0. ;TLAST =1.
 FSTEP = 1 ;LSTEP = 5
 TFRAC(1)=0.2 ;TFRAC(2)=0.4
 TFRAC(3)=0.6 ;TFRAC(4)=0.8
 TFRAC(5)=1.
 ************************************************************
  Group 3. X-Direction Grid Spacing
 CARTES = T
 NX = 100
 XULAST =1.
 XFRAC(1)=1.0E-02 ;XFRAC(2)=0.02
 XFRAC(3)=0.03 ;XFRAC(4)=0.04
 XFRAC(5)=0.05 ;XFRAC(6)=0.06
 XFRAC(7)=0.07 ;XFRAC(8)=0.08
 XFRAC(9)=0.09 ;XFRAC(10)=0.1
 XFRAC(11)=0.11 ;XFRAC(12)=0.12
 XFRAC(13)=0.13 ;XFRAC(14)=0.14
 XFRAC(15)=0.15 ;XFRAC(16)=0.16
 XFRAC(17)=0.17 ;XFRAC(18)=0.18
 XFRAC(19)=0.19 ;XFRAC(20)=0.2
 XFRAC(21)=0.21 ;XFRAC(22)=0.22
 XFRAC(23)=0.23 ;XFRAC(24)=0.24
 XFRAC(25)=0.25 ;XFRAC(26)=0.26
 XFRAC(27)=0.27 ;XFRAC(28)=0.28
 XFRAC(29)=0.29 ;XFRAC(30)=0.3
 XFRAC(31)=0.31 ;XFRAC(32)=0.32
 XFRAC(33)=0.33 ;XFRAC(34)=0.34
 XFRAC(35)=0.35 ;XFRAC(36)=0.36
 XFRAC(37)=0.37 ;XFRAC(38)=0.38
 XFRAC(39)=0.39 ;XFRAC(40)=0.4
 XFRAC(41)=0.41 ;XFRAC(42)=0.42
 XFRAC(43)=0.43 ;XFRAC(44)=0.44
 XFRAC(45)=0.45 ;XFRAC(46)=0.46
 XFRAC(47)=0.47 ;XFRAC(48)=0.48
 XFRAC(49)=0.49 ;XFRAC(50)=0.5
 XFRAC(51)=0.51 ;XFRAC(52)=0.52
 XFRAC(53)=0.53 ;XFRAC(54)=0.54
 XFRAC(55)=0.55 ;XFRAC(56)=0.56
 XFRAC(57)=0.57 ;XFRAC(58)=0.58
 XFRAC(59)=0.59 ;XFRAC(60)=0.6
 XFRAC(61)=0.61 ;XFRAC(62)=0.62
 XFRAC(63)=0.63 ;XFRAC(64)=0.64
 XFRAC(65)=0.65 ;XFRAC(66)=0.66
 XFRAC(67)=0.67 ;XFRAC(68)=0.68
 XFRAC(69)=0.69 ;XFRAC(70)=0.7
 XFRAC(71)=0.71 ;XFRAC(72)=0.72
 XFRAC(73)=0.73 ;XFRAC(74)=0.74
 XFRAC(75)=0.75 ;XFRAC(76)=0.76
 XFRAC(77)=0.77 ;XFRAC(78)=0.78
 XFRAC(79)=0.79 ;XFRAC(80)=0.8
 XFRAC(81)=0.81 ;XFRAC(82)=0.82
 XFRAC(83)=0.83 ;XFRAC(84)=0.84
 XFRAC(85)=0.85 ;XFRAC(86)=0.86
 XFRAC(87)=0.87 ;XFRAC(88)=0.88
 XFRAC(89)=0.89 ;XFRAC(90)=0.9
 XFRAC(91)=0.91 ;XFRAC(92)=0.92
 XFRAC(93)=0.93 ;XFRAC(94)=0.94
 XFRAC(95)=0.95 ;XFRAC(96)=0.96
 XFRAC(97)=0.97 ;XFRAC(98)=0.98
 XFRAC(99)=0.99 ;XFRAC(100)=1.
 ************************************************************
  Group 4. Y-Direction Grid Spacing
 NY = 100
 YVLAST =1.
 YFRAC(1)=1.0E-02 ;YFRAC(2)=0.02
 YFRAC(3)=0.03 ;YFRAC(4)=0.04
 YFRAC(5)=0.05 ;YFRAC(6)=0.06
 YFRAC(7)=0.07 ;YFRAC(8)=0.08
 YFRAC(9)=0.09 ;YFRAC(10)=0.1
 YFRAC(11)=0.11 ;YFRAC(12)=0.12
 YFRAC(13)=0.13 ;YFRAC(14)=0.14
 YFRAC(15)=0.15 ;YFRAC(16)=0.16
 YFRAC(17)=0.17 ;YFRAC(18)=0.18
 YFRAC(19)=0.19 ;YFRAC(20)=0.2
 YFRAC(21)=0.21 ;YFRAC(22)=0.22
 YFRAC(23)=0.23 ;YFRAC(24)=0.24
 YFRAC(25)=0.25 ;YFRAC(26)=0.26
 YFRAC(27)=0.27 ;YFRAC(28)=0.28
 YFRAC(29)=0.29 ;YFRAC(30)=0.3
 YFRAC(31)=0.31 ;YFRAC(32)=0.32
 YFRAC(33)=0.33 ;YFRAC(34)=0.34
 YFRAC(35)=0.35 ;YFRAC(36)=0.36
 YFRAC(37)=0.37 ;YFRAC(38)=0.38
 YFRAC(39)=0.39 ;YFRAC(40)=0.4
 YFRAC(41)=0.41 ;YFRAC(42)=0.42
 YFRAC(43)=0.43 ;YFRAC(44)=0.44
 YFRAC(45)=0.45 ;YFRAC(46)=0.46
 YFRAC(47)=0.47 ;YFRAC(48)=0.48
 YFRAC(49)=0.49 ;YFRAC(50)=0.5
 YFRAC(51)=0.51 ;YFRAC(52)=0.52
 YFRAC(53)=0.53 ;YFRAC(54)=0.54
 YFRAC(55)=0.55 ;YFRAC(56)=0.56
 YFRAC(57)=0.57 ;YFRAC(58)=0.58
 YFRAC(59)=0.59 ;YFRAC(60)=0.6
 YFRAC(61)=0.61 ;YFRAC(62)=0.62
 YFRAC(63)=0.63 ;YFRAC(64)=0.64
 YFRAC(65)=0.65 ;YFRAC(66)=0.66
 YFRAC(67)=0.67 ;YFRAC(68)=0.68
 YFRAC(69)=0.69 ;YFRAC(70)=0.7
 YFRAC(71)=0.71 ;YFRAC(72)=0.72
 YFRAC(73)=0.73 ;YFRAC(74)=0.74
 YFRAC(75)=0.75 ;YFRAC(76)=0.76
 YFRAC(77)=0.77 ;YFRAC(78)=0.78
 YFRAC(79)=0.79 ;YFRAC(80)=0.8
 YFRAC(81)=0.81 ;YFRAC(82)=0.82
 YFRAC(83)=0.83 ;YFRAC(84)=0.84
 YFRAC(85)=0.85 ;YFRAC(86)=0.86
 YFRAC(87)=0.87 ;YFRAC(88)=0.88
 YFRAC(89)=0.89 ;YFRAC(90)=0.9
 YFRAC(91)=0.91 ;YFRAC(92)=0.92
 YFRAC(93)=0.93 ;YFRAC(94)=0.94
 YFRAC(95)=0.95 ;YFRAC(96)=0.96
 YFRAC(97)=0.97 ;YFRAC(98)=0.98
 YFRAC(99)=0.99 ;YFRAC(100)=1.
 ************************************************************
  Group 5. Z-Direction Grid Spacing
 PARAB = F
 NZ = 1
 ZWLAST =1.
 ZFRAC(1)=1.
 ************************************************************
  Group 6. Body-Fitted Coordinates
 ************************************************************
  Group 7. Variables: STOREd,SOLVEd,NAMEd
 ONEPHS = T
 NAME(16)=C1 ;NAME(149)=EXAC
 NAME(150)=ERRR
    * Y in SOLUTN argument list denotes:
    * 1-stored 2-solved 3-whole-field
    * 4-point-by-point 5-explicit 6-harmonic averaging 
 SOLUTN(C1,Y,Y,N,N,N,Y)
 SOLUTN(EXAC,Y,N,N,N,N,Y)
 SOLUTN(ERRR,Y,Y,N,N,N,Y)
 ************************************************************
  Group 8. Terms & Devices
    * Y in TERMS argument list denotes:
    * 1-built-in source 2-convection 3-diffusion 4-transient
    * 5-first phase variable 6-interphase transport         
 TERMS(C1,N,N,Y,Y,Y,Y)
 TERMS(ERRR,N,N,N,Y,Y,Y)
 DIFCUT =0.5 ;ZDIFAC =1.
 GALA = F ;ADDDIF = F
 ISOLX = 1 ;ISOLY = 1 ;ISOLZ = -1
 ************************************************************
  Group 9. Properties used if PRPS is not
  stored, and where PRPS = -1.0 if it is!
 RHO1 =1. ;TMP1 =0.
 EL1 =0.
 TSURR =0. ;TEMP0 =0.
 PRESS0 =0.
 DVO1DT =0. ;DRH1DP =0.
 EMISS =0. ;SCATT =0.
 RADIA =0. ;RADIB =0.
 ENUL =1. ;ENUT =0.
 PRNDTL(C1)=1.
 PRT(C1)=1.
 CP1 =1. ;CP2 =1.
 ************************************************************
  Group 10.Inter-Phase Transfer Processes
 ************************************************************
  Group 11.Initial field variables (PHIs)
 FIINIT(C1)=1.0E-10 ;FIINIT(EXAC)=1.0E-10
 FIINIT(ERRR)=1.0E-10
 
 PATCH(INIT ,INIVAL, 1, 100, 1, 100, 1, 1, 1, 1)
 INIT(INIT ,C1 ,0. ,0. )
 INIT(INIT ,EXAC,0. ,0. )
 
 PATCH(IINIT ,INIVAL, 1, 100, 1, 100, 1, 1, 1, 1)
 INIADD = F
 FSWEEP = 1
 NAMFI =CHAM
 ************************************************************
  Group 12. Patchwise adjustment of terms
  Patches for this group are printed with those
  for Group 13.
  Their names begin either with GP12 or &
 ************************************************************
  Group 13. Boundary & Special Sources
 
 PATCH(WEST ,WWALL , 1, 1, 1, 100, 1, 1, 1, 5)
 COVAL(WEST ,C1 ,0. ,0. )
 
 PATCH(EAST ,EWALL , 100, 100, 1, 100, 1, 1, 1, 5)
 COVAL(EAST ,C1 ,0. ,0. )
 
 PATCH(SOUTH ,SWALL , 1, 100, 1, 1, 1, 1, 1, 5)
 COVAL(SOUTH ,C1 ,0. ,0. )
 
 PATCH(NORTH ,NWALL , 1, 100, 100, 100, 1, 1, 1, 5)
 COVAL(NORTH ,C1 ,0. ,0. )
 
 PATCH(SOURC ,VOLUME, 1, 100, 1, 100, 1, 1, 1, 5)
 COVAL(SOURC ,C1 , FIXFLU ,1. )
 
 PATCH(IWEST ,WWALL , 1, 1, 1, 100, 1, 1, 1, 5)
 COVAL(IWEST ,C1 ,In-Form:source - see Grp 19)
 
 PATCH(IEAST ,EWALL , 100, 100, 1, 100, 1, 1, 1, 5)
 COVAL(IEAST ,C1 ,In-Form:source - see Grp 19)
 
 PATCH(ISOUTH ,SWALL , 1, 100, 1, 1, 1, 1, 1, 5)
 COVAL(ISOUTH ,C1 ,In-Form:source - see Grp 19)
 
 PATCH(INORTH ,NWALL , 1, 100, 100, 100, 1, 1, 1, 5)
 COVAL(INORTH ,C1 ,In-Form:source - see Grp 19)
 
 PATCH(IERROR ,CELL , 1, 100, 1, 100, 1, 1, 1, 5)
 COVAL(IERROR ,ERRR,In-Form:source - see Grp 19)
 XCYCLE = F
 EGWF = T
 WALLCO = GRND2
 ************************************************************
  Group 14. Downstream Pressure For PARAB
 ************************************************************
  Group 15. Terminate Sweeps
 LSWEEP = 5 ;ISWC1 = 1
 LITHYD = 1 ;LITFLX = 1 ;LITC = 1 ;ITHC1 = 1
 SELREF = T
 RESFAC =1.0E-06
 ************************************************************
  Group 16. Terminate Iterations
 LITER(C1)=10 ;LITER(ERRR)=20
 ENDIT(C1)=1.0E-03 ;ENDIT(ERRR)=1.0E-03
 ************************************************************
  Group 17. Relaxation
 RELAX(C1,FALSDT,1.0E+09)
 RELAX(EXAC,LINRLX,1.)
 RELAX(ERRR,FALSDT,1.0E+09)
 OVRRLX =0.
 EXPERT = F ;NNORSL = F
 ************************************************************
  Group 18. Limits
 VARMAX(C1)=1.0E+10 ;VARMIN(C1)=-1.0E+10
 VARMAX(EXAC)=1.0E+10 ;VARMIN(EXAC)=-1.0E+10
 VARMAX(ERRR)=1.0E+10 ;VARMIN(ERRR)=-1.0E+10
 ************************************************************
  Group 19. Data transmitted to GROUND
 PARSOL = F
 ISG62 = 1
 CSG3    ='CNGR'
 SPEDAT(SET,GXMONI,TRANSIENT,L,F)
 SPEDAT(SET,INITIAL,C1!IINIT,C,=XG+YG)
 SPEDAT(SET,INITIAL,EXAC!IINIT,C,=XG+YG+TLAST)
 SPEDAT(SET,SOURCE,C1!IWEST,C,=(TIM+YG-C1)*2./DXG!LINE)
 SPEDAT(SET,SOURCE,C1!IEAST,C,=(TIM+1.0+YG-C1)*2./DXG!LINE)
 SPEDAT(SET,SOURCE,C1!ISOUTH,C,=(TIM+XG-C1)*2./DYG!LINE)
 SPEDAT(SET,SOURCE,C1!INORTH,C,=(TIM+1.0+XG-C1)*2./DYG!LINE)
 SPEDAT(SET,SOURCE,ERRR!IERROR,C,=TIM+XG+YG-C1!FIXVAL)
 ************************************************************
  Group 20. Preliminary Printout
 DISTIL = T ;NULLPR = F
 NDST = 0
 DSTTOL =1.0E-02
 EX(C1)=2. ;EX(EXAC)=2.
 EX(ERRR)=9.861E-03
 ************************************************************
  Group 21. Print-out of Variables
 INIFLD = F ;SUBWGR = F
    * Y in OUTPUT argument list denotes:
    * 1-field 2-correction-eq. monitor 3-selective dumping      
    * 4-whole-field residual 5-spot-value table 6-residual table
 OUTPUT(C1,Y,Y,Y,Y,Y,Y)
 OUTPUT(EXAC,Y,N,Y,N,N,N)
 OUTPUT(ERRR,Y,N,Y,N,N,N)
 ************************************************************
  Group 22. Monitor Print-Out
 IXMON = 50 ;IYMON = 50 ;IZMON = 1
 NPRMON = 100000 ;NPRMNT = 1 ;TSTSWP = 1
 UWATCH = T ;USTEER = T
 HIGHLO = F
 ************************************************************
  Group 23.Field Print-Out & Plot Control
 NPRINT = 100000 ;NUMCLS = 5
 NTPRIN = 100000 ;ISTPRF = 1 ;ISTPRL = 100000
 NXPRIN = -1 ;IXPRF = 1 ;IXPRL = 10000
 NYPRIN = -1 ;IYPRF = 1 ;IYPRL = 10000
 IPLTF = 1 ;IPLTL = -1 ;NPLT = -1
 ISWPRF = 1 ;ISWPRL = 100000
 ITABL = 3 ;IPROF = 1
 ABSIZ =0.5 ;ORSIZ =0.4
 NTZPRF = 1 ;NCOLPF = 50
 ICHR = 2 ;NCOLCO = 45 ;NROWCO = 20
   No PATCHes yet used for this Group
 ************************************************************
  Group 24. Dumps For Restarts
 SAVE = T ;NOWIPE = F
 NSAVE =CHAM
STOP