TEXT(CO & H2 Diffusion Flame
TITLE
  DISPLAY
  The case considered is the turbulent combustion of CO and H2 with
  O2 in a pipe of 32cm diameter. Concentric 'fuel' and 'oxidiser'
  streams enter the pipe axially, and then having mixed and burnt,
  exit axially 2m downstream of the inlet. The fuel stream, which
  comprises H2, CO, H2O, CO2 and N2, enters through an inner
  injector of 8cm diameter, and the oxidiser stream, which comprises
  O2, N2, H2O and CO2 enters through an outer annulus. The tempera-
  tures of the fuel and oxidiser streams are 1754 and 1518 Deg C,
  and the corresponding mass flow rates are 0.0726 and 0.144 kg/s.
 
  The fast-chemistry assumption is invoked for main combustion
  calculation in terms of two competing single-step infinite-rate
  reactions: 2H2 + O2 > 2H2O and CO + O2 > CO2. The NOX calculation
  is peformed as a post-processing run with a frozen hydrodynamic
  and temperature fields. The NO distributions are calculated by
  CHEMKIN via a reaction mechanism involving the Zeldovich reactions
  and fuel kinetics.
  ENDDIS
 
  There are 2 runs to be done:
    Run 1 - use the generalised SCRS to do the main combustion
            problem (RUN1=T) plus CHEMKIN to calculate the
            temperature from the enthalpy ( this requires the
            file SCRS.CKM for CHEMKIN ).
    Run 2 - restart with frozen flow, temperature and turbulence
            fields and solve the detailed chemistry with NOx
            included using the implicit solver in the CHEMKIN
            Interface (RUN1=F). This requires the file RADN.CKM
            for CHEMKIN.
 
  The inlet conditions for the case are:
       Fuel Stream            Oxidiser Stream
    M   =  0.0726  kg/s     M   =  0.144   kg/s
    W   =  96.0    m/s      W   =  9.9     m/s
    T   =  1754    C        T   =  1518    C
    YCO =  0.091   mol/mol  YO2 =  0.086   mol/mol
    YH2 =  0.089     "      YCO2=  0.055     "
    YCO2=  0.036     "      YH2O=  0.111     "
    YH2O=  0.164     "      YN2 =  0.748     "
    YN2 =  0.62      "
 
  The expected outlet mass fractions for the SCRS run are:
 
    YO2 = 0.026  YCO2 = 0.133  YH2O = 0.732  YN2 = 0.109
 
    GROUP 1. Run title and other preliminaries
 
TEXT(RADIAN: 2D Turbulent Diffusion Flame
CHAR(CPDF);BOOLEAN(RUN1,HSOLV,THRAD,BLOCK)
HSOLV=T;THRAD=T
MESG( porosity test ? (default=N)
READVDU(ANS,CHAR,N)
IF(:ANS:.EQ.Y) THEN
+ BLOCK=T
+ MESG( Porosities present
ELSE
+ BLOCK=F
+ MESG( No porosities
ENDIF
MESG( Do you want a NOX run? (default=N)
READVDU(ANS,CHAR,N)
IF(:ANS:.EQ.Y) THEN
+ RUN1=F
+ MESG( NOX run selected.
ELSE
+ RUN1=T
+ MESG( Main combustion run selected.
ENDIF
 
REAL(WINF,WINO,KEINO,EPINO,KEINF,EPINF,PRADO,PRADI,CD)
REAL(TEMFU,TEMOX,TWAL)
TWAL=100.+273.
PRADO=0.16;PRADI=0.04;CD=0.1643;WINF=96.0;WINO=9.9
KEINO=(0.05*WINO)**2; EPINO=CD*KEINO**1.5/(0.1*(PRADO-PRADI))
KEINF=(0.05*WINF)**2; EPINF=CD*KEINF**1.5/(0.1*PRADI)
TEMFU=1754.+273.;TEMOX=1518.+273.
REAL(YFU1IN,YOX1IN,YN21IN,YH21I,YCO1I,YH2O1I,YCO21I)
REAL(YFU2IN,YOX2IN,YN22IN,YH22I,YCO2I,YH2O2I,YCO22I)
  ** fuel stream
YFU1IN=0.0;YOX1IN=0.0;YH21I=-0.089;YCO1I=0.091;YH2O1I=0.164
YCO21I=0.036;YN21IN=1.-YFU1IN-YOX1IN+YH21I-YCO1I-YH2O1I-YCO21I
  ** oxidiser stream
YFU2IN=0.0;YOX2IN=0.086;YH22I=0.0;YCO2I=0.0;YH2O2I=0.111;
YCO22I=0.055;YN22IN=1.-YFU2IN-YOX2IN-YH22I-YCO2I-YH2O2I-YCO22I
    GROUP 3. X-direction grid specification
CARTES=F;XULAST=0.1
    GROUP 4. Y-direction grid specification
INTEGER(NYF,NYO,NYG);NYF=4;NYO=4;NYG=NYF+NYO
IF(BLOCK) THEN
+ NREGY=3;NY=12
ELSE
+ NREGY=2;NY=8
ENDIF
IREGY=1;GRDPWR(Y,NYF,0.04,1.0);IREGY=2;GRDPWR(Y,NYO,0.12,1.0)
IF(BLOCK) THEN
+ IREGY=3;GRDPWR(Y,4,0.04,1.0)
ENDIF
    GROUP 5. Z-direction grid specification
NZ=8;GRDPWR(Z,NZ,2.0,1.5)
MESG( BFC test ? (default=N)
READVDU(ANS,CHAR,N)
IF(:ANS:.EQ.Y) THEN
+ BFC=T;NONORT=T
+ MESG( BFCs present
ELSE
+ BFC=F
+ MESG( No BFCs
ENDIF
    GROUP 7. Variables stored, solved & named
IF(RUN1) THEN
+ SOLVE(P1,V1,W1)
ELSE
+ STORE(P1,V1,W1)
+ NAME(15)=ENT2;NAME(45)=F;STORE(F)
ENDIF
STORE(VIST,DEN1,TMP1);SOLUTN(P1,P,P,Y,P,P,P)
SOLUTN(V1,P,P,P,P,P,N);SOLUTN(W1,P,P,P,P,P,N)
 
IF(HSOLV) THEN
+ SOLVE(H1);TERMS(H1,N,P,P,P,P,P)
+ SOLUTN(H1,P,P,Y,P,P,P)
ELSE
+ STORE(H1)
ENDIF
  ** store specific heat
STORE(SPH1,YSUM)
  ** activate radiation
IF(THRAD) THEN
+ REAL(ABSORB,SCAT,SIGMA,EMPW,EMISW,EMISG,EMPG)
+ ABSORB=0.35;SCAT=0.0; EMISG=0.35; EMISW=1.0
+ SIGMA=5.6697E-8; EMPW=SIGMA*TWAL**4; EMPG=SIGMA*EMISG
+ RADIAT(RADI,ABSORB,SCAT,H1)
+ SOLUTN(SRAD,P,P,Y,P,P,P);SOLUTN(H1,P,P,Y,P,P,P)
ENDIF
 
IF(RUN1) THEN
  
  *** Start of extended SCRS model settings, which are equivalent to,
      and supersede, the SPEDAT statements which have been de-activated
+ PRESS0=1.0000E+05
+ INTEGER(NSPEC,NELEM);NSPEC=7;NELEM=4
+ INTEGER(NCSTEP,NCREAC);NCSTEP=1;NCREAC=2
+ SCRS(SYSTEM,NCSTEP,NCREAC,NELEM,FASTC)
+ SCRS(SPECIES,CH4,O2,H2,CO,H2O,CO2,N2)
   + SPEDAT(SET,SCRS,NRSYS,I,-3)
   ** Define fuel, oxidiser, & intermediates
   + SPEDAT(SET,SCRS,CFUEL,C,CSG5);SPEDAT(SET,SCRS,COXID,C,O2  )
   + SPEDAT(SET,SCRS,CFP1 ,C,CO  );SPEDAT(SET,SCRS,CFP2 ,C,H2  )
   ** Define fuel & oxidiser composition & temperatures
SCRS(FUIN,YFU1IN,YOX1IN,YH21I,YCO1I,YH2O1I,YCO21I,YN21IN,TEMFU)
SCRS(OXIN,YFU2IN,YOX2IN,YH22I,YCO2I,YH2O2I,YCO22I,YN22IN,TEMOX)
SCRS(PROP,CHEMKIN,SCRS)
ELSE
+ CHEMKIN(SPECIES,CH4,O2,H2,CO,H2O,CO2,H,O,OH,HO2,NO,N,N2)
+ NAME(45)=SRAD;NAME(44)=F
+ STORE(H1,SRAD,F)
ENDIF
MESG( Enter required combustion model: default mixed-is-burnt
MESG( The options are:
MESG(  BURN  - Mixed-is-burnt infinite-rate model
MESG(  DDEL  - Infinite-rate model with Double-Delta PDF
READVDU(CPDF,CHAR,BURN)
CASE :CPDF: OF
WHEN BURN,4
+ MESG(Mixed-is-burnt infinite rate model
WHEN DDEL,4
+ MESG(Infinite-rate model with Double-Delta PDF
+ SCRS(PDF,DDELTA)
ENDCASE
  *** END OF EXTENDED SCRS MODEL SETTINGS
 
IF(BLOCK) THEN
+ CONPOR(BLK1,0.0,CELL,1,NX,NYG+1,NY,1,NZ)
+ OUTPUT(VPOR,P,P,Y,P,P,P)
ENDIF
TURMOD(KEMODL)
    GROUP 8. Terms (in differential equations) & devices
    GROUP 9. Properties of the medium (or media)
ENUL=3.E-5
IF(.NOT.RUN1) THEN
+ RHO1=GRND9;TMP1=0.0;TMP1B=13
+ STORE(KE,EP)
IF(BFC) THEN
+ NAME(42)=F;NAME(45)=SPH1;NAME(44)=YSUM;NAME(43)=SRAD
+ STORE(F,SRAD,YSUM,SPH1)
ENDIF
ENDIF
    GROUP 11. Initialization of variable or porosity fields
INIADD=F
IF(RUN1) THEN
+ FIINIT(W1)=10.0
+ PATCH(INIT,INIVAL,1,NX,1,NYF,1,NZ,1,LSTEP)
+ INIT(INIT,W1,0.0,WINF); FIINIT(KE)=KEINF; FIINIT(EP)=EPINF
IF(THRAD) THEN
+ REAL(TGUESS);TGUESS=1791.0; FIINIT(SRAD)=0.07*SIGMA*TGUESS**4
ENDIF
IF(HSOLV) THEN
  ** inlet enthalpy as computed in GROUND
+ FIINIT(H1)=1.267E5
ENDIF
ELSE
+ RESTRT(ALL)
+ DO KK=CHSOB+6,CHSOB+11
+   FIINIT(:KK:)=1.E-6
+ ENDDO
ENDIF
    GROUP 19. Data communicated by satellite to GROUND
        (Moved to here so that it can be used in Group 13)
IF(.NOT.RUN1) THEN
+ CHEMKIN(REACT,TWOPNT)
+ CHSOC=1.0
+ CHEMKIN(PROP,RADN,CHSOC)
ENDIF
    GROUP 13. Boundary conditions and special sources
 
  ** Fuel Stream Inlet Conditions
REAL(YIN);INTEGER(KK1)
IF(RUN1) THEN
INLET(SCRSF,LOW,1,NX,1,NYF,1,1,1,LSTEP)
+ VALUE(SCRSF,F,1.0)
+ VALUE(SCRSF,KE,KEINF); VALUE(SCRSF,EP,EPINF)
IF(HSOLV) THEN
+ VALUE(SCRSF,H1,GRND1)
ENDIF
IF(BFC) THEN
+ VALUE(SCRSF,P1,GRND3)
+ VALUE(SCRSF,V1,GRND3); VALUE(SCRSF,W1,GRND3)
+ VALUE(SCRSF,VCRT,ZERO); VALUE(SCRSF,WCRT,WINF)
ELSE
+ VALUE(SCRSF,P1,GRND1); VALUE(SCRSF,W1,WINF)
ENDIF
ELSE
+ INLET(NOCPCKF,LOW,1,NX,1,NYF,1,1,1,LSTEP)
+ VALUE(NOCPCKF,P1,GRND9); VALUE(NOCPCKF,W1,WINF)
+ VALUE(NOCPCKF,TMP1,TEMFU)
  ** inlet mass fractions
+ VALUE(NOCPCKF,NO,1.E-5)
+ VALUE(NOCPCKF,H2,7.283E-3); VALUE(NOCPCKF,CO,0.1035)
+ VALUE(NOCPCKF,H2O,0.1199); VALUE(NOCPCKF,CO2,0.06431)
ENDIF
 
  ** Oxidiser Stream Inlet Conditions
IF(RUN1) THEN
+ INLET(SCRSO,LOW,1,NX,NYF+1,NYG,1,1,1,LSTEP)
+ VALUE(SCRSO,P1,GRND1); VALUE(SCRSO,F,0.0)
+ VALUE(SCRSO,KE,KEINO); VALUE(SCRSO,EP,EPINO)
IF(HSOLV) THEN
+ VALUE(SCRSO,H1,GRND1)
ENDIF
IF(BFC) THEN
+ VALUE(SCRSO,P1,GRND3)
+ VALUE(SCRSO,V1,GRND3); VALUE(SCRSO,W1,GRND3)
+ VALUE(SCRSO,VCRT,ZERO); VALUE(SCRSO,WCRT,WINO)
ELSE
+ VALUE(SCRSO,P1,GRND1); VALUE(SCRSO,W1,WINO)
ENDIF
ELSE
+ INLET(NOCPCKO,LOW,1,NX,NYF+1,NYG,1,1,1,LSTEP)
+ VALUE(NOCPCKO,P1,GRND9); VALUE(NOCPCKO,W1,WINO)
+ VALUE(NOCPCKO,TMP1,TEMOX)
  ** inlet mass fractions
+ VALUE(NOCPCKO,O2,9.784E-02); VALUE(NOCPCKO,H2O,7.110E-02)
+ VALUE(NOCPCKO,CO2,8.606E-02); VALUE(NOCPCKO,N2,7.450E-01)
ENDIF
 
  ** note that wall type patch names must have WALL for characters
     2 to 5 inclusive for ground-coded H1 convective b.c. to work
  ** Outer Wall Boundary Conditions
PATCH(NWALL1,NWALL,1,NX,NYG,NYG,1,NZ,1,LSTEP)
COVAL(NWALL1,W1,GRND2,0.0);COVAL(NWALL1,KE,GRND2,GRND2)
COVAL(NWALL1,EP,GRND2,GRND2)
  ** convective heat transfer wall function
   COVAL(NWALL1,H1,GRND2,GRND); RG(50)=TWAL
IF(THRAD) THEN
+ PATCH(RWALLN,NORTH,1,NX,NYG,NYG,1,NZ,1,LSTEP)
+ COVAL(RWALLN,SRAD,EMISW/(2.0-EMISW),EMPW)
+ PATCH(RADINF,LOW,1,NX,1,NYF,1,1,1,LSTEP)
+ COVAL(RADINF,SRAD,0.5,EMPG*TEMFU**4)
+ PATCH(RADINO,LOW,1,NX,NYF+1,NYG,1,1,1,LSTEP)
+ COVAL(RADINO,SRAD,0.5,EMPG*TEMOX**4)
ENDIF
  ** Exit Boundary Conditions
OUTLET(OUT,HIGH,1,NX,1,NYG,NZ,NZ,1,LSTEP)
REAL(CMOUT);CMOUT=10.0
IF(RUN1) THEN
+ COVAL(OUT,P1,CMOUT,0.0)
+ VALUE(OUT,V1,0.0); VALUE(OUT,W1,0.0); VALUE(OUT,F,0.0)
ELSE
  ** convert CMOUT from s/m**3 to g*s/(kg*cm**3) for nox run
+ COVAL(OUT,P1,CMOUT*1.E-3,0.0)
+ DO KK=CHSOB,CHSOB+12
+ VALUE(OUT,:KK:,0.0)
+ ENDDO
ENDIF
 
KELIN=1.0
    GROUP 15. Termination of sweeps
IF(.NOT.RUN1) THEN
+ DO KK=CHSOB,CHSOB+12
+   RESREF(:KK:)=1.E-12*RESREF(:KK:)
+   ENDIT(:KK:)=1.E-20
+ ENDDO
ENDIF
IF(RUN1) THEN
+ LSWEEP=200
ELSE
+ LSWEEP=80
ENDIF
    GROUP 16. Termination of iterations
    GROUP 17. Under-relaxation devices
 
REAL(RLXFAC); RLXFAC=2.0*ZWLAST/WINF/NZ
IF(RUN1) THEN
+ RELAX(V1,FALSDT,RLXFAC); RELAX(W1,FALSDT,RLXFAC)
+ RELAX(KE,LINRLX,0.4); RELAX(EP,LINRLX,0.4)
+ RELAX(DEN1,LINRLX,0.5); RELAX(F,LINRLX,0.8)
IF(HSOLV) THEN
+ RELAX(H1,FALSDT,1.0)
ENDIF
IF(THRAD) THEN
+ RELAX(SRAD,FALSDT,1.0)
ENDIF
ELSE
  ** LG(94)=T so as to convert density from kg/m**3 to g/cm**3 (by
     multiplying by 1.E-3) for use in CHEMKIN on 1st sweep of NOX
     run. However, on NOX restart runs you must set LG(94)=F
+ LG(94)=T; RELAX(DEN1,LINRLX,1.E-10)
+ DO KK=CHSOB,CHSOB+12
+   RELAX(:KK:,FALSDT,1.E-2)
+ ENDDO
ENDIF
 
    GROUP 18. Limits on variables or increments to them
 
  Prevent mass-fractions from straying outside the physical
  limits (0,1), and prevent the temperature from falling below
  0 C (chosen to be the reference temperature)
IF(RUN1) THEN
+ DO KK=CHSOB,CHSOB+6
+   VARMIN(:KK:)=0.0; VARMAX(:KK:)=1.0
+ ENDDO
ELSE
+ DO KK=CHSOB,CHSOB+12
+   VARMIN(:KK:)=-1.E-7; VARMAX(:KK:)=1.0+1.E-7
+ ENDDO
+ OUTPUT(SRAD,P,P,P,P,N,N); OUTPUT(SPH1,P,P,P,P,N,N)
+ OUTPUT(VIST,P,P,P,P,N,N); OUTPUT(F,P,P,P,P,N,N)
ENDIF
OUTPUT(CH4,N,N,P,N,N,N)
VARMIN(TMP1)=1.E-10; VARMIN(DEN1)=1.E-10
OUTPUT(TMP1,P,P,P,P,Y,Y); OUTPUT(DEN1,P,P,P,P,Y,Y)
    GROUP 20. Preliminary print-out
ECHO=T
    GROUP 21. Print-out of variables
NYPRIN=1;NZPRIN=1
    GROUP 22. Spot-value print-out
TSTSWP=-1;IYMON=NYF+2;IZMON=NZ-1;ITABL=3;NPLT=10
    GROUP 23. Field print-out and plot control
    GROUP 24. Dumps for restarts
DISTIL=T
   RUN1
IF(:CPDF:.EQ.BURN) THEN
+ EX(P1  )=2.800E+01; EX(V1  )=6.527E-01; EX(W1  )=3.330E+01
+ EX(KE  )=9.627E+01; EX(EP  )=1.521E+04; EX(H1  )=3.221E+05
+ EX(CH4 )=0.000E+00; EX(O2  )=2.489E-02; EX(H2  )=1.093E-03
+ EX(CO  )=1.553E-02; EX(H2O )=1.093E-01; EX(CO2 )=1.210E-01
+ EX(N2  )=7.281E-01; EX(F   )=4.214E-01; EX(SRAD)=8.462E+04
+ EX(YSUM)=1.000E+00; EX(SPH1)=1.482E+03; EX(TMP1)=2.024E+03
+ EX(DEN1)=1.637E-01; EX(VIST)=7.197E-02
ENDIF
IF(:CPDF:.EQ.DDEL) THEN
+ EX(P1  )=2.587E+01; EX(V1  )=6.697E-01; EX(W1  )=3.367E+01
+ EX(KE  )=9.665E+01; EX(EP  )=1.516E+04; EX(H1  )=1.958E+05
+ EX(CH4 )=0.000E+00; EX(O2  )=2.675E-02; EX(H2  )=1.202E-03
+ EX(CO  )=1.708E-02; EX(H2O )=1.083E-01; EX(CO2 )=1.185E-01
+ EX(N2  )=7.282E-01; EX(F   )=4.209E-01; EX(SRAD)=3.236E+04
+ EX(YSUM)=1.000E+00; EX(SPH1)=1.488E+03; EX(TMP1)=2.094E+03
+ EX(DEN1)=1.596E-01; EX(VIST)=7.255E-02
ENDIF
 
   RUN2
   IF(:CPDF:.EQ.BURN) THEN
   + EX(P1  )=2.621E+01; EX(V1  )=6.660E-01; EX(W1  )=3.400E+01
   + EX(KE  )=9.693E+01; EX(EP  )=1.530E+04; EX(H1  )=2.029E+05
   + EX(CH4 )=1.066E-20; EX(O2  )=2.681E-02; EX(H2  )=1.121E-03
   + EX(CO  )=2.161E-02; EX(H2O )=1.077E-01; EX(CO2 )=1.118E-01
   + EX(H   )=5.525E-05; EX(O   )=2.730E-04; EX(OH  )=2.164E-03
   + EX(HO2 )=1.667E-06; EX(NO  )=8.744E-04; EX(N   )=8.965E-09
   + EX(N2  )=7.277E-01; EX(SRAD)=3.282E+04; EX(SPH1)=1.490E+03
   + EX(TMP1)=2.110E+03; EX(DEN1)=1.588E-04; EX(YSUM)=1.000E+00
   + EX(VIST)=7.240E-02; EX(F)=4.235E-01
   ENDIF
 
IF(RUN1) THEN
+ SELREF=T;NSAVE=COH2
ELSE
+ SELREF=F;NAMFI=COH2;NSAVE=RNOX; FIINIT(N2)=0.71
ENDIF
   STORE(DFDY,DFDZ,GENF)
OUTPUT(YSUM,P,P,P,P,Y,Y)