How to start the evacuation simulation in FDS6.7.6-0

725 views
Skip to first unread message

Lei

unread,
Jul 11, 2021, 9:40:08 PM7/11/21
to FDS and Smokeview Discussions
Hi, Everyone,

I updated Fds to  the following revision (FDS6.7.6-0), but the evacuation calculation was not started.  This case was successfully calculated in the old revision, and the details are shown in the attached Zip file.
 The error messages are shown as follows.

1)ERROR: The number of MPI processes, 1, exceeds the number of meshes, 0 (CHID: 1floorCase)
2)ERROR: FDS was improperly set-up - FDS stopped (CHID: 1floorCase)

It seems that the evacuation mesh is not recognized .
&MESH IJK=150,150,1, XB= 0.0,30.0, 0.0,30.0,  0.4,1.6, EVAC_Z_OFFSET=1.0, 
      EVACUATION=.TRUE., EVAC_HUMANS=.TRUE., ID='1stFloor' /

Could you give some help?

Thank you in advance.

Best regards,

Lei

Revision of FDS
 Revision         : FDS6.7.6-0-g5064c500c-release
 Revision Date    : Thu May 27 12:19:10 2021 -0400
 Compiler         : Intel ifort 2021.1
 Compilation Date : Tue 06/01/2021  11:25 AM


1floorEvac.zip

Gregor

unread,
Jul 12, 2021, 1:59:11 AM7/12/21
to FDS and Smokeview Discussions
The old FDS+Evac input (example) files do not work direct with the present one anymore.

You can find more information in the manual or in the latest Verification case readme.txt.

Lei

unread,
Jul 12, 2021, 8:42:46 AM7/12/21
to FDS and Smokeview Discussions
Hi, Gregor

Thank you very much.
I will read the manual later.

Best regards,

Lei

2021年7月12日月曜日 14:59:11 UTC+9 Gregor:

TimoK

unread,
Aug 5, 2021, 7:54:25 AM8/5/21
to FDS and Smokeview Discussions
I was on a summer holiday. But now back at the office. So, in FDS 6.7.6 the evacuation meshes are decoupled from the fire meshes (in the source code). So, the fire+evacuation calculation should be done using three different fds.exe runs. But a simple evacuation drill mode (fire drill) can be done using old inputs files easily. One just adds a keyword "EVACUATION_INITIALIZATION=.TRUE." on the MISC-namelist (and also EVACUATION_DRILL=.TRUE. if not there already).

And if you want do many evacuation drill runs using the same input (as you should, FDS+Evac is a stochastic evacuation programme), you do first a run with EVACUATION_INITIALIZATION=.TRUE. and the later runs with EVACUATION_MC_MODE=.TRUE. (and no EVACUATION_INITIALIZATION or set it to false). And copy the CHID_evac.csv (and CHID_evac.out) files to other names after each run. These files are overwritten (as was the case also prior to 6.7.6).

The usage of fire information in evacuation calculation is not as simple, see the readme.txt that Gregor mentioned above. Note that the showing of the evacuation results (agents in Smokeview) at the same time as the fire data (like smoke) is not (yet) straightforward. One needs to hack the .smv files. I'm now running my V&V cases and after that I'll check how the .smv file should be changed so that you can see the agents together with smoke.

TimoK

Matthew Bilson

unread,
Aug 31, 2021, 11:01:11 PM8/31/21
to FDS and Smokeview Discussions
Hi - I was wondering if you had made any progress yet with showing evacuation results and fire data at the same time in Smokeview?
Regards
Matt

Gregor

unread,
Sep 1, 2021, 4:19:12 AM9/1/21
to FDS and Smokeview Discussions
@ Matt: Did you see this commit?

TimoK

unread,
Sep 1, 2021, 8:23:15 AM9/1/21
to FDS and Smokeview Discussions
Hi!

So I made some modifications how to run fire+evacuation. These changes will be in the next (maintenance?) release of FDS.
They are already in the source code, so if you get the latest source code from GitHub and compile yourself, you can
use the new features already. Today, I have been post-processing my V&V results that I did run with a source code
version that had these new modifications. And things seem to work well (I have already checked, say, 90 % of the
cases).

You have a MISC keyword: EVACUATION_ALL_STEPS=.TRUE. With this you can easily do a full fire+evacuation calculation
and see the fire and agents in the same Smokeview. So, the steps will be:

0) Remove all output files from the running directory (just the CHID.fds is there and .ini and .ssf etc. files). Well, the
thing is that there should not be CHID_evac.fed, CHID_evac.xyz, CHID_evac.eff files, if one is starting a new
evacuation calculation.

