DISPLAY
FLAME PHENOMENA (Propagation, ignition in a gas)
2-dimensional (x-y), cartesian, steady, elliptic simulation
Demonstration of some steady one-phase flame phenomena
namely :- 1 D spontaneous ignition in a long duct
1 D laminar flame propagation
----------------------------------------------------
r=1.e-4 <--| flame-front r=1.
-----------------------------------------------------
x----->
In order to enable parametric studies to be made quickly,
and to facilitate display, each problem is made 2 D,
the additional dimensions being used for the varied
parameters.
enddis
PHOTON USE
p
msg Reactedness contours
con rctd z 1 fi;0.005
msg( Press RETURN to continue
pause
*msg Velocity vectors. Press RETURN for grid
*set ref vec 10;vec z 1
*pause
msg Grid
gr z 1
msg( Press RETURN for velocity contours
pause
con off;vec off;red
msg Contours of gas velocity
con u1 z 1 fi;0.01
msg Press e to END
enduse
GROUP 1. Run title and other preliminaries
TEXT(Steady 1D Flame Phenomena
TITLE
mesg(PC486/50 time last reported as appx. 2. min
GXCHSO is employed for this calculation (see group 13
of GREX3).
-----------------------------------------------------
r=1.e-4 <--| flame-front r=1.
-----------------------------------------------------
x----->
real(u1in,rho1in,rctdin)
BOOLEAN(propag,sponig,stirred)
propag=f;sponig=f;stirred=f
mesg(Do you want to simulate spontaneous ignition? (y/n)
readvdu(ans,char,n)
if(:ans:.eq.y) then
sponig=t
goto skip
endif
mesg(Do you want to simulate the fully-stirred reactor? (y/n)
readvdu(ans,char,n)
if(:ans:.eq.y) then
stirred=t
goto skip
endif
mesg(Steady laminar flame propagation will be simulated
propag=t
label skip
propag
sponig
stirred
u1in=1.0;rho1in=1.0;rctdin=0.01
if(sponig) then
rctdin=0.2
endif
GROUP 2. Transience; time-step specification
GROUP 3. X-direction grid specification
GRDPWR(X,100,1.0,1.0)
if(stirred) then
nx=2
endif
GROUP 4. Y-direction grid specification
grdpwr(y,10,0.5,1.0)
GROUP 5. Z-direction grid specification
GROUP 6. Body-fitted coordinates or grid distortion
GROUP 7. Variables stored, solved & named
SOLVE(P1,U1,H1)
if(ny.gt.1) then
solve(v1)
store(vpor,epor,npor)
endif
NAME(H1)=RCTD
store(enul,tmp1,rho1)
GROUP 8. Terms (in differential equations) & devices
** Cut out built-in enthalpy source (viscous dissipation)
TERMS(RCTD,N,Y,Y,Y,Y,Y)
GROUP 9. Properties of the medium (or media)
TMP1=LINH;tmp1a=0.0;cp1=1.0
if(propag) then
ENUL=LINTEM;enula=0.2;enulb=0.6
endif
rho1=recscal;rho1a=1.0/rho1in;rho1b=5.0
GROUP 10. Inter-phase-transfer processes and properties
GROUP 11. Initialization of variable or porosity fields
fiinit(u1)=u1in;fiinit(v1)=0.0;fiinit(rctd)=rctdin
if(ny.gt.1) then
fiinit(npor)=0.0
iniadd=f
patch(poros,linvly,1,nx,1,ny,1,1,1,lstep)
init(poros,vpor,0.7,0.12);init(poros,epor,0.7,0.12)
endif
if(stirred) then
fiinit(rctd)=0.9
fiinit(u1)=0.0;fiinit(v1)=0.0
endif
GROUP 12. Patchwise adjustment of terms in PDEs
GROUP 13. Boundary conditions and special sources
** RCTD is held to unity at IX=NX
integer(nxin)
nxin=nx
if(stirred) then
nxin=1
endif
integer(nyout)
nyout=ny
PATCH(IXEQNX,CELL,NXin,NX,1,nyout,1,1,1,LSTEP)
if(propag) then
+ COVAL(IXEQNX,RCTD,FIXVAL,1.0)
endif
COVAL(IXEQNX,P1,FIXP,0.0)
** Inflow value of RCTD is specified at IX=1
integer(nyin)
nyin=ny
nxin=1
if(stirred) then
nxin=nx
endif
PATCH(IXEQ1,west,1,nxin,1,nyin,1,1,1,LSTEP)
coval(ixeq1,p1,fixflu,u1in*rho1in)
COVAL(IXEQ1,RCTD,onlyms,rctdin)
if(.not.stirred) then
coval(ixeq1,u1,onlyms,u1in)
endif
** A non-linear source of RCTD is present; for this
purpose, the subroutine GXCHSO is called from GREX3,
group13 by setting COefficient to POLYNOM (GRND7) in the COVAL
command; the subroutine is entered only when the patch
name begins with the character CHSO.
CO=GRND7 selects the following option:
COefficient=CHSOA*RCTD**CHSOB
VAL=1.0 enforces that the source falls to zero when
RCTD equals unity.
PATCH(CHSOTERM,PHASEM,1,NX,1,ny,1,1,1,LSTEP)
COVAL(CHSOTERM,RCTD,POLYNOM,1.0)
CHSOA=5.0e3;CHSOB=6.0
The source is therefore CHSOA*(1.0-RCTD)*RCTD**CHSOB
GROUP 15. Termination of sweeps
LSWEEP=100
GROUP 16. Termination of iterations
GROUP 17. Under-relaxation devices
relax(v1,falsdt,1.e-20)
relax(rho1,linrlx,0.5)
relax(p1,linrlx,0.5);relax(u1,falsdt,0.02*xulast/u1in)
if(stirred) then
relax(u1,falsdt,1.e-20)
endif
GROUP 18. Limits on variables or increments to them
GROUP 22. Spot-value print-out
ixmon=nx/2;iymon=ny/2;itabl=1
GROUP 23. Field print-out and plot control
NXPRIN=NX/5;NTPRIN=LSTEP/4;NPLT=1
** Plot profiles over the length of the domain
PATCH(XWISE,PROFIL,nx/2,NX,1,1,1,1,1,LSTEP)
PLOT(XWISE,RCTD,0.0,0.0)
if(ny.gt.1) then
patch(map,contur,1,nx,1,ny,1,1,1,lstep)
plot(map,rctd,0.0,10.0)
endif
xulast
enul
chsoa
real(reactno,peclet)
reactno=chsoa*xulast/(rho1in/u1in)
if(propag) then
peclet=u1in*xulast*prndtl(rctd)/enula
* Print to screen some interesting dimensionless quantities
mesg(Peclet no = :peclet:
mesg("reaction no" chsoa*xulast/(rho1in*u1in) = :reactno:
endif
tstswp=-1;selref=t; resfac=1.e-2
libref=851