Calculating Flame Height, Flame tilt and Flame Length

368 views
Skip to first unread message

Marina Simó Martí

unread,
Nov 17, 2022, 4:31:04 AM11/17/22
to FDS and Smokeview Discussions
Hi,
I am using the example script provided in section "21.10.6 Flame Height and Flame Tilt" of FDS USer's Guide, but  don't know how to adjust it to my own case.

The script provided computes Flame Height, then Flame tilt angle and finally Flame length using a set of DEVC and CTRL functions. It is shown below:

"Suppose you are simulating a fire in a domain that is 10 m high with a grid resolution of 0.2 m. The fire is centered about the point (x;y) = (0;0) at z = 0. The following input lines compute the flame height and tilt:

&DEVC ID='HRR', Z_ID='z', XBP=0.0,0.0,0.0,0.0,0.1,9.9, QUANTITY='HRRPUV',
SPATIAL_STATISTIC='VOLUME INTEGRAL', DX=5, DY=5, DZ=0.1, POINTS=100,
STATISTICS_START=10. /
&CTRL ID='H', FUNCTION_TYPE='PERCENTILE', INPUT_ID='HRR', PERCENTILE=0.97 /
&DEVC ID='x_max', XB=-5,5,-5,5,9.0,9.2, QUANTITY='TEMPERATURE', SPATIAL_STATISTIC='MAXLOC X' /
&DEVC ID='y_max', XB=-5,5,-5,5,9.0,9.2, QUANTITY='TEMPERATURE', SPATIAL_STATISTIC='MAXLOC Y' /
&CTRL ID='x2', FUNCTION_TYPE='POWER', INPUT_ID='x_max','CONSTANT', CONSTANT=2 /
&CTRL ID='y2', FUNCTION_TYPE='POWER', INPUT_ID='y_max','CONSTANT', CONSTANT=2 /
&CTRL ID='r2', FUNCTION_TYPE='SUM', INPUT_ID='x2','y2' /
&CTRL ID='r', FUNCTION_TYPE='POWER', INPUT_ID='r2','CONSTANT', CONSTANT=0.5 /
&CTRL ID='r/9', FUNCTION_TYPE='DIVIDE', INPUT_ID='d','CONSTANT', CONSTANT=9 /
&CTRL ID='tilt_rad', FUNCTION_TYPE='ATAN', INPUT_ID='r/9' /
&CTRL ID='tilt_deg', FUNCTION_TYPE='MULTIPLY', INPUT_ID='tilt_rad','CONSTANT',
CONSTANT=57.296 /
&CTRL ID='cos_theta', FUNCTION_TYPE='COS', INPUT_ID='tilt_rad' /
&CTRL ID='L', FUNCTION_TYPE='DIVIDE', INPUT_ID='H','cos_theta' /
&DEVC ID='L_F', CTRL_ID='L', XYZ=0,0,0, QUANTITY='CONTROL VALUE',
TEMPORAL_STATISTIC='RUNNING AVERAGE', STATISTICS_START=10, UNITS='m' /
&DEVC ID='tilt', CTRL_ID='tilt_deg', XYZ=0,0,0, QUANTITY='CONTROL VALUE',
TEMPORAL_STATISTIC='RUNNING AVERAGE', STATISTICS_START=10, UNITS='deg' /  "


My questions are:
1. Why the XB volume only considers the z domain from 9.0 to 9.2 and not the whole Z domain? Would I have to adjust it to my own simulation and how (if my mesh has different dimensions)?

2. Line 9, where the r/9 is computed. Why is this 9 used? Why isn't the actual height for the maximum temperature previously calculated?.

3. The devc and ctrl are placed on the 0,0,0 location given that the fire is also placed there. If my fire doesn't origin in that point, do I have to change those values or it doesn't matter and the calculations consider anyway the whole domain to find the max Temperature values ?

Best regards,
Marina


dr_jfloyd

unread,
Nov 17, 2022, 8:13:52 AM11/17/22
to FDS and Smokeview Discussions
1. You are looking to compute the flame tilt.  The MAXLOC function just gives the coordinate of the center of the grid cell with the maximum value. If you made the XB the entire domain then the highest temperature would be low in the domain near the edge of the burner and you would not have the correct tilt. 
2. You could change the formula to also use the actual z and get a slightly more precise result.
3. In this case a coordinate is not needed. For control function and HAC output quantities, you do not have to specify an XYZ. If you do specify one, all that matters is that it be somewhere in the domain.

