8.0
general documentation
Pulverized coal

The examples provided here are only concern inlet boundary conditions. Other boundary condition types are not specific to the pulverized coal model, so generic examples apply (and as usual, the GUI is recommended).

Note that turbulence variables BC's are usually computed automatically:

  • If icalke(izone) = 1: hydraulic diameter and reference velocity (similar to turbulence_bc_inlet_hyd_diam).
  • If icalke(izone) = 2: hydraulic diameter, reference velocity and turbulence intensity (similar to turbulence_bc_inlet_turb_intensity).
  • If icalke(izone) = 0: non-automatic definition. Turbulence BC's must be defined here for all turbulence variables (k, epsilon, omega, Rij, ... depending on active model).

Local variables to be added

integer ifac, ii
integer izone
integer icha, iclapc
integer ilelt, nlelt
integer, allocatable, dimension(:) :: lstelt

This firs example

Initialization and finalization

Initialization and finalization is similar to that of the base examples

Example 1

Secondary or tertiary air inlet, for zone 'inlet'.

call getfbr('inlet', nlelt, lstelt)
do ilelt = 1, nlelt
ifac = lstelt(ilelt)
! Kind of boundary conditions for standard variables
itypfb(ifac) = ientre
! zone's number (from 1 to n)
izone = 1
! Assign zone number to the face
izfppp(ifac) = izone
! For theses inlet faces, mass flux is fixed
! The speed direction is given
! (speed vector norm is irrelevant)
ientat(izone) = 1
iqimp(izone) = 1
rcodcl(ifac,iu,1) = 0.d0
rcodcl(ifac,iv,1) = 0.d0
rcodcl(ifac,iw,1) = 5.d0
! Oxidizer's number (1 to 3)
inmoxy(izone) = 1
! Oxidizer mass flow rate in kg/s
qimpat(izone) = 1.46d-03
! Oxidizer Temperature in K
timpat(izone) = 400.d0 + tkelvi
! Turbulence variables BC's calculated based on icalke(izone):
! - If 1: hydraulic diameter and reference velocity (similar to
! turbulence_bc_inlet_hyd_diam)
! - If 2: hydraulic diameter, reference velocity and turbulence intensity
! (similar to turbulence_bc_inlet_turb_intensity)
! - If 0: must be defined here for all turbulence variables
! (k, epsilon, omega, Rij, ... depending on active model)
icalke(izone) = 1
dh(izone) = 0.032d0
xintur(izone) = 0.d0
! Automatic treatment of non-user scalars
! Treatment of user-defined scalars
if ((nscal-nscapp).gt.0) then
do ii = 1, (nscal-nscapp)
rcodcl(ifac,isca(ii),1) = 1.d0
enddo
endif
enddo
subroutine getfbr(fstr, facnb, faces)
Build the list of boundary faces matching a criteria string.
Definition: cs_selector_f2c.f90:111

Example 2

Primary air inlet, for zone 'primary_inlet'.

call getfbr('primary_inlet', nlelt, lstelt)
do ilelt = 1, nlelt
ifac = lstelt(ilelt)
! Kind of boundary conditions for standard variables
itypfb(ifac) = ientre
! zone's number (from 1 to n)
izone = 2
! Assign zone number to the face
izfppp(ifac) = izone
! For this inlet, mass flux is fixed
! The speed direction is given
! (speed vector norm is irrelevant)
ientcp(izone) = 1
iqimp(izone) = 1
rcodcl(ifac,iu,1) = 0.d0
rcodcl(ifac,iv,1) = 0.d0
rcodcl(ifac,iw,1) = 5.d0
! Oxidizer's number (1 to 3)
inmoxy(izone) = 1
! Oxidizer's mass flow rate in kg/s
qimpat(izone) = 1.46d-03
! Oxidizer's Temperature in K
timpat(izone) = 800.d0 + tkelvi
! Coal inlet, initialization
do icha = 1, ncharm
qimpcp(izone,icha) = zero
timpcp(izone,icha) = zero
do iclapc = 1, ncpcmx
distch(izone,icha,iclapc) = zero
enddo
enddo
! code_saturne deals with NCHA different coals (component of blend)
! every coal is described by NCLPCH(icha) class of particles
! (each of them described by an inlet diameter)
! Treatment for the first coal
icha = 1
! Coal mass flow rate in kg/s
qimpcp(izone,icha) = 1.46d-4
! Percentage mass fraction of each granulometric class
do iclapc = 1, nclpch(icha)
distch(izone,icha,iclapc) = 100.d0/dble(nclpch(icha))
enddo
! Inlet temperature for coal & primary air
timpcp(izone,icha) = 800.d0 + tkelvi
! Turbulence variables BC's calculated based on icalke(izone):
! - If 1: hydraulic diameter and reference velocity (similar to
! turbulence_bc_inlet_hyd_diam)
! - If 2: hydraulic diameter, reference velocity and turbulence intensity
! (similar to turbulence_bc_inlet_turb_intensity)
! - If 0: must be defined here for all turbulence variables
! (k, epsilon, omega, Rij, ... depending on active model)
icalke(izone) = 1
dh(izone) = 0.1d0
xintur(izone) = 0.1d0
enddo

Example 3

Secondary or tertiary air inlet, for zone 'inlet', using the pulverized coal with moisture model (with Lagrangian particle tracking).

call getfbr('inlet', nlelt, lstelt)
do ilelt = 1, nlelt
ifac = lstelt(ilelt)
! Kind of boundary conditions for standard variables
itypfb(ifac) = ientre
! zone's number (from 1 to n)
izone = 1
! Assign zone number to the face
izfppp(ifac) = izone
! For this inlet, mass flux is fixed
! The speed direction is given
! (speed vector norm is irrelevant)
ientat(izone) = 1
iqimp(izone) = 1
rcodcl(ifac,iu,1) = 0.d0
rcodcl(ifac,iv,1) = 0.d0
rcodcl(ifac,iw,1) = 5.d0
! Oxidizer mass flow rate in kg/s
qimpat(izone) = 1.46d-03
! Oxidizer Temperature in K
timpat(izone) = 400.d0 + tkelvi
! Turbulence variables BC's calculated based on icalke(izone):
! - If 1: hydraulic diameter and reference velocity (similar to
! turbulence_bc_inlet_hyd_diam)
! - If 2: hydraulic diameter, reference velocity and turbulence intensity
! (similar to turbulence_bc_inlet_turb_intensity)
! - If 0: must be defined here for all turbulence variables
! (k, epsilon, omega, Rij, ... depending on active model)
icalke(izone) = 1
dh(izone) = 0.1d0
xintur(izone) = 0.1d0
! Treatment of user-defined scalars
if ((nscal-nscapp).gt.0) then
do ii = 1, (nscal-nscapp)
rcodcl(ifac,isca(ii),1) = 1.d0
enddo
endif
enddo