firemodels / fds

Fire Dynamics Simulator
https://pages.nist.gov/fds-smv/
Other
648 stars 618 forks source link

Make HRRPUL work across meshes #12924

Closed rmcdermo closed 1 month ago

rmcdermo commented 4 months ago

Currently, HRRPUL only integrates across the mesh where the DEVC lives. I think that at this point we need to make this multi-mesh compatible. It is important for diagnostic purposes that we are able to do this easily, and this usually means putting a line of DEVC in the middle of the burner and checking that SUM(HRRPUV*DZ) gives the correct HRR. And we are also wanting more and more to check the grid dependence of HRRPUL(Z) in our attempts to develop grid independent fire growth models.

Here is a simple test case. The burner is 1 m2 and has HRRPUA=100 kW/m2. The _hrr.csv file shows 100 kW. The _line.csv file will integrate to 100 kW if there is 1 mesh. It will integrate to 25 kW if I split the domain into 4 meshes.

test.fds.txt

mcgratta commented 4 months ago

I think this feature can be replicated by the more general approach where we can have a linear array of points, each of which uses SPATIAL_STATs. I'll see.

mcgratta commented 4 months ago
&DEVC XB=0,0,0,0,0.05,1.95, POINTS=20, QUANTITY='HRRPUV', ID='hrrpul', DX=1, DY=1, DZ=0.05, SPATIAL_STATISTIC='VOLUME INTEGRAL' /

This yields the HRR in each horizontal slice. You can get it to print out hrrpul by using a CONVERSION_FACTOR of 0.1 and UNITS='kW/m'

rmcdermo commented 4 months ago

Yep. Works great. Sorry, I did not see that in the user guide.

mcgratta commented 4 months ago

The general methodology was put in after HRRPUL. We should probably remove HRRPUL, but we have to first replace it in all the V&V. I'll do that.

Ranhill commented 4 months ago

Can you please explain a bit about the physical significance of conversion_factor being 0.1 here? I do understand when the conversion_factor is used. But why it is 0.1 here is not clear to me.

mcgratta commented 4 months ago

@Ranhill What are you talking about?

drjfloyd commented 4 months ago

I think he is referring to your post two weeks ago where you wrote:

This yields the HRR in each horizontal slice. You can get it to print out hrrpul by using a CONVERSION_FACTOR of 0.1 and UNITS='kW/m'

mcgratta commented 4 months ago

OK, the CONVERSION_FACTOR is sometimes a convenient way to change units of the output. The 0.1 in this case is related to the particular grid size of this case.

Ranhill commented 4 months ago

Thanks for the answer. Still not clear.

If we are multiplying HRR*grid_length (0.1) then we will get kW.m. Or, we take the conversion factor as 10 (reciprocal of 0.1m).

Otherwise, I think we should get HRRPUA (not HRR) as an output and then multiply it by 0.1(m).

HRRPUA*grid_length = kW/m

mcgratta commented 4 months ago

You may be right. I probably have it backwards.

mcgratta commented 2 months ago

HRRPUL has been replaced by something like this

&DEVC XB=0.0,0.0,0.0,0.0,4.50,337.50, QUANTITY='HRRPUV', DX=72., DY=72., DZ=4.5, SPATIAL_STATISTIC='VOLUME INTEGRAL', POINTS=38, Z_ID='Height', ID='HRR' /

That is, at each POINT, we integrate HRRPUV over a volume that is bounded by x-72<x<x+72, and similar for the other coordinate directions. The result is an array of HRRs, not HRRPUL, but for the purpose of estimating a flame height, we use the PERCENTILE function to figure out that height at which 97% (or whatever) of the total energy lies.