Marina Simó Martí

unread,
Nov 17, 2022, 10:01:34 AM11/17/22
to FDS and Smokeview Discussions
Alright, thank you, now it makes more sense.

However, would you use another method to calculate these parameters?

Kevin McGrattan

unread,
Nov 17, 2022, 10:05:31 AM11/17/22
to fds...@googlegroups.com
Put a protractor on the computer screen.

mohamad sadegh sadeghi

unread,
Oct 29, 2023, 6:26:49 PM10/29/23
to FDS and Smokeview Discussions
Hi, 

I am trying to calculate the flame height and tilt for the excelsior particles on the sloped test bed (say 15 degrees). My question is that what should be the reference height for my case to be able to capture the correct tilt and height from the beginning of the test bed to the end (considering the fact that the height of the test bed changes)? here is the code I am trying to use for my case (in this case I use 0.8 as the reference height): 

---flame height and tilt angle-----

&DEVC ID='HRR', Z_ID='z', XBP=-1.9,-1.9,0.5,0.5,0.1,2.4, QUANTITY='HRRPUV',
SPATIAL_STATISTIC='VOLUME INTEGRAL', DX=2.0, DY=1, DZ=0.05, POINTS=44,
STATISTICS_START=2. /

&CTRL ID='H', FUNCTION_TYPE='PERCENTILE', INPUT_ID='HRR', PERCENTILE=0.97 /

&DEVC ID='x_max', XB=-1.9,0.0,0.0,1.0,0.80,0.82, QUANTITY='TEMPERATURE',
SPATIAL_STATISTIC='MAXLOC X' /
&DEVC ID='y_max', XB=-1.9,0.0,0.0,1.0,0.80,0.82, QUANTITY='TEMPERATURE',
SPATIAL_STATISTIC='MAXLOC Y' /
&DEVC ID='z_max', XB=-1.9,0.0,0.0,1.0,0.00,2.4, QUANTITY='TEMPERATURE',
SPATIAL_STATISTIC='MAXLOC Z' /

&DEVC ID='x_center', XB=-1.9,0.0,0.0,1.0,0.80,0.82, QUANTITY='HRRPUV',
SPATIAL_STATISTIC='MAXLOC X' /
&DEVC ID='y_center', XB=-1.9,0.0,0.0,1.0,0.80,0.82, QUANTITY='HRRPUV',
SPATIAL_STATISTIC='MAXLOC Y' /
&DEVC ID='z_center', XB=-1.9,0.0,0.0,1.0,0.00,2.4, QUANTITY=' HRRPUV  ',
SPATIAL_STATISTIC='MAXLOC Z' /

&CTRL ID='x3', FUNCTION_TYPE='SUBTRACT', INPUT_ID='x_max','x_center' /
&CTRL ID='y3', FUNCTION_TYPE='SUBTRACT', INPUT_ID='y_max','y_center' /

&CTRL ID='x2', FUNCTION_TYPE='POWER', INPUT_ID='x3','CONSTANT', CONSTANT=2 /
&CTRL ID='y2', FUNCTION_TYPE='POWER', INPUT_ID='y3','CONSTANT', CONSTANT=2 /

&CTRL ID='r2', FUNCTION_TYPE='SUM', INPUT_ID='x2','y2' /

&CTRL ID='r', FUNCTION_TYPE='POWER', INPUT_ID='r2','CONSTANT', CONSTANT=0.5 /
&CTRL ID='rr', FUNCTION_TYPE='DIVIDE', INPUT_ID='r','CONSTANT', CONSTANT=0.8 /
&CTRL ID='tilt_rad', FUNCTION_TYPE='ATAN', INPUT_ID='rr' /

