Closed gforney closed 9 years ago
Timo will take a look at this.
Original issue reported on code.google.com by mcgratta
on 2012-07-31 20:23:57
Hi Enrico!
Well this could be easily done in the evac.f90. See the lines
at about 8070. One could easily add here a CASE construct for
different smoke vs speed correlations. Now there is the Lund
correlation (well, a little bit modified so that the user
has some control over it). The speed does not go to zero, but
this can be changed by the user given minimum speed. And similar
things added also.
So, what kind of correlations are needed?
A) A linear function like speed(d_smoke)=speed(d_smoke=0)*(1-constant)
like there already is (with the minimum speed). Well, perhaps a more
general linear decay: speed=speed_nosmoke if d_smoke < some density.
then a linear decrease to minimum speed (that might be zero or not).
So, the user could give the "correct" input constants, the default
would be the present ones in FDS+Evac.
B) A more general function, some polynomial?
These are easily programmed, if you just give a nice mathematical
formulas and nice input keyword names for the users.
Some different (Jin and Lund) correlatins might be chosen just by some keyword,
so the values of the constants are not needed in the input (they would
be inside the evac.f90 already).
So, write some nice "fortran mathematical formulas" like those on
the line 8071 (about) and I'll write these to the source code.
Use some "nice" names for the constants. The numerical factor 1.0E-6
in the source code is just for a mg <=> kg conversion.
TimoK
Original issue reported on code.google.com by tkorhon1
on 2012-08-06 14:04:00
Thanks for your reply Timo.
I have sent you a private email since I would like to discuss about this issue by mentioning
some correlations that can not be shared publicly (they are protected by copyright).
I look forward to hearing your comments,
Enrico
Original issue reported on code.google.com by enricoronchi84
on 2012-08-09 10:56:36
Well, if you want to use some correlations that you can not
write publicly, then I will not add these in the source code.
The source code is public domain. And if there is some copyright
etc reason that these should not be used, then these should not
be there. But if the correlations are already published on some
journal etc, then one can use these formulas, if there are no
patents saying otherwise. But if these correlations are
"private communication" origin, then you should do the changes
in the source code and compile the code yourself.
I would help you to program the source code bu saying the
lines where you should change the code and say how you
should do this. Well, just overwrite the Lund formula
that is there already. You do not need the user input
changes, because you can give the "secret numbers" just
as numbers inside the source code, because you will be
compiling the code youself. And the Fortran mathematical
formulas are easy to write and there are free fortran
tutorials on the net, where you will find the names
of different mathematical functions in Fortran.
TimoK
Original issue reported on code.google.com by tkorhon1
on 2012-08-13 09:00:00
Hi Enrico!
Check the source code FDS 6.0.0 SVN number 12260.
ToDo: Manual (Timo) + tests (Enrico), well I can not compile
for win32 nor win64. I have just a Linux compiler...
Enrico's case, add the first 3 options done.
The Lund fit SMOKE_SPEED_ALPHA and SMOKE_SPEED_BETA
are the defaults. Other (Jin's non-irr+irr) ones needs
user input for alpha and beta. Could later be added
as options (Enrico, could you do the transformation of
the Jin linear constants to the present (beta,alpha)
format. Well, just beta/alpha needed...).
The Eqs (1)-(3) are handled with:
SMOKE_MIN_SPEED and SMOKE_MIN_SPEED_VISIBILITY,SMOKE_MIN_SPEED_FACTOR.
If minimum speed is zero (v_s_min and/or v_s_min(i) are zero), then
either one of the MIN_SPEED inputs could be given. If MIN_SPEED_FACTOR
is given, then v_s_min(i) is used, and v_s_min(i) = v0_i*min_speed_factor.
IF(SMOKE_MIN_SPEED < 0.0_EB .AND. SMOKE_MIN_SPEED_FACTOR < 0.0_EB) THEN
SMOKE_MIN_SPEED_FACTOR = 0.1_EB ! Default min speed = v0_i*v_s_min_fac
END IF
IF (SMOKE_MIN_SPEED_FACTOR > -99998.0_EB) THEN
SMOKE_MIN_SPEED_TMP = SMOKE_MIN_SPEED_FACTOR
ELSE
SMOKE_MIN_SPEED_TMP = SMOKE_MIN_SPEED/HR%SPEED
END IF
SMOKE_KS_SPEED_FUNCTION (default =1, no others yet):
! 1: Linear function c(Ks) = (1 + beta*Ks/alpha), 0 <= c(Ks) <= 1.
This is an user keywork on (some) PERS namelist, the last one read
in is used.
New formalism by Enrico
0 <= c(Ks) <= 1, c(Ks=0)=1, c(Ks=inf)=0
v_s_min: A constant minimum speed for all agents (say 0.3 m/s) in smoke.
v_s_min(i): Minimum speed of an agent in smoke. v_s_min*v0_i fds+evac now
Add later user input for this
! Linear speed vs smoke density function, default is the Lund fit.
! c(Ks) = ( 1 + (BETA*Ks)/ALPHA ) [0,1] interval, c(Ks=0)=1, c(Ks=inf)=0
SMOKE_SPEED_ALPHA = 0.706_EB ! Lund 2003, report 3126 (Frantzich & Nilsson)
SMOKE_SPEED_BETA = -0.057_EB ! Lund 2003, report 3126 (Frantzich & Nilsson)
(1) v_i_smoke = v_i_0*c(Ks) (v_s_min=0.0, same as case (2))
fds+evac options: v_s_min=0 (SMOKE_MIN_SPEED=0.0)
SMOKE_MIN_SPEED_VISIBILITY = 0.01 (very dense smoke)
(2) v_i_smoke = Max( v_i_0*c(Ks), v_s_min)
fds+evac options: v_s_min=v_s_min (SMOKE_MIN_SPEED=0.1 for example)
SMOKE_MIN_SPEED_VISIBILITY = 0.01 (very dense smoke)
(3) v_i_smoke = Max( v_i_0*c(Ks), v_s_min(i))
fds+evac options: v_s_min=v_s_min (SMOKE_MIN_SPEED_FACTOR=0.1 for example)
SMOKE_MIN_SPEED_VISIBILITY = 0.01 (very dense smoke)
Enrico, do you need more general v_s_min(i) than just =v0_i*min_speed_factor,
where the factor is same for all agents (in the "old" FDS+Evac it was 0.1 and
it is still the default)?
TimoK
Original issue reported on code.google.com by tkorhon1
on 2012-08-24 12:33:59
Well, I did not remember to change the status of this issue...
So, now it is "Fixed".
TimoK
Original issue reported on code.google.com by tkorhon1
on 2012-08-24 12:36:44
Hi Timo,
thanks for your work on this issue. About the v_s_min(i), I was discussing about it
in these days with one of the co-authors of the paper (Dave Purser) I mentioned in
this post. We agreed that a possible way to represent this would be to make speed in
smoke a function of original speed (as FDS+Evac is doing). Then, we could implement
a random normally distributed "susceptibility factor" (your SMOKE_MIN_SPEED_FACTOR).
The default could be a distribution with a mean value = 0.1. In this way, we could
represent the individual response to dense smoke. What do you think?
Enrico
Original issue reported on code.google.com by enricoronchi84
on 2012-08-27 07:59:30
Hi Enrico,
So, I should add SMOKE_MIN_SPEED_DIST for the distribution
type, same as in the agent data for the TDET and TPRE
distributions, but to start with, just normal and truncated
normal ones implemented (and a constant factor). Inputs
the similarly than for the TDET and TPRE, e.g., SMOKE_MIN_SPEED_MEAN,
..._PARA, ..._PARA2, ..._LOW, ..._HIGH. Default would be:
SMOKE_MIN_SPEED_DIST = -1 => use SMOKE_MIN_SPEED_FACTOR
(or SMOKE_MIN_SPEED).
Well, as easily I could add uniform and log-normal etc
distributions, just copy-and-paste from TPRE/TDET.
TimoK
Original issue reported on code.google.com by tkorhon1
on 2012-08-27 08:43:38
Well, I'll close this issue (some housekeeping...).
These things should be in the fds6 based evacuation
manual, whenever I have time to make it.
TimoK
Original issue reported on code.google.com by tkorhon1
on 2013-12-02 11:39:49
Original issue reported on code.google.com by
enricoronchi84
on 2012-07-31 20:16:39