Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

door algorythm does not work #7619

Closed
bhoepperger opened this issue Sep 25, 2019 · 12 comments
Closed

door algorythm does not work #7619

bhoepperger opened this issue Sep 25, 2019 · 12 comments
Assignees

Comments

@bhoepperger
Copy link

When I'm running the entire case with smoke and evacuation the doors will open. Setting the case with MC_MODE=.FALSE. the evacuation simulation does not open doors.
I reduced the case to the minimum and does not work.
Someone an idea why FDS+Evac is working and evac sim standalone not?

&DOOR ID='Train1_door1_out' XB=4.0,5.4,-3.0,-3.0,2.4,2.8 XYZ=4.7,-2.9,2.6 TO_NODE='Train1_door1_in' IOR=-2 EXIT_SIGN=.TRUE. TIME_OPEN=5 LOCKED_WHEN_CLOSED=.TRUE. TARGET_WHEN_CLOSED=.TRUE. KEEP_XY=.TRUE. /
&DOOR ID='Train1_door1_in' XB=4.0,5.4,-3.2,-3.2,2.4,2.8 XYZ=4.7,-3.5,2.6 TO_NODE='Train1_door1_out' IOR=+2 EXIT_SIGN=.FALSE. TIME_OPEN=5 LOCKED_WHEN_CLOSED=.TRUE. TARGET_WHEN_CLOSED=.TRUE. KEEP_XY=.TRUE. /

@rmcdermo
Copy link
Contributor

@tkorhon1 Hi Timo, please have a look when you get time. Thanks.

@tkorhon1
Copy link
Contributor

Well, I did not test your case, because you have just the evacuation input file, no fire one. But I did a simple verification case (the door algorithm verification case). I modified it a little bit. Now I check also the MC mode that it is using smoke information.
DoorAlgo_C.txt
DoorAlgo_C_MC.txt

These are working as they should. Check yourself:

  1. run the DoorAlgo_C.txt and see the results. You can see, that the agents are changing their target doors due to smoke. Note: choose ellipsoid, disk, or human_altered_with_data avatar in shte Smokeview menus and also color humans by HUMAN_COLOR. The avatars are then colored by the current target door color.

  2. copy the DoorAlgo_C_evac.fed => DoorAlgo_C_MC_evac.fed
    copy the DoorAlgo_C_evac.eff => DoorAlgo_C_MC_evac.eff
    and run DoorAlgo_C_MC.fds

  3. See the DoorAlto_C_MC.fds results. The agents change target doors as in the case 1)

So, it seems that things are working as they should. So, recheck your simulations. Read the CHID_evac.out files, there are things like:

FDS+Evac Evacuation Module
FDS+Evac Version : 2.5.2

FDS+Evac Color_Method : 4
FDS+Evac Vis_Door_Crit : 3000.00000000 m
FDS+Evac: FED activity level is light work
FDS+Evac Random seed is not used.
FDS+Evac: Soot mass extinction coeff is used: 8700.00
FDS+Evac Number of evacuation devices in the FED file: 0
FDS+Evac FED File: DoorAlgo_C_MC_evac.fed is used
FDS+Evac EFF File: DoorAlgo_C_MC_evac.eff is read in and used

So, see if you find " FDS+Evac FED File: DoorAlgo_C_MC_evac.fed is used" type information in your case. It might be that the "FED file" was not read in correctly.

TimoK

@bhoepperger
Copy link
Author

The two examples does not include a Door to Door solution. I have a door to door selection between two meshes and when I run the case in MC_MODE=.FALSE. the door to door selection is working well but in MC_MODE=.TRUE. the door to door does not work. When I use the same file with FDS 6.0.1 and MC_MODE=.TRUE. all agent can pass the doors. So what was changed between 6.0.1 and 6.7.1?

re
Bernhard

@bhoepperger
Copy link
Author

This is a very easy testcase but not working??

@bhoepperger
Copy link
Author

TestCase.zip

@tkorhon1
Copy link
Contributor

I just downloaded your test case.

@tkorhon1
Copy link
Contributor

Yes, I see the point. It seems, that the door/exit open and close stuff does not work anymore. I will check this as soon as I can. I'll be on holiday next week.

TimoK

@tkorhon1
Copy link
Contributor

Hi!

