Skip to content

Commit eaf6fc2

Browse files
committed
FDS Source: Add diluents to AFT calculation
1 parent 893fae4 commit eaf6fc2

File tree

1 file changed

+36
-14
lines changed

1 file changed

+36
-14
lines changed

Source/fire.f90

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1187,18 +1187,36 @@ SUBROUTINE CALC_AFT_REAC_AND_PROD(ZZ,ZZ_REAC,ZZ_PROD)
11871187
REAL(EB), INTENT(IN) :: ZZ(N_TRACKED_SPECIES)
11881188
REAL(EB), INTENT(OUT) :: ZZ_REAC(N_TRACKED_SPECIES),ZZ_PROD(N_TRACKED_SPECIES)
11891189
REAL(EB) :: EQUIV, X,Y,Z,A,B,C,D,E, SUM_ZZ
1190-
1190+
REAL(EB) :: ZZ_MASS, ZZ_FUEL_O2_MASS
1191+
REAL(EB) :: REAC_MASS, PROD_MASS, FUEL_MASS, O2_MASS, CO2_MASS, H2O_MASS
1192+
INTEGER :: NS
11911193

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

1197-
! Based on CxHyOz + a(O2+3.76N2) = bCO2 + cH2O + dCxHyOz + eO2 + 3.76aN2
1199+
! Adjust for diluents
1200+
ZZ_FUEL_O2_MASS = 0.0_EB
1201+
ZZ_MASS = SUM(ZZ(1:N_TRACKED_SPECIES))
1202+
ZZ_REAC(1:N_TRACKED_SPECIES) = ZZ(1:N_TRACKED_SPECIES)
1203+
ZZ_PROD(1:N_TRACKED_SPECIES) = ZZ(1:N_TRACKED_SPECIES)
1204+
DO NS=1, N_TRACKED_SPECIES
1205+
IF (SPECIES_MIXTURE(NS)%OXR > 0.0_EB) THEN ! FUEL
1206+
ZZ_REAC(NS) = 0.0_EB
1207+
ZZ_PROD(NS) = 0.0_EB
1208+
ZZ_FUEL_O2_MASS = ZZ_FUEL_O2_MASS + ZZ(NS)
1209+
ENDIF
1210+
ENDDO
1211+
ZZ_REAC(I_O2) = 0.0_EB
1212+
ZZ_PROD(I_O2) = 0.0_EB
1213+
ZZ_FUEL_O2_MASS = ZZ_FUEL_O2_MASS + ZZ(I_O2)
1214+
1215+
! Based on CxHyOz + aO2 = bCO2 + cH2O + dCxHyOz + eO2
11981216
X=SPECIES_MIXTURE(I_FUEL)%ATOMS(6) !C
11991217
Y=SPECIES_MIXTURE(I_FUEL)%ATOMS(1) !H
12001218
Z=SPECIES_MIXTURE(I_FUEL)%ATOMS(8) !O
1201-
A=0.5_EB*((2.0_EB*X+0.5_EB*Y)/EQUIV -Z)
1219+
A=0.5_EB*((2.0_EB*X+0.5_EB*Y)/EQUIV -Z) ! a is a function of equivalence ratio
12021220
IF(ABS(EQUIV - 1.0_EB) <1E-3_EB) THEN ! Stoich
12031221
B = X
12041222
C = 0.5_EB*Y
@@ -1217,25 +1235,29 @@ SUBROUTINE CALC_AFT_REAC_AND_PROD(ZZ,ZZ_REAC,ZZ_PROD)
12171235
ENDIF
12181236

12191237
! Setup reactants
1220-
ZZ_REAC = 0.0_EB
1221-
ZZ_REAC(I_FUEL)=1._EB*SPECIES_MIXTURE(I_FUEL)%MW
1222-
ZZ_REAC(I_O2)=A*SPECIES_MIXTURE(I_O2)%MW
1223-
ZZ_REAC(I_N2)=3.76*A*SPECIES_MIXTURE(I_N2)%MW
1238+
FUEL_MASS = 1._EB*SPECIES_MIXTURE(I_FUEL)%MW
1239+
O2_MASS = A*SPECIES_MIXTURE(I_O2)%MW
1240+
REAC_MASS = FUEL_MASS+O2_MASS
1241+
ZZ_REAC(I_FUEL)=FUEL_MASS/REAC_MASS*ZZ_FUEL_O2_MASS
1242+
ZZ_REAC(I_O2)=O2_MASS/REAC_MASS*ZZ_FUEL_O2_MASS
12241243
SUM_ZZ=SUM(ZZ_REAC)
12251244
ZZ_REAC = ZZ_REAC/SUM_ZZ
12261245

12271246
! Setup products
1228-
ZZ_PROD = 0.0_EB
1229-
ZZ_PROD(I_CO2)=B*SPECIES_MIXTURE(I_CO2)%MW
1230-
ZZ_PROD(I_H2O)=C*SPECIES_MIXTURE(I_H2O)%MW
1231-
ZZ_PROD(I_FUEL)=D*SPECIES_MIXTURE(I_FUEL)%MW
1232-
ZZ_PROD(I_O2)=E*SPECIES_MIXTURE(I_O2)%MW
1233-
ZZ_PROD(I_N2)=3.76_EB*A*SPECIES_MIXTURE(I_N2)%MW
1247+
CO2_MASS = B*SPECIES_MIXTURE(I_CO2)%MW
1248+
H2O_MASS = C*SPECIES_MIXTURE(I_H2O)%MW
1249+
FUEL_MASS = D*SPECIES_MIXTURE(I_FUEL)%MW
1250+
O2_MASS = E*SPECIES_MIXTURE(I_O2)%MW
1251+
PROD_MASS = CO2_MASS+H2O_MASS+FUEL_MASS+O2_MASS
1252+
ZZ_PROD(I_CO2)=ZZ_PROD(I_CO2)+CO2_MASS/PROD_MASS*ZZ_FUEL_O2_MASS
1253+
ZZ_PROD(I_H2O)=ZZ_PROD(I_H2O)+H2O_MASS/PROD_MASS*ZZ_FUEL_O2_MASS
1254+
ZZ_PROD(I_FUEL)=FUEL_MASS/PROD_MASS*ZZ_FUEL_O2_MASS
1255+
ZZ_PROD(I_O2)=O2_MASS/PROD_MASS*ZZ_FUEL_O2_MASS
12341256
SUM_ZZ=SUM(ZZ_PROD)
12351257
ZZ_PROD = ZZ_PROD/SUM_ZZ
12361258

1237-
12381259
END SUBROUTINE CALC_AFT_REAC_AND_PROD
1260+
12391261
#endif
12401262

12411263
SUBROUTINE CHECK_AUTO_IGNITION(EXTINCT,TMP_IN,AIT,IIC,JJC,KKC,REAC_INDEX)

0 commit comments

Comments
 (0)