firemodels / fds

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

Quantifying the volume between two levels of an iso-surface #1823

Closed gforney closed 9 years ago

gforney commented 9 years ago
Please complete the following:

Application Version:
SVN Revision Number:
Compile Date:

NOTE:  It is my understanding that the requested feature does not exist on any former
or current version of FDS. 

Description of enhancement.  Be as descriptive as possible including if
needed equations and units.

My interest is specific to an application involving gas dispersion where the source
of gas in a compartment is via an open pipe.  Using iso-surfaces is an extremely useful
method to visualize the envelopes where the lower explosive limit, the stoichiometric
mixture and the upper explosive limit exist.  However, there is currently no way to
quantify the volume contained within the iso-surface.  

Understanding that iso-surfaces are not always closed entities, I would suggest that
it would benefit users to quantify the volume that exists between two levels that are
defined by iso-surfaces.  For example, the following could be identified: 

- The volume of gas that exists between two specified gas concentrations (i.e. the
lower explosive limit and the upper explosive limit).   

If closed iso-surfaces exist in the domain, it would be useful to identify , over time,
the number of closed iso-surfaces that exist within the modeling domain and the specific
volumes within each enclosed iso-surface (i.e. if separate gas concentrations within
the explosive limits form, it would be helpful to identify the volume of gas within
each closed iso-surface).

As this request pertains generally to any iso-surface, I do not have a specific FDS
file in mind but could provide a gas dispersion example if it would help.   

Steve Hill
shill@rjagroup.com
301-490-3901

Original issue reported on code.google.com by stephenhillpe on 2013-03-11 15:25:48

gforney commented 9 years ago
I think this would be difficult to do with isosurfaces.  Surfaces may not be closed.
 There may be more than one volume enclosed.  etc.  This would be much easier to do
on a grid cell basis (and be more representative of the actual computed results). 
I could see this being done with a couple of keywords on DEVC.  That is define a volume
using XB and give the QUANTITY then have one keyword denote that you want to sum the
volume where the QUANTITY is greater than or less than some value and a second keyword
to give the value.  You could do what you want by having two such DEVC (one sum the
volume beneath each limit) and the use the SUBTRACT CTRL function to get the volume
between.  Would this meet your needs?

Original issue reported on code.google.com by drjfloyd on 2013-03-11 16:49:34

gforney commented 9 years ago
This could potentially meet my needs, although the reason I was interested in consideration
of iso-surfaces is due to the potential unknown location of the desired volume and
the possibility multiple pockets of gas may exist.  I would prefer to be able to distinguish
between the total amount of gas within a single cloud of vapor as opposed to the amount
of gas in a room that may be distributed among multiple vapor pockets.  

If I understand the method you described, one or more rectilinear volumes could be
prescribed at the onset of the calculation and the values of interest specified accordingly.
 I can see this working if one knows precisely where the iso-surfaces exist.  If it
is too difficult to implement an approach using iso-surfaces, I think this will work,
although it may require re-running the model to isolate the volume of interest.   

Thank you, 

- Steve Hill

Original issue reported on code.google.com by stephenhillpe on 2013-03-11 17:27:01

gforney commented 9 years ago
I'm going to assign this to Glenn, who might know about some tricks that have been coded
for FED apps.

Original issue reported on code.google.com by mcgratta on 2013-03-11 18:45:11

gforney commented 9 years ago
thanks - I talked with steve and asked him to start this issue.  Isosurfaces are now
computed using the marching cube method.  The isosurface is computed for each grid
cell (256 cases).  The results are combined for all grid cells to form the final isosurface.
 I was going to see if I could solve steve's problem for one grid cell and if successful
combine results for all grid cells. The tricky part is that only some of the 256 cases
are planar (ie can be integrated to find the volume easily)

Original issue reported on code.google.com by gforney on 2013-03-11 22:13:15

gforney commented 9 years ago
I'm making some progress on this - I have a routine that will compute the volume in
a tetrahedron above a specified user level.  The user domain will then be treated as
a collection of tetrahedrons (The isosurface was generated assembling cubes but volumes
of tetrahedron parts are easier to compute) and this routine will be called for each
tetrahedron (twice actually - once for the lower bound and again for the upper bound).
 Think about how you would like the computed volume reported.  

Original issue reported on code.google.com by gforney on 2013-03-25 17:49:46

gforney commented 9 years ago
I'm going to close this issue at least for now.  This would be more work than I have
time for.

Original issue reported on code.google.com by gforney on 2013-09-28 14:27:08