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
(EVAC) Question about code #3625
Comments
in SUBROUTINE CHECK_EVAC_NODES "N_MESH_TMP" is not deallocated. |
399 line in evac.f90 I_HERDING_TYPE is not READ(EB) but INTEGER. |
6401 line in evac.f90 IF (.NOT.Is_Solid) THEN
II = FLOOR( CELLSI(FLOOR((x_tmp(1)-XS)*RDXINT)) + 1.0_EB )
JJ = FLOOR( CELLSJ(FLOOR((y_tmp(1)-YS)*RDYINT)) + 1.0_EB )
I_OBST = OBST_INDEX_C(CELL_INDEX(II,JJ,KK))
Is_Solid = (Is_Solid .OR. (SOLID(CELL_INDEX(II,JJ,KK)) .AND. .NOT. OBSTRUCTION(I_OBST)%HIDDEN))
II = FLOOR( CELLSI(FLOOR((x_tmp(3)-XS)*RDXINT)) + 1.0_EB )
JJ = FLOOR( CELLSJ(FLOOR((y_tmp(3)-YS)*RDYINT)) + 1.0_EB )
Is_Solid = (Is_Solid .OR. (SOLID(CELL_INDEX(II,JJ,KK)) .AND. .NOT. OBSTRUCTION(I_OBST)%HIDDEN))
II = FLOOR( CELLSI(FLOOR((x_tmp(2)-XS)*RDXINT)) + 1.0_EB )
JJ = FLOOR( CELLSJ(FLOOR((y_tmp(2)-YS)*RDYINT)) + 1.0_EB )
Is_Solid = (Is_Solid .OR. (SOLID(CELL_INDEX(II,JJ,KK)) .AND. .NOT. OBSTRUCTION(I_OBST)%HIDDEN))
END IF => IF (.NOT.Is_Solid) THEN
II = FLOOR( CELLSI(FLOOR((x_tmp(1)-XS)*RDXINT)) + 1.0_EB )
JJ = FLOOR( CELLSJ(FLOOR((y_tmp(1)-YS)*RDYINT)) + 1.0_EB )
I_OBST = OBST_INDEX_C(CELL_INDEX(II,JJ,KK))
Is_Solid = (Is_Solid .OR. (SOLID(CELL_INDEX(II,JJ,KK)) .AND. .NOT. OBSTRUCTION(I_OBST)%HIDDEN))
II = FLOOR( CELLSI(FLOOR((x_tmp(3)-XS)*RDXINT)) + 1.0_EB )
JJ = FLOOR( CELLSJ(FLOOR((y_tmp(3)-YS)*RDYINT)) + 1.0_EB )
I_OBST = OBST_INDEX_C(CELL_INDEX(II,JJ,KK))
Is_Solid = (Is_Solid .OR. (SOLID(CELL_INDEX(II,JJ,KK)) .AND. .NOT. OBSTRUCTION(I_OBST)%HIDDEN))
II = FLOOR( CELLSI(FLOOR((x_tmp(2)-XS)*RDXINT)) + 1.0_EB )
JJ = FLOOR( CELLSJ(FLOOR((y_tmp(2)-YS)*RDYINT)) + 1.0_EB )
I_OBST = OBST_INDEX_C(CELL_INDEX(II,JJ,KK))
Is_Solid = (Is_Solid .OR. (SOLID(CELL_INDEX(II,JJ,KK)) .AND. .NOT. OBSTRUCTION(I_OBST)%HIDDEN))
END IF |
Timo, |
Hi Randy, Timo |
And now the SpringTiger comments:
And then: "N_MESH_TMP" is not deallocated.: Thanks, now this change 399 line in evac.f90: Thanks, now it is a couple of lines earlier, where INTEGERS are. 6401 line in evac.f90: I do not get this. I do not see any difference between the |
6401 line in evac.f90
Thanks for your reply. |
Thanks! Now I have already commited these corrections to the GitHub. |
(User's Guide) page 74 ........ NO_EVACUATION is set to .FALSE. on the MISC namelist. |
(User's Guide) page 80 The value of DIA_MEAN or if not given (not needed for all distributions) => Is this a complete sentence ? |
(User's Guide) page 81 That's not the case with source code. |
(User's Guide) page 91 => |
Thanks! Now I have started to do the above things:
The value of DIA_MEAN is used to scale the other body
Timo |
If one sets the area of &EVHO as same as that of &EVAC by mistake, FDS+EVAC falls into an infinite loop. I suggest that 6346~6357 lines move to 6381 line position in evac.f90. |
Thanks, it is now moved a couple of lines later. I am not going to put the new source TimoK |
evac.f90
->
FINE -> FIND |
Thanks, I made the change today. I was on a parental leave 3 months, now back at the office. Wbr, |
The speed-dependent social force is implemented as below (evac.f90). However, I do not quite get the idea. It seems that A_WALL is decreased for some reason. Does anyone know how the force is adjusted? So if the actual speed is less than desired speed, the social force and wall force will decrease. Is that right?
|
Excuse me, I have a question. OUTPUT_QUANTITY(245)%NAME = 'HUMAN_CONTACT_LINEFORCE' OUTPUT_QUANTITY(246)%NAME = 'HUMAN_TOTAL_LINEFORCE' |
Well, the outputs (labels, units, etc. defined in the data.f90) are more like pressure outputs. Think that the agent is a two dimensional circle. If the agent is in a really dense human crowd, the other persons are more or less making the agent to feel large pressure. Units of pressure is N/m2. But now we have just a two dimensional circle ==> N/m is a better unit. Speed dependent social force: FAC_A_WALL = 1.0 by default. And: If the agent is walking slower than the desired walking speed v0_i, the human-human and human-wall social forces are both made weaker. So, the agent can go closer to the (side) walls. Why not to change the A_WALL larger, when going fast? Well, you could try. I did not find this very usuful, because usually the egress routes are crowded and, typically, the walking speeds are less than the preferred (unimpeded) walking speeds. So, if the agents are going faster than v0_i ==> there are just few persons ==> things do not matter too much how close these are to walls. "do not matter" = the total evacuation time "sense". But things could be better looking in Smokeview, e.g., more natural looking. If the agent speed is low (or zero, i.e., standing) => social force is 50% of its "normal speed value". Why? Well, you need some social force so that in a crowd the agents do not touch each others. What should be its strength? I just played with the values and this choice seemed to be good enough. See the FDS+Users guide section "5.3 Human Parameter Sensitivity". TimoK |
Hi, Timo. Thanks. The speed-dependent social force is a good thing, and it adjusts the force in different occasions. Also, I checked the 'HUMAN_CONTACT_LINEFORCE' and 'HUMAN_TOTAL_LINEFORCE' in evac.f90
Please double check. Thanks. What do fed_max_door and k_ave_door represent in the code (evac.f90)? They seem to be important indicators related to hazard conditions, do they? For example, the following code is for visible doors.
Also, I do not quite get rad_flux in evac.f90. Is it the heat radiation represented by HUMAN_GRID(i,j)%RADFLUX? However, I thought radiation should be a vector??? OK. Here is some update about RADFLUX in evac.f90: BTW, where is Timo? He does not like Github? |
Yes, the output CASE(245) is the contact forces (per metre of the "body circle") and CASE(246) is the total force, i.e, it includes the social force also. Now the default in FDS+Evac is the K_ave_door criterion, i.e., the visibility (or smoke density). So, by, default, FED_DOOR_CRIT < 0.0. Some lines copied from evac.f90 (the present one in GitHub): Line 15829 about: Make these zero before a sum loop. The K_ave_door is not put zero, because there So, for the visibility criterion, the average K is calculated/estimated for the different doors. For the FED criterion (FED_DOOR_CRIT >0) the FED dose is estimated. The radflux is the integrated radiant intensity or something like that. It is not directly related to the radiation coming from some direction. But it tells something about average radiation over all angles. If it is large => probably too hot for a human. Well, might be that gas temperature would tell this information also. TimoK |
Well, accidentally closed this one (I pushed a wrong button). TimoK |
Hi, Timo. How to use the falling down model in evac module? |
Well, the falling down model was something that a student was checking. But that work was not finished. So, the model might not work anymore. It was a simple model. If I figure out correctly, an agent falls down, if the contact force was too high. There was some probability for this falling down also, if I remember correcty. And if you walked over a fallen down agent you could fall down. All of these features might be in the code that is inside evac.f90 or they are not. Some features might have just been something that we thought that we could implement. FDS+Evac is treating the agent dynamics strictly in two dimensions, so falling down is not easy. One can not make any physical model, just some statistical model or some rule based model. |
Hi, Timo, I have tested the falling down model in a doorway example and it works fine generally. I read part of the code, and as you said, the model implementation is not complete.
I think it should be OK. So the probablity is computed only for 0.1_EB time interval, and TAU_FALL_DOWN is not used there. Please omit my previous comment.
|
I think it should be HR%T_CheckFallDown = T + TAU_FALL_DOWN No, it should be as it is. HR%T_CheckFallDown is the time, when the agent (last) checked the falling down. See: " .AND. T-HR%T_CheckFallDown > 0.1_EB)". So, the IF statement checks if there has been more than 0.1s from the last check => recheck. Yes, the D_OVERLAP_FALL is a measure when an agent falls down. And note, that the A in the social force are speed dependent:
You could also make the B speed dependent and change the A and B speed reduction factors so TimoK |
Following is 'line 279' of read.f90.
I think this line has no meaning since EVAC_Z_OFFSET is arbitrary.
At subroutine READ_VENT,
FDS makes two more VENTs for EVAC.
However, later
These two VENTs are rejected by following "Evacuation criteria"
As a result, adding the VENTs has no meaning.
How about my thought ?
at line 5892 of evac.f90
=>
At line 6014~6016 In evac.f90
=>
The text was updated successfully, but these errors were encountered: