Yinan-Scott-Shi / fds-smv

Automatically exported from code.google.com/p/fds-smv
0 stars 0 forks source link

FDS+Evac, Documentation of EVAC_DT_FLOWFIELD vs EVAC_DT_MAX #765

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Please complete the following lines...

Application Version: Evac 2.1.2
SVN Revision Number:
Compile Date: April 21, 2009
Operating System:

Describe details of the issue below:
From my reading of the FDS+Evac manual, I don't think I understand the 
relationship between EVAC_DT_STEADY_STATE (TIME) and EVAC_DT_MAX (PERS) 
properly.  Given:

EVAC_DT_STEADY_STATE is the maximum time step of the agent movement 
algorithm, this should not be too large, should not be larger than 0.1 s. 
Note that the time step in the output files will not be shorter than this 
value. This parameter defines the minimum coupling frequency of different 
main evacuation meshes. Coupling is faster if the time step of the fire 
calculation is shorter. (Default is 0.05 s.)

EVAC_DT_MAX The maximum time step for the agent movement algorithm, default
0.01 s.

Based on those definitions, I get the impression that EVAC_DT_STEADY_STATE 
bounds the frequency of cross-mesh communication and (as a side effect) 
bounds EVAC_DT_MAX.  Is that correct?  Also, I don't understand the last 
comment about coupling being faster if the fire time step is shorter - 
doesn't the same amount of work need to be done (per coupling) regardless?  
EVAC_DT_MAX /seems/ straightforward enough, but I don't understand the 
interplay with EVAC_DT_STEADY_STATE.

Original issue reported on code.google.com by charlie....@gmail.com on 4 Jun 2009 at 7:55

GoogleCodeExporter commented 9 years ago
Wrong title, should read: FDS+Evac, Documentation of EVAC_DT_STEADY_STATE vs 
EVAC_DT_MAX

Original comment by charlie....@gmail.com on 4 Jun 2009 at 7:56

GoogleCodeExporter commented 9 years ago
Timo will take a look at this.

Original comment by mcgra...@gmail.com on 8 Jun 2009 at 11:57

GoogleCodeExporter commented 9 years ago
Hi Charlie,

I should explain the different time steps better in the manual. There are two
different time steps for the evacuation. One is for the solution of the "social
force" model human movement equations and the other one is used to couple the
evacuation calculation meshes with the fire meshes and also the different 
evacuation
meshes with other evacuation meshes.

See evac.f90: Subroutine EVACUATE_HUMANS(Tin,NM,ICYC)
Below are some lines copied from the source code:

    ! Inputs:
    !   Tin: End time, this routine makes the move Tin-DT ==> Tin (DT=FDS dt)
    !   NM: Mesh index
    !   ICYC: index of the FDS fire time step

    Dt_sum         = 0.0_EB
    HUMAN_TIME_LOOP: Do While ( Dt_sum < DT )
       ! DT is the fds flow calculation time step.
       ! Sometimes agent time step is smaller than the fire time step, so
       ! syncronize the agent clock correctly.
       ! Tsteps: Time steps of the agent movement algorithm for different meshes,
       ! which were calculated at the end of the previous main time step.
       ! DTSP: The present time step for the agent movement algorithm, which may be
       ! smaller than the FDS main time step DT.
       DTSP = Min( (DT-Dt_sum), Tsteps(nm) )

       Dt_sum = Dt_sum + DTSP
       T = Tin - DT + Dt_sum     ! Current time for the agents

If you have no fire meshes, i.e., just an evacuation calculation, then the
EVAC_DT_STEADY_STATE will be the time step for all the meshes (now you have just
evacuation meshes) in the main routine of FDS (inside the main.f90). The main 
routine
will call each evacuation mesh with this DT. But this time step is too large 
for the
"social force" model time step, so inside the evac.90 a smaller time step is 
used,
and the default for this is EVAC_DT_MAX = 0.01 s. But this is also a quite a 
long
time step, and it might be that a smaller one is needed for the human movement
algorithm. Then FDS+Evac will reduce the time step DTSP, but it will not reduce 
it
too much, the lower limit is the EVAC_DT_MIN (also on some PERS namelist). Note 
that
the communication between different evacuation meshes (usually different 
floors) is
done using the "FDS time step DT", which is EVAC_DT_STEADY_STATE if there are 
no fire
meshes.

If there are fire meshes, then the time step in main.f90 for the evacuation 
meshes is
the shorter one of the EVAC_DT_STEADY_STATE and the FDS time step for the fire
meshes. So, if the FDS fire time step is smaller than the EVAC_DT_STEADY_STATE 
then
this smaller DT is used to call the evacuation meshes inside the main time loop 
in
the main.f90.

Ciao,
Timo

Original comment by tkorh...@gmail.com on 16 Jun 2009 at 10:12

GoogleCodeExporter commented 9 years ago
Well, this does not affect the release of FSD 5.4.0, so I'll change this issue 
to
"OnHold". So, I should rewrite the manual at some point. I have added a 
reference to
the start of the LaTeX source of the manual (as commented lines), so I'll 
remember
this one. Same for the FLOW_FIELD_ID issue...

TimoK

Original comment by tkorh...@gmail.com on 17 Jun 2009 at 7:40

GoogleCodeExporter commented 9 years ago
Thank you for the additional explanation.  I *think* I understand well enough.  
We'll 
see if that feeling survives my trying to explain it to someone else...

Original comment by charlie....@gmail.com on 17 Jun 2009 at 1:33

GoogleCodeExporter commented 9 years ago
So, I have started to add these to the FDS+Evac manual. So these will be there 
on
some day. But this does not have anything to do with the FDS 5.4 release, so 
I'll put
"Milestone-FDS_5.5".

TimoK

Original comment by tkorh...@gmail.com on 4 Aug 2009 at 9:24

GoogleCodeExporter commented 9 years ago
I change this to fixed, because I'm right now
updating the FDS+Evac manual and these are there
already. So the next manual will have these. And
the version in the SVN in a couple of hours.

TimoK

Original comment by tkorh...@gmail.com on 4 May 2010 at 12:43

GoogleCodeExporter commented 9 years ago
Verified by looking at web version of Guide (May 5, 2010).

Original comment by gregor.j...@gmail.com on 18 Sep 2010 at 9:55

GoogleCodeExporter commented 9 years ago
Thanks!

TimoK

Original comment by tkorh...@gmail.com on 20 Sep 2010 at 11:46