firemodels / fds

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

new RADIATION quantities #5317

Closed vincasci closed 7 years ago

vincasci commented 7 years ago

Dear Kevin, as we discussed these days at Summer School, I remember you the need of a new quantity, to track MAXIMUM RADIATION (absolute vector). This quantity should show the maximum intensity of the radiation on a point, that is the maximum between the radiation flux vectors coming from any direction from the solid angle 4 pi. This could be possible, as at the moment FDS gives the INTEGRATED INTENSITY, that is the radiation intensity integrated over the 4 pi solid angle. Therefore I think that in one part of the code, there is the information of the radiation coming from each direction on a certain point.

In addition, if possible, it could be useful to track which is the direction of this vector of maximum intensity on that point. With this information, you can also calculate another quantity, similar to "RADIATIVE HEAT FLUX GAS" (that needs a direction to be calculated): you can use the direction of maximun radiation intensity (es. DIR_RAD_MAX) as an input for a new quantity (as for example "MAX RADIATIVE HEAT FLUX GAS"). This is different with respect to the quantity stated before (MAXIMUM RADIATION), because this new quantity ("MAX RADIATIVE HEAT FLUX GAS") consider all the contribution of the radiation coming on a surface having the direction DIR_RAD_MAX as a normal. The quantity "MAX RADIATIVE HEAT FLUX GAS" should be useful both as device and as a slice file. In this way I could evaluate the maximum radiation coming on the head of people (that doesn't have a preferential direction to be radiated) and I can evaluate the area where the radiation could ignite other materials, spreading the fire. Please ask me everything you want if this description was not so intelligible..

Thanks for your continue effort

Vincenzo

Er9y714 commented 7 years ago

I do not aim for discussion, I only would like to understand better. If I understood correctly, you would like to measure radiative flux coming from 4pi solid angle at a point in space. Current feature (defining orientation) is not enough because it does not cover 4pi angle?

If this is the case, I remember a discussion in the message board and it was referring to the fact that no surface of a person is exposed to 4pi angle. Therefore, 4 pi was not deemed as appropriate for the evacuation purpose.

mcgratta commented 7 years ago

This might be trickier than I thought. At a given point, and for a given orientation, FDS sums N/2 rays and weights each ray with the cosine of the ray direction and the given orientation. N is the total number of angles, so N/2 is the number of rays that can strike a plate at the given orientation. What you want is the maximum value of this summation over all 4 pi solid angles. I do not know of a simple way to do this?

Simo, what do you think?

shostikk commented 7 years ago

I think this can be done with particles: Reserve ANGLE_INCREMENT (or N_SPECTRAL_BANDS) array IL for the particle.

In the beginning of the UPDATE_LOOP: DO IP=1,NLP IF (LP%something) LP%ONE_D%IL(ANGLE_INC_COUNTER) = 0._EB ENDDO

Then in the intensity sweep: PARTICLE_RADIATION_LOOP: DO IP=1,NLP IF (LP%ONE_D%IL(IBND) = MAX(LP%ONE_D%IL(IBND),IL(LP%ONE_D%IIG,LP%ONE_D%JJG,LP%ONE_D%KKG) ENDDO PARTICLE_RADIATION_LOOP

Slice file would be much easy to calculate but would require 4D array of size IBAR x JBAR x KBAR x ANGLE_ICREMENT. You know, the intensities in each direction are not saved in 3D. (Or, can we save just the slice-cells as an array for post-processing purposes?)

mcgratta commented 7 years ago

Don't we have to sum over 2 pi angles for each orientation and then take the max value?

shostikk commented 7 years ago

Yes, if we actually want heat flux. But that would be very expensive - taking maximum of all possible 2pi sums. (NRA**2)/2 operations at each location!

I thought we just want maximum intensity (maximum radiance) and use that as an upper-limit approximation for maximum heat flux.

vincasci commented 7 years ago

I think that it could be useful to have the maximum radiance as the maximum intensity, to use as an upper-limit approximation for maximum heat flux. It could be used for monitoring the behaviour of radiation with slice files both for pedestrians and for fire propagation issues.

In addition to what has already been said, for more accurate applications, it could be useful also to release (as a new QUANTITY), the direction of origin of this highest intensity of radiation. This could be used as a DEVICE, since it could be an array of the 3 direction cosines. This could help to individuate the exact origin of the highest radiation flux on a specific point.

Thanks for your support

mcgratta commented 7 years ago

Simo -- if we determine the maximum value of IL(I,J,K) in every cell IJK, how is one to interpret this in terms of heat flux? Do we just multiple this value by pi? For example, if the walls of a compartment are all a uniform temperature of T, I expect the max IL in any cell to be sigma*T^4/pi. Do you just want to report this value as 'MAXIMUM INTENSITY'? Or shall we multiply this value by pi?

vincasci commented 7 years ago

Kevin -- If the 'MAXIMUM INTENSITY' will be computed as you stated before, I think that it could be useful to subtract it the offset of 1.67 kW/m2, that is sigma*(293 K)^4 (as it was necessary using the quantity "INTEGRATED INTENSITY"). This it is important when you want to show the results of the slice file and the comparison with a specified threshold (as for example 2.5 kW/m2 for pedestrians).

shostikk commented 7 years ago

@mcgratta: I would just report that as maximum intensity, without PI multiplication. Calculating something like a flux from this is a strong approximation, and must be user's responsibility. This is quite advanced output, IMO.

@vincasci : No, subtracting threshold is, again, user's interpretation of the output. (Besides, have you seen somewhere a definition of the human heat flux threshold that spesifies if background heat flux should be subtracted or not?)

If we want to make an EVAC -related output that simulates maximum possible net heat flux, then we should name it something else to make clear it is not a fundamental computational result, such as intensity.

mcgratta commented 7 years ago

Problem -- here is a case where I heat a single wall to 1000 C and record the max value of IL (intensity) at all grid cells. This gives me a misleading idea of what the max radiation is going to be at a given point. I would expect the max value of radiative flux to drop off away from the center line. The max value of kW/m2/sr will in theory persist infinitely far from the wall. The radiation solver is working correctly. The value of 47.4 kW/m2/sr is sigma*T^4/pi. max_intensity_0080

shostikk commented 7 years ago

I agree. Misleading. Using max(IL) as an indication of heat flux is not going to work.

Can we afford to do the angular integration at every point to get a heat flux to an arbitrary surface? A faster, approximative version of the angular integral could be made using the dot products of the direction vectors. For control angles, we do not have the average (control angle center) direction vectors available at the moment, but we could.

rmcdermo commented 7 years ago

If we go through the work to do this, any chance we could again consider making it work for an arbitrary point outside the domain as well?

mcgratta commented 7 years ago

Unfortunately, no. You can see from the picture above the danger of tracking radiative intensity along the various angles.

I suggest a partial solution for the original problem. Instead of a slice file of max radiative heat flux, do the following:

&OBST XB=0.1,0.2,0.1,0.2,1.9,2.0, MULT_ID='flux' /
&MULT ID='flux', DX=1., DY=1., I_UPPER=20, J_UPPER=20 /
&BNDF QUANTITY='GAUGE HEAT FLUX', CELL_CENTERED=.TRUE. /

These lines create an array of small cubes, which can be made the same size as a grid cell at a height of 2 m off the floor, colored by heat flux. You could use Smokeview to visually inspect to see the maximum heat flux, or you could create a single device for each mesh:

&DEVC ID='max HF', XB=..., STATISTICS='MAX', QUANTITY='GAUGE HEAT FLUX' /
vincasci commented 7 years ago

@mcgratta: the way that you propose can't be applied when you deal with big buildings, since you have to place this array on big surfaces and these obstacles are also an inexistent fluid dynamic obstacle, that can alter the smoke propagation path. I think that these obst have also a radiating shielding effect each other, isn't it? This afternoon I will try to suggest a solution (only a possible logic path) explaining it better with some pictures.

drjfloyd commented 7 years ago

You could place a number of RADIATIVE HEAT FLUX GAS devices. These use particles and don't block the flow. At each location place six devices with one pointing in each direction (up, down, left, right, front, back). In post-processing you can look at the 12 vector sums for pairs of adjacent directions to estimate the maximum flux at a location.

vincasci commented 7 years ago

@drjfloyd: Yes, I can do this, I use this method to have a rough estimation at the moment. But as I discussed with Kevin when we met in Julich, this method has the bad feature that I can't plot slice files, as for the temperature. This is not mandatory, but it is very important for me, because it could show the maximum radiation on a specific plane, where is for example pedestrians or where the fire can propagate by radiation. In other words, using DEVC I can't plot the safe area under a radiation threshold and this is very important for my applications. In addition, you cannot sum the radiation vectors to obtain the maximum flux, since this is a heat flux on a surface, that has a specific orientation. If you consider the head of a pedestrian, it could be assumed as a sphere, that hasn't only 6 faces and only 6 directions. If the maximum flux is not vertical or horizontal, but in an inclined direction (as for example along the diagonal of the inscribed cube), you can't find the maximum radiation using that method. For this reason I asked Kevin to find a way to have the maximum radiation coming from any direction. I will try to explain a logical path of doing this estimation in a specific post.

vincasci commented 7 years ago

NOTE: Assume to perform this method on each point of the slice file plane: Step 1: In each point individuate the maximum value of the incoming radiation in kW/m2/sr, that is the maximum value among the 104 radiation intensity values (104 control angles selected is by default). Step 2: Store in a buffer the value of the alpha, beta angles (or the values of the three direction cosines i, j, k) corresponding to the direction from this maximum radiative intensity value is coming. Step 3: Evaluate in that point the RADIATIVE HEAT FLUX GAS quantity (I mean using a similar FDS routine) using the direction cosines i, j, k stored in the buffer at the step 2. Step 4: Store the value evaluated in step 3 as the MAXIMUM RADIATIVE HEAT FLUX GAS in that point for that time.

In this way you obtain the MAXIMUM RADIATIVE HEAT FLUX GAS in that point, measured in kW/m2. Using the routine of RADIATIVE HEAT FLUX GAS, you are looking to a 2pi solid angle, mediating by cosine all the radiative intensity vectors (as for the Lambert’s Cosine Law). maximum radiative heat flux gas

mcgratta commented 7 years ago

I do not think this is correct. Here's an example. I have a fire in large compartment, but the fire is fairly far from my location. The maximum heat flux is directly from the hot gas layer above my head. But the maximum intensity will be from the fire, even though the fire is far away. So I will compute the heat flux from the direction of the fire and under-estimate the real max heat flux coming from the layer above my head.

vincasci commented 7 years ago

Ok, my method is not correct when you are far from the fire. But I propose a correction:

Step 4: Store the value evaluated in step 3 in that point for that time.

Step 5: Evaluate the RADIATIVE HEAT FLUX GAS in that point for some fixed directions:

Step 6: Compare all the values of Step 5 and that stored at Step 4 and take the maximum among all.

This could be an estimation of the MAXIMUM RADIATIVE HEAT FLUX GAS, that can correct the mistake proposed by Kevin. Step from 1 to 4 continue to be useful, because they guarantee that this method remains conservative when you are near the fire and the upper layer doesn't give the maximum heat flux.

mcgratta commented 7 years ago

We cannot do this easily. The reason is that FDS does not store the radiation intensity IL(I,J,K) for each cell IJK and each angle L. There are approximately 100 angles, and if the mesh has 1 million cells, that would be 100 million real numbers to store. Instead, every third time step, FDS computes one fifth of the angles, but it does not save IL in the gas phase cells. It only saves the intensity values at solid boundaries, ILW. To do what you propose, we would have to store 100 values of IL at every slice plane cell, and then do 26 integrations over the 2*pi angles at each cell. This would add hundreds of lines of code, increase memory requirements, and slow down the code. Then, people would stop using the latest version of FDS in favor of the "faster" old code. We don't have enough people to maintain these various versions, or to do this kind of work. So I am closing this issue. Sorry, I thought this would be easier to do, but it is not.