1) Run fds.exe CHID.fds. You should have EVACUATION_ALL_STEPS=.TRUE. Now the programme checks if there exists
    CHID_evac.eff/fed etc files and decides in which step it is. Step 0 => none of these files => we are now in the 1st phase,
   i.e., the evacuation initialization phase. No need to set EVACUATION_INITIALIZATION=.TRUE, it is set automatically. Well,
   you can use EVACUATION_INITIALIZATION=.TRUE. to force the initialization phase still, if you want to do so.

  This phase does CHID => CHID_evac automatically, so your outputs are like they would be if you would have given
  in the .fds file the CHID as "CHID_evac".

2) Run fds.exe CHID.fds. Now there are .eff and .xyz files => step 2 is fire calculation that reads .xyz file so that it
    can write the CHID_evac.fed file. The CHID is just the CHID, so the output file names are like in the ordinary fire
    calculation (and the phase 1 files are not overwritten).

3) Run fds.exe CHID.fds. Now there are .eff and .fed files => phase 3, i.e. evacuation calculation using the smoke
    information (and the evacuation flow fields calculated in step 1). The CHID => CHID_evmc is done automatically,
    so no phase 1 nor phase 2 files are overwritten. You will get also CHID_evmc.smv file that has both the fire
    and evacuation results.

4) If you still type fds.exe CHID.fds => a second fire+evacuation calculation is done. But the CHID is still CHID_evmc,
    so the step 3 files are overwritten. So, before additional "evacuation mc runs", you should always copy the previous
    mc step results (CHID_evmc.csv and CHID_evmc_info.out) to some other name.

Just a note: Now the "CHID_evac.out" evacuation text output file is renamed as CHID_evac_info.out, because the
 step 1 "ordinary FDS text output file" will have a name "CHID_evac.out", so that name can not be used anymore.

And if you have EVACUATION_DRILL=.TRUE. on your MISC line, then the step 2 above is not done. So, the second call
"fds.exe CHID.fds" is already the "1st evacuation mc step". Well, then the step 1 (evacuation initialization) results are
also good, i.e., if you want to do 10 evacuation runs using same input (to get some statistics), then you should do
the step 1 once, and step 3 once and step 4 eight times. The step 1 results are CHID_evac.csv, the others are
CHID_evmc.csv (remember to copy to other names).

And you can use EVACUATION_INITIALIZATION, EVACUATION_MC_MODE, and EVACUATION_WRITE_FED still
to run a specific step of the evacuation (EVACUATION_ALL_STEPS should not be there or it should be false).
Note that the CHID => CHID_evac or CHID_evmc is done automatically also when these keywords are used.

TimoK


Matthew Bilson

unread,
Sep 1, 2021, 1:30:08 PM9/1/21
to FDS and Smokeview Discussions
Thanks, this is very helpful. Will test it out.

Matthew Bilson

unread,
Sep 1, 2021, 4:02:32 PM9/1/21
to FDS and Smokeview Discussions
Hi - I tried this out and the EVACUATION_ALL_STEPS worked as described. I could not get Smokeview to open the files from step 1 or 3, and no evacuation appeared in the step 2 SMV file. Revision I used was FDS6.7.6-626-gb28b2d6d2-nightly, with Smokeview version SMV6.7.17-185-gf1cd04bcc-nightly. 
Matt

Matthew Bilson

unread,
Sep 2, 2021, 11:29:24 AM9/2/21
to FDS and Smokeview Discussions
Grabbed the latest release as of this morning, FDS6.7.6-634. Works ok. Thank you.

TimoK

unread,
Sep 6, 2021, 8:53:24 AM9/6/21
to FDS and Smokeview Discussions

Thanks for checking. I have done my V&V calculations using:

 Revision         : FDS6.7.6-614-gdc07d2696-master
 Revision Date    : Mon Aug 30 11:46:23 2021 +0300
 Compiler         : Intel ifort 19.1.2.275
 Compilation Date : Aug 30, 2021  11:54:49

So, it is a little bit odd that  -626- commit was not working nicely.

Wbr,
TImoK

Matthew Bilson

unread,
Sep 20, 2021, 4:40:36 PM9/20/21
to FDS and Smokeview Discussions
Hi 

Running this now trying to use MPI. The EVAC mesh appears after the fire meshes in the input file, total of four fire meshes defined, and therefore one EVAC mesh. Ran using this command:

fds_local -p 5 INPUT.fds

There is an error message "The number of MPI processes, 4, exceeds the number of fire meshes + 1"

Tried to run this with "-p 4" as well, but it did not work.

Have you seen this error?

TimoK

unread,
Sep 23, 2021, 5:04:55 AM9/23/21
to FDS and Smokeview Discussions

Oops, I should have given new information on how to run FDS+Evac using MPI. Now the fire and evacuation calculations are divorced. They do not speak with each other directly anymore. The only communication is via mail (= using files on the hard drive). So:

The step A, evacuation initilaization, uses just one process. The "read.f90" skips all fire meshes.

The step B, fire calculation, should use as many process as there are FIRE meshes (or how it is written in FDS users guide). The fire calculation is run completely similarly as an ordinary fire calculation. The step B "read.f90" is not reading the evacuation meshes at all, it just skips all evacuation inputs.