A work-around for you: Run the fire+evacuation calculation using latest fds version 6.7.1 (or is 6.7.2 there already). This way you get CHID_evac.fed file. Use this FED file with fds 6.7.0 that you run in the EVACUATION_MC_MODE=.TRUE. on the MISC namelist. Or do the whole simulation using 6.7.0, if the fire part is ok for you with version 6.7.0.

I'm back at the office and now I did some tests. This thing has been broken between fds 6.7.0 and 6.7.1, i.e., things are still working in 6.7.0. I also noticed, that the TIME_CLOSE alone seems to be working in 6.7.1. I have a HUT library validation case (see the FDS+Evac manual) that closes some exits at time 30s. And I rerun these using the latest source code in GitHub and still get good results. So, I was not noticing this bug with my V&V cases. My verification case suite is not too good. It does not test all possible things that is implemented. I used to test things when I programmed the source code, but I did not make a verification input file that I should rerun always with the latest fds version. Presently, I will make such cases, but presently I am not doing much new features to FDS+Evac.

For my notes: There has been something taken away from the dump.f90. There has been some reorganization of the MPI parallel processing stuff and things have been moved around. At this point, some evacuation stuff in dump.f90 has been lost.

Smokey (/FDS_Source_Latest): grep IMODE FDS_671_release/dump.f90
Smokey (
/FDS_Source_Latest):

Smokey (~/FDS_Source_Latest): grep IMODE FDS_670_release/dump.f90
IF (EVAC_DOORS(N)%IMODE>0 .AND. EVAC_DOORS(N)%IMESH==NM) THEN
EVAC_DOORS(N)%IMODE=-EVAC_DOORS(N)%IMODE ! +: change status, -: has already changed status
I_STATE=ABS(EVAC_DOORS(N)%IMODE)-1
IF (EVAC_EXITS(N)%IMODE>0 .AND. EVAC_EXITS(N)%IMESH==NM) THEN
EVAC_EXITS(N)%IMODE=-EVAC_EXITS(N)%IMODE ! +: change status, -: has already changed status
I_STATE=ABS(EVAC_EXITS(N)%IMODE)-1
IF (EVAC_ENTRYS(N)%IMODE>0 .AND. EVAC_ENTRYS(N)%IMESH==NM) THEN
EVAC_ENTRYS(N)%IMODE=-EVAC_ENTRYS(N)%IMODE ! +: change status, -: has already changed status
I_STATE=ABS(EVAC_ENTRYS(N)%IMODE)-1
So, the bug fix is easy. I just find the correct place to put the above missing lines in dump.f90. Time for that I have at the end of this week. (And I should make door close/open verification case also that I always check.)

TimoK

@tkorhon1
Copy link
Contributor

I found the bug. I'll change it to the source code and put it in the GitHub soon. So, it will be in the next fds release (fds 6.7.3 or 6.8.0 or 7.0.0 whatever is the next one).

A workaround: Use two or more MPI procesesses, then it works. But this means that you should have at least one fire mesh. So, I did a dummy fire mesh like:

&MESH IJK=4,4,4, XB=0, 1, 0.0, 1.0, 0, 1,/ dummy fire mesh

&MESH IJK=50,10,1, XB=0, 10, 0.0, 2.0, 2.4, 2.8,
EVACUATION=.TRUE., EVAC_HUMANS=.TRUE., ID='Evac_Train1', EVAC_Z_OFFSET=1.0 /

&MESH IJK=50,14,1, XB=0, 10, -0.2, -3.0, 2.4, 2.8,
EVACUATION=.TRUE., EVAC_HUMANS=.TRUE., ID='Evac_Main', EVAC_Z_OFFSET=1.0 /

But using this, you can not do the evacuation part as EVACUATION_MC_MODE=.TRUE. but this is not a problem. You can do your EVACUATION_MC_MODE=.TRUE. cases using older fds version, where things are still working (fds 6.7.0 is not working, 6.6.0 is not working, some older should work).

TimoK

@mcgratta
Copy link
Contributor

mcgratta commented Apr 6, 2020

Is this bug resolved in the latest version of FDS?

@tkorhon1
Copy link
Contributor

Well, I should check this also after my summer holidays, if the one that reported this issue is not check this one. If I remember correctly, I did correct the bug and also did commit it to GitHub.

@gjaeger
Copy link
Collaborator

gjaeger commented Dec 1, 2021

@tkorhon1 With PR #10089 we should/can close this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants