Is your feature request related to a problem? Please describe.
In our Results application for PyroSim and Pathfinder we read the s3d files in order to render smoke/fire and perform visibility calculations for occupants. In FDS 6.11.1, the soot density s3d file changed so that it includes per-frame normalized density values.
This is a great change; however, in order to determine the normalization range of soot density (i.e. the per-frame max value), we now also have to read the accompanying sz file. This causes a few issues:
- In the past, I've noticed that the sz file can become out of sync with the s3d file, perhaps because of different FDS runs, restarts, file corruption, etc. This can lead to incorrect de-normalization. In addition, a customer may need to share results. If they omit this file, we'll have incomplete data.
- The s3d file is binary while the sz file is text. This can create issues with lining up times between the two files because a parsed text time may end up slightly different than the binary time. We can build in a tolerance, but it's difficult to know what the tolerance should be.
- If we try to visualize while a simulation is running, the s3d file may get ahead of the sz file (perhaps because of internal buffer sizes or just that we end up reading them at slightly different times), so we can't just assume a one-to-one correspondence between frames.
Describe the solution you'd like
In the s3d file, in addition to writing NCHARS_IN and NCHARS_OUT for each frame, also write the normalization range for the values in that frame (e.g. 0 -> max_density for soot density or TEMP_MAX_SMV -> TEMP_MIN_SMV for flame temperature).
This would also require incrementing the file version (second parameter written in the file) so parsers can tell the files apart.
[optional] If a normalization range hasn't been specified in the FDS file (e.g. HRRPUV_MAX_SMV, TEMP_MAX_SMV, etc.), automatically calculate a normalization range for each frame based on the values in the mesh. This could provide a nice boost in precision.
Is your feature request related to a problem? Please describe.
In our Results application for PyroSim and Pathfinder we read the s3d files in order to render smoke/fire and perform visibility calculations for occupants. In FDS 6.11.1, the soot density s3d file changed so that it includes per-frame normalized density values.
This is a great change; however, in order to determine the normalization range of soot density (i.e. the per-frame max value), we now also have to read the accompanying sz file. This causes a few issues:
Describe the solution you'd like
In the s3d file, in addition to writing
NCHARS_INandNCHARS_OUTfor each frame, also write the normalization range for the values in that frame (e.g.0->max_densityfor soot density orTEMP_MAX_SMV->TEMP_MIN_SMVfor flame temperature).This would also require incrementing the file version (second parameter written in the file) so parsers can tell the files apart.
[optional] If a normalization range hasn't been specified in the FDS file (e.g.
HRRPUV_MAX_SMV,TEMP_MAX_SMV, etc.), automatically calculate a normalization range for each frame based on the values in the mesh. This could provide a nice boost in precision.