The step C, evacuation "mc mode", uses just one process. The "read.f90" skips all fire meshes.

The above is also reason, why the user should say "fds.exe CHID.fds"  three times to to a coupled fire+evacuation calculation. The different phases use different number of processes, so it is not easy to put these in a single fds.exe, where the number of MPI processes is a given number. And in a batch job (like a cluster), you are usually demanding the number of processes from the batch system, when you submit your case. So, it is a bad tactic to reserve a huge amount of cores for the evacuation initialization/mc mode phases that use just one core.

And usually you do the phase A (evacuation initialization) interactively. You edit the input file and see, if the evacuation geometry seems to be nice etc. And you are seeing that agents move like they should (without smoke). This you should do everytime when you are planning to do a coupled fire+evacuation calculation. You do not want to waste the cpu intensive fire calculation just to see, that something simple was not correct in your evacuation inputs. So, you have finnished the step A before you are going to submit a batch job (for the step B, i.e., fire). If your step A was nice, then you should get a fine CHID_evac.fed file from the step B that you can use later in step C. And you can "debug" your step C quite much like: the number of agents, prefered doors for the agents, tdet,tpre etc. values, walking speeds, etc. information you can change, if you notice that the agents are not behaving as you like. The CHID_evac.fed is fine, if you are not touching your geometry. Well, actually, it should be also fine, if you change your geometry in a such way, that you add obstructions, I would think (one should test it). If you delete obstructions in evacuation calculation, then there is no smoke information for the new cells where agents might be. You can even add/delete/move DOORs and EXITs and still the CHID_evac.fed should be fine. You should not change the EVSS (z-coordinates) nor CORR coordinates nor evacuation MESH lines. The fed file has smoke information for the CORRs (their XB,XB1,XB2) and the EVSS change the z-level, where the smoke information is taken from the fire meshes. Note, that when you change your DOOR/EXIT positions or add/delete doors/exits, then you should do the step A again (evacuation initialization). You should make a copy of your CHID_evac.fed before the new evacuation initialization phase to be sure that you do not lost your fire information. The new evacuation initialization will write/overwrite a CHID_evac.eff file that the step C (evacuation mc mode) is reading in together with the CHID_evac.fed file.

Wbr,
Timo

Matthew Bilson

unread,
Oct 28, 2021, 3:51:06 PM10/28/21
to FDS and Smokeview Discussions
Hi - I finally got back to this...I tried to run the attached example. 

I ran it as follows (from a command prompt in Windows, latest nightly release):

call fdsinit.bat
fds_local -p 2 EV.fds

I get this error:
FDS+Evac: EVACUATION INITIALIZATION.
ERROR: The number of MPI processes, 2, exceeds the number of fire meshes + 1, 1 (CHID: EV_evac)
ERROR: FDS was improperly set-up - FDS stopped (CHID: EV_evac)


If I run it as:

fds EV.fds

I get this error:

FDS+Evac: EVACUATION INITIALIZATION.
FDS+Evac: Emesh 1 TUNNEL has 2 door flow fields
ERROR: TUNNEL_PRECONDITIONER requires the number of meshes to equal the number of MPI processes (CHID: EV_evac)
ERROR: FDS was improperly set-up - FDS stopped (CHID: EV_evac)


Any advice?

Thanks
Matt
EV.fds

Kevin McGrattan

unread,
Oct 28, 2021, 4:03:19 PM10/28/21
to fds...@googlegroups.com
This would be my mistake. In developing the TUNNEL_PRECON, I never thought about Evac stuff. I'll have to fix that.

Kevin McGrattan

unread,
Oct 28, 2021, 5:14:06 PM10/28/21
to fds...@googlegroups.com
In trying to fix problem number 2, I have now run afoul of problem number 1. My advice is not to use FDS+Evac. 

TimoK

unread,
Nov 12, 2021, 3:07:48 AM11/12/21
to FDS and Smokeview Discussions
use:

Step 1:
& MISC EVACUATION_INITIALIZATION= TRUE. /
 PRES TUNNEL_PRECONDITIONER=.TRUE. /

This uses just 1 mesh (evacuation runs always just one process)

Step 2:
&MISC EVACUATION_WRITE_FED= TRUE. /
&PRES TUNNEL_PRECONDITIONER=.TRUE. /

This uses 2 meshes (fire run)
  
Step 3:
&MISC EVACUATION_MC_MODE= TRUE. /
&PRES TUNNEL_PRECONDITIONER=.TRUE. /

This way it uses. One should change the read.f90 so that the evacuation runs discard the TUNNEL_PRECONDITIONER,
sets it to false for evacuation steps. I will add this in read.f90 so that the 6.7.7 maintenance release will have this.

TimoK

Reply all
Reply to author
Forward
0 new messages