&CTRL ID='tilt_deg', FUNCTION_TYPE='MULTIPLY', INPUT_ID='tilt_rad','CONSTANT',
CONSTANT=57.296 /
&CTRL ID='cos_theta', FUNCTION_TYPE='COS', INPUT_ID='tilt_rad' /
&CTRL ID='L', FUNCTION_TYPE='DIVIDE', INPUT_ID='H','cos_theta' /
&DEVC ID='L_F', CTRL_ID='L', XYZ=-1.9,0.5,0, QUANTITY='CONTROL VALUE',
TEMPORAL_STATISTIC='RUNNING AVERAGE', STATISTICS_START=2, UNITS='m' /
&DEVC ID='tilt', CTRL_ID='tilt_deg', XYZ=-1.9,0.5,0, QUANTITY='CONTROL VALUE',
TEMPORAL_STATISTIC='RUNNING AVERAGE', STATISTICS_START=2, UNITS='deg' /
&DEVC ID='F_H', CTRL_ID='H', XYZ=-1.9,0.5,0, QUANTITY='CONTROL VALUE',
TEMPORAL_STATISTIC='RUNNING AVERAGE', STATISTICS_START=2, UNITS='m' /


Thanks. 

dr_jfloyd

unread,
Oct 30, 2023, 6:06:51 AM10/30/23
to FDS and Smokeview Discussions
I don't know that there is a good way to do what you need using DEVC and CTRL in FDS.  This may be something you need to use slice file data and code up in python or matlab or just do visually.

FDS_user

unread,
Feb 20, 2024, 9:08:14 AM2/20/24
to FDS and Smokeview Discussions
Hello dr_jfloyd!

Can you please tell me from where does 9.0 to 9.2 as an estimate come from (see below)? I understand that as you explained above such computation should not be done at bottom. But as your domain ends at z=10m (in user guide section 22.10.6), has there been some estimation that the flame ends between 9.0 and 9.2? --Thanks!

&DEVC ID='x_max', XB=-5,5,-5,5,9.0,9.2, QUANTITY='TEMPERATURE',
SPATIAL_STATISTIC='MAXLOC X' /
&DEVC ID='y_max', XB=-5,5,-5,5,9.0,9.2, QUANTITY='TEMPERATURE',
SPATIAL_STATISTIC='MAXLOC Y' /

Kevin

unread,
Feb 20, 2024, 10:19:01 AM2/20/24
to FDS and Smokeview Discussions
Imagine that you have a horizontal slice through the plume, somewhere near the top. You seek to find where along this slice the temperature is a maximum. You call that the plume centerline.

FDS_user

unread,
Feb 20, 2024, 11:51:29 AM2/20/24
to FDS and Smokeview Discussions
thanks for the response! As far as I can understand, in this case as the fire is centered at (0,0,0) and remains undisturbed from any air flow, the plume centerline will be approximately a straight line going from (0,0,0) to (0,0,10). Putting a vertical slice file at x=0 or y=0 will show the temperature profile. I still do not get the use of horizontal slice somewhere near the top, how close to top or how below the top...etc.. Can you please elaborate?

Kevin

unread,
Feb 20, 2024, 11:53:46 AM2/20/24
to FDS and Smokeview Discussions
The max temperature on the horizontal slice is for calculating flame tilt when the fire is blown by a wind.

FDS_user

unread,
Feb 22, 2024, 3:40:37 AM2/22/24
to FDS and Smokeview Discussions
But then in that case one need some initial guess where is flame is about to end to put such horizontal slices. And in th case where, for example, many trees are burning together randomly, such intial estimation could be really difficult I guess. Any advice for such situation, please!

dr_jfloyd

unread,
Feb 22, 2024, 9:35:31 AM2/22/24
to FDS and Smokeview Discussions
You might be able to do something similar using HRRPUV and QUANTITY_RANGE. Set some lower bound to QUANTITY_RANGE to represent a reasonable stab at the visible flame. You don't want 0 as the lower bound as you don't want a grid cell with 1E-20 kW/m3 defining the flame location. You may need to run a simulation with your grid looking at HRRPUA and TEMPERATURE in your domain to figure out what the lower bound should be.

FDS_user

unread,
Feb 22, 2024, 9:45:30 AM2/22/24
to FDS and Smokeview Discussions
Thanks, dr_jfloyd! I will check that way first.
Reply all
Reply to author
Forward
0 new messages