firemodels / cfast

Consolidated Model of Fire and Smoke Transport
Other
69 stars 67 forks source link

CFAST seems to create a door jet fire where none is needed #1187

Closed rpeacoc closed 5 years ago

rpeacoc commented 6 years ago

The two attached cases give very different answers going from version 7.1 to 7.3. There seems to be plenty of oxygen in the compartment so it's not clear why it's limiting burning in the room and creating a door jet fire with 7.3.

71v73

Test1_v7.1.txt Test3_v7.3.txt

rpeacoc commented 6 years ago

The two supplied input files are an original .csv format input file and a newer namelist input file created from that original .csv file. If you run the .csv input file with CFAST 7.3, it fails as well so it's not an issue with the namelist input. We can just focus on the .csv input file for now and use only the Test1_v7.1.txt (.in) file for testing.

wnt2 commented 6 years ago

Looking at the oxygen value in _s.csv, it seems that somehow CFAST 7.3 has 100 times less oxygen to start up with for the simulation.

rpeacoc commented 6 years ago

That sounds like a percent versus fraction conversion

Sent from my iPhone

On Oct 5, 2018, at 2:50 PM, Andy Tam notifications@github.com wrote:

Looking at the oxygen value in _s.csv, it seems that somehow CFAST 7.3 has 100 times less oxygen to start up with for the simulation.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

rpeacoc commented 6 years ago

I don't see the difference by a factor of 100. Are you running both with -v (which should convert to mole fraction, O2 ~ 0.20) or without -v (which leaves species in volume percent, O2 ~ 20%).

rpeacoc commented 6 years ago

Last commit that actually works with this file is 8279e214 on 12/22/17. Between there and 3ee80214 on 4/3/18, this file gives a DASSL error at 640-650 s. Beginning with 3ee80214, it runs again, but gives an incorrect answer.

rpeacoc commented 6 years ago

Here's a simpler example that still works in 7.2.4 and fails in 7.3.0 HiHRR.txt

wnt2 commented 6 years ago

I went into the code again and I think the discrepancy from the two versions is caused by the new lines added into the chemistry subroutine within fire.f90. They are:

if (-net_o2 > o2_available) then
    factor = -o2_available/net_o2
    pyrolysis_rate_constrained = factor*pyrolysis_rate_constrained
    hrr_constrained = factor*hrr_constrained
    net_fuel = factor*net_fuel
    net_o2 = factor*net_o2
    net_co2 = factor*net_co2
    net_co = factor*net_co
    net_h2o = factor*net_h2o
    net_hcl = factor*net_hcl
    net_hcn = factor*net_hcn
    net_soot = factor*net_soot
    net_soot_flaming = factor*net_soot_flaming
    net_soot_smolder = factor*net_soot_smolder
end if 

So, if you comment out the factor and make it to be factor = 1._eb. The results from CFAST 7.3.0 will be similar to the older version of CFAST.

I rethink a little bit and the output difference could be due to change made on the conversion in the output spreadsheet. So, please kindly ignore them.

rpeacoc commented 6 years ago

This actually seems to be correct behavior. Latest version added code to make sure the combustion is better consistent with that available in the plume rather than just in the layer. If the heat of combustion is wildly inconsistent with the chemical formula, the resulting consumption of oxygen mass can lead to underventilated burning. In this test case, changing the heat of combustion to be consistent with the chemical formula (methane) makes the problem go away.

Conversely, changing the chemical formula to be more consistent with the input heat of combustion rightly leads to underventilated burning.

Still verifying upper layer burning in this case.

rpeacoc commented 5 years ago

Prior to 7.3, the burning rate at the lower oxygen limit was based on the oxygen concentration in the lower layer alone. In 7.3, it was changed to checking both the layer oxygen concentration and the actual amount of oxygen in the plume for burning. This fixed a problem with the lower layer oxygen concentration attempting to go below zero in severely oxygen limited cases. The fire still burns, just not as much from the original lower layer plume. The change is by design.