Extinguish fire after using SPREAD_RATE?

61 views
Skip to first unread message

Ed Wynn

unread,
Oct 4, 2022, 8:34:44 AM10/4/22
to FDS and Smokeview Discussions
Hi,

I like to use SPREAD_RATE for a growing fire, so that the growing patch of the fire uses a full Heat Release Rate Per Unit Area (HRRPUA). It is a frequent scenario for me that a fire grows to a design size, stays at that size for some time, and is then extinguished. Is there any way in FDS to combine this scenario with SPREAD_RATE?

I have tried to combine SPREAD_RATE and RAMP_Q, but the result is that the dying-off phase takes as long as the growth phase. (Sure enough, there is existing advice that "you can't combine a ramp with a spread rate" -- Dave McGill, https://groups.google.com/g/fds-smv/c/PQKCgvUEmkk/m/HgH4Thb-AgAJ. The FDS User Guide, Section 11.4.2, does combine SPREAD_RATE and RAMP_Q, but the text is rather confusing and the results might not be what readers expect. See https://groups.google.com/g/fds-smv/c/FRIg4wEzqjc/m/FwmZ1VsJBAAJ. The problem was explained: "For each grid cell, the T value for the RAMP is taken as the time since the grid cell started burning." -- dr_jfloyd, https://groups.google.com/g/fds-smv/c/AXuhUa-EQfg/m/EtPmnyuWAQAJ" -- so if RAMP_Q specifies that extinguishing starts at t=80, this does not mean t=80 for all facets.)

Is there any way to achieve something similar (spreading growth then sudden extinguishing), short of programming each facet of the fire with an individual ramp?

Assuming this is not possible, I think this is an enhancement request. Other people have also suggested scenarios where more advanced control would be useful -- for example, growth starting at a specified time after t=0: https://groups.google.com/g/fds-smv/c/YZ24iSCYy-U/m/JChYbtwpBQAJ.

I think the most flexible solution (from a user's perspective) would be via RAMP_Q only (not involving SPREAD_RATE), but changed so that RAMP_Q would be achieved by activating/deactivating facets at constant HRRPUA. If the order of priority for facets defined a spiral out from the center, then users could achieve something similar to the current SPREAD_RATE (better, in fact, since growth would be facet-by-facet) just by defining a growing RAMP_Q at the desired time. This would also cover cases with delayed start, and/or later extinguishing, and/or changing growth rate (https://groups.google.com/g/fds-smv/c/8LtX2b71Wh4/m/alNgKXavDgAJ). If the activated facets were those defined in the &SURF, this would also create spreading t^2 growth in a rectangular fire bed, which SPREAD_RATE currently does not achieve at the corners. If we're being greedy, then I'm sure some users would like to have other priority orders, for example in a defined direction to achieve linear fire spread. Individual facets could also have a defined maximum fire load (MJ/m2) and deactivate once their time-integrated HRRPUA hits that limit. I'm sure this is a complicated bunch of programming behind the scenes, but I think it would cover several scenarios desired by users.

Thanks in advance for considering this.
Ed
graphHRR.png
fire0001_0060.png
fire0001.fds.txt

dr_jfloyd

unread,
Oct 4, 2022, 9:34:38 AM10/4/22
to FDS and Smokeview Discussions
This could be done with control functions. You could define your fire as a series of concentric rings (or whatever geometry pattern for spread you need) each with its own RAMP.  The value of that RAMP can then be set to reflect some t^2 growth profile times an extinguishing factor for that particular segment of the fire. The HRRPUA RAMP would just be a linear RAMP. You would need something like:

&SURF ID='FIRE Ring 1',HRRPUA=xxxxxx, RAMP_Q='FIRE Ring 1'/
&RAMP ID='FIRE Ring 1',T=0,F=0,CTRL_ID='FIRE Ring 1 Size'/
&RAMP ID='FIRE Ring 1',T=1,F=1/
&CTRL ID='FIRE Ring 1 Size', FUNCTION_TYPE='MULTIPLY',INPUT_ID='FIRE Ring 1 t2','FIRE Ring 1 Ext'/
&CTRL ID='FIRE Ring 1 t2', FUNCTION_TYPE='CUSTOM',RAMP_ID='FIRE Ring 1 t2 RAMP',INPUT_ID='TIMER'/
...

The RAMP for FIRE Ring 1 t2 RAMP would just be the growth profile for Ring 1 of the burner and the input TIMER would be a TIME DEVC where you probably freeze it once suppression starts.
You would have to build some set of math CTRL functions for FIRE Ring 1 Ext which would reflect the amount to reduce the fire size. It would be 1 before extinguishment starts and then decrease over time as extinguishing takes place.
The CTRL FIRE Ring 1 Size multiplies the t2 RAMP by the extinguishing factor and that value is passed via the FIRE Ring 1 RAMP to the SURF for FIRE Ring 1.

You would need a similar set of functions for the other rings of the burner. 











Reply all
Reply to author
Forward
0 new messages