Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 36 additions & 14 deletions Source/fire.f90
Original file line number Diff line number Diff line change
Expand Up @@ -1187,18 +1187,36 @@ SUBROUTINE CALC_AFT_REAC_AND_PROD(ZZ,ZZ_REAC,ZZ_PROD)
REAL(EB), INTENT(IN) :: ZZ(N_TRACKED_SPECIES)
REAL(EB), INTENT(OUT) :: ZZ_REAC(N_TRACKED_SPECIES),ZZ_PROD(N_TRACKED_SPECIES)
REAL(EB) :: EQUIV, X,Y,Z,A,B,C,D,E, SUM_ZZ

REAL(EB) :: ZZ_MASS, ZZ_FUEL_O2_MASS
REAL(EB) :: REAC_MASS, PROD_MASS, FUEL_MASS, O2_MASS, CO2_MASS, H2O_MASS
INTEGER :: NS

CALL CALC_EQUIV_RATIO(ZZ(1:N_TRACKED_SPECIES), EQUIV)
IF (SIM_MODE /= DNS_MODE .AND. USE_MIXED_ZN_AFT_TMP) THEN
EQUIV = MAX(1.0_EB,EQUIV)
ENDIF

! Based on CxHyOz + a(O2+3.76N2) = bCO2 + cH2O + dCxHyOz + eO2 + 3.76aN2
! Adjust for diluents
ZZ_FUEL_O2_MASS = 0.0_EB
ZZ_MASS = SUM(ZZ(1:N_TRACKED_SPECIES))
ZZ_REAC(1:N_TRACKED_SPECIES) = ZZ(1:N_TRACKED_SPECIES)
ZZ_PROD(1:N_TRACKED_SPECIES) = ZZ(1:N_TRACKED_SPECIES)
DO NS=1, N_TRACKED_SPECIES
IF (SPECIES_MIXTURE(NS)%OXR > 0.0_EB) THEN ! FUEL
ZZ_REAC(NS) = 0.0_EB
ZZ_PROD(NS) = 0.0_EB
ZZ_FUEL_O2_MASS = ZZ_FUEL_O2_MASS + ZZ(NS)
ENDIF
ENDDO
ZZ_REAC(I_O2) = 0.0_EB
ZZ_PROD(I_O2) = 0.0_EB
ZZ_FUEL_O2_MASS = ZZ_FUEL_O2_MASS + ZZ(I_O2)

! Based on CxHyOz + aO2 = bCO2 + cH2O + dCxHyOz + eO2
X=SPECIES_MIXTURE(I_FUEL)%ATOMS(6) !C
Y=SPECIES_MIXTURE(I_FUEL)%ATOMS(1) !H
Z=SPECIES_MIXTURE(I_FUEL)%ATOMS(8) !O
A=0.5_EB*((2.0_EB*X+0.5_EB*Y)/EQUIV -Z)
A=0.5_EB*((2.0_EB*X+0.5_EB*Y)/EQUIV -Z) ! a is a function of equivalence ratio
IF(ABS(EQUIV - 1.0_EB) <1E-3_EB) THEN ! Stoich
B = X
C = 0.5_EB*Y
Expand All @@ -1217,25 +1235,29 @@ SUBROUTINE CALC_AFT_REAC_AND_PROD(ZZ,ZZ_REAC,ZZ_PROD)
ENDIF

! Setup reactants
ZZ_REAC = 0.0_EB
ZZ_REAC(I_FUEL)=1._EB*SPECIES_MIXTURE(I_FUEL)%MW
ZZ_REAC(I_O2)=A*SPECIES_MIXTURE(I_O2)%MW
ZZ_REAC(I_N2)=3.76*A*SPECIES_MIXTURE(I_N2)%MW
FUEL_MASS = 1._EB*SPECIES_MIXTURE(I_FUEL)%MW
O2_MASS = A*SPECIES_MIXTURE(I_O2)%MW
REAC_MASS = FUEL_MASS+O2_MASS
ZZ_REAC(I_FUEL)=FUEL_MASS/REAC_MASS*ZZ_FUEL_O2_MASS
ZZ_REAC(I_O2)=O2_MASS/REAC_MASS*ZZ_FUEL_O2_MASS
SUM_ZZ=SUM(ZZ_REAC)
ZZ_REAC = ZZ_REAC/SUM_ZZ

! Setup products
ZZ_PROD = 0.0_EB
ZZ_PROD(I_CO2)=B*SPECIES_MIXTURE(I_CO2)%MW
ZZ_PROD(I_H2O)=C*SPECIES_MIXTURE(I_H2O)%MW
ZZ_PROD(I_FUEL)=D*SPECIES_MIXTURE(I_FUEL)%MW
ZZ_PROD(I_O2)=E*SPECIES_MIXTURE(I_O2)%MW
ZZ_PROD(I_N2)=3.76_EB*A*SPECIES_MIXTURE(I_N2)%MW
CO2_MASS = B*SPECIES_MIXTURE(I_CO2)%MW
H2O_MASS = C*SPECIES_MIXTURE(I_H2O)%MW
FUEL_MASS = D*SPECIES_MIXTURE(I_FUEL)%MW
O2_MASS = E*SPECIES_MIXTURE(I_O2)%MW
PROD_MASS = CO2_MASS+H2O_MASS+FUEL_MASS+O2_MASS
ZZ_PROD(I_CO2)=ZZ_PROD(I_CO2)+CO2_MASS/PROD_MASS*ZZ_FUEL_O2_MASS
ZZ_PROD(I_H2O)=ZZ_PROD(I_H2O)+H2O_MASS/PROD_MASS*ZZ_FUEL_O2_MASS
ZZ_PROD(I_FUEL)=FUEL_MASS/PROD_MASS*ZZ_FUEL_O2_MASS
ZZ_PROD(I_O2)=O2_MASS/PROD_MASS*ZZ_FUEL_O2_MASS
SUM_ZZ=SUM(ZZ_PROD)
ZZ_PROD = ZZ_PROD/SUM_ZZ


END SUBROUTINE CALC_AFT_REAC_AND_PROD

#endif

SUBROUTINE CHECK_AUTO_IGNITION(EXTINCT,TMP_IN,AIT,IIC,JJC,KKC,REAC_INDEX)
Expand Down
Loading