FDS+EVAC: "Access violation" error

227 views
Skip to first unread message

Michele

unread,
Feb 6, 2010, 5:19:20 AM2/6/10
to FDS SMV Discussion Groups
Hi,
I'm trying to simulate a very simple evacuation case but when runnning it I get following error message
"forrtl: severe (157): Program Exception - access violation"
 
Following the fds file. I tried to find out the origin of the error and seems to be the presence of the 2 meshes.
When elminatin one of the 2 meshes (by simply deleting the ampersand on the mesh line), the simulation runs, but it fails if both meshes are active.
How can I solve the problem?
 
This is the complete fds file (Version: 5.4.3 , SVN: 5210)
 
&HEAD CHID='room2'/
&TIME T_END=40.00/
&MESH ID='FIRE mesh', IJK=30,30,6, XB=0.00,10.00,0.00,10.00,0.00,2.00/
&MESH ID='EVAC mesh', IJK=30,30,1, XB=0.00,10.00,0.00,10.00,0.00,2.00, EVACUATION=.TRUE., EVAC_HUMANS=.TRUE./
&SURF ID='Burner',
      COLOR='RED',
      HRRPUA=500.00/
&SURF ID='OUTFLOW',
      RGB=26,128,26,
      VEL=1.0000000E-006,
      TAU_V=0.1000/
&VENT SURF_ID='Burner', XB=4.00,5.00,4.00,5.00,0.00,0.00, EVACUATION=.FALSE., MESH_ID='FIRE mesh'/ Burner
&VENT SURF_ID='OPEN', XB=9.00,10.00,9.00,10.00,2.00,2.00, EVACUATION=.FALSE., MESH_ID='FIRE mesh'/ Fire suppression
&VENT SURF_ID='OUTFLOW', XB=0.00,1.00,0.00,0.00,0.00,2.00, EVACUATION=.TRUE., MESH_ID='EVAC mesh'/ Vent exit
&PERS ID='PERSON', DEFAULT_PROPERTIES='Male'/
&EXIT ID='main exit', XB=0.00,1.00,0.00,0.00,0.00,2.00, IOR=-2, MESH_ID='EVAC mesh', VENT_FFIELD='EVAC mesh', FLOW_FIELD_ID='EVAC mesh'/
&EVAC ID='INITIAL POSITION', XB=5.00,6.00,5.00,6.00,0.00,0.00, MESH_ID='EVAC mesh', NUMBER_INITIAL_PERSONS=1, PERS_ID='PERSON', FLOW_FIELD_ID='EVAC mesh'/
&TAIL /
 
Thanks for the help.
Michele
 

TimoK

unread,
Feb 8, 2010, 3:49:58 AM2/8/10
to FDS and Smokeview Discussions
Hi Michele,

Thanks for this catch. I have corrected this one and
it should be in the version "SVN Revision: 5544". So,
the next maintenance/minor release version should work.
The next thing might be fds 5.5, so you might need to
wait a little bit. I do not know why your case did not
run and my test cases have been running nicely. Something
funny going on with the compiler.

One comment to your input: Add the pre-evacutaion time
(and detection time) distribution to your PERS-line, like:

PRE_EVAC_DIST=1,PRE_LOW=1.0,PRE_HIGH=2.0,
DET_EVAC_DIST=0,DET_MEAN=0.0,

T_pre: uniform distr.: 1.0 - 2.0 s
T_det: zero s.

The user should always give some T_det and T_pre. These are
really important parameters for the evacuation time calculation.
Defaults are zero for both.

TimoK

PS. Next time, use the Issue Tracker to report a bug. When
ever you get "Program Exception - access violation"
or similar Fortran errors, then this is usually some
bug in the program. Or bad user inputs, which the program
should check.

TimoK

unread,
Feb 8, 2010, 4:58:24 AM2/8/10
to FDS and Smokeview Discussions
Hi Michele,

I found a work around:

&MESH ID='EVAC_mesh', IJK=60,60,1, XB=0.00,10.00,0.00,10.00,0.50,1.50,
EVACUATION=.TRUE., EVAC_HUMANS=.TRUE. /

works. You should change also exit,evac,evacuantion mesh vents, etc
so that the belong the new XB. In your original file you had same XB
for both fire and evacuation meshes. That made problems. It should not
have, but there was a bug in the program. All my test cases have
different XB for evac and fire meshes.

WORK AROUND: No fire mesh should fit completely inside any evacuation
mesh. Thus, having z-dimension less for evacuation mesh than for fire
mesh will cure this bug.

Details: main.f90, line about 1170:

IF ( M2%XS>=M%XS .AND. M2%XF<=M%XF .AND. M2%YS>=M%YS .AND. M2%YF<=M
%YF .AND. M2%ZS>=M%ZS .AND. M2%ZF<=M%ZF ) FOUND = .TRUE.

This compares different meshes, XS = XB1, XF=XB2, YS=XB3, and so on.
And "M%" and "M2" refer to the two meshes that are compared. One
should fave found=.false. if mesh1 or mesh2 or both are evacuation
meshes. I just checked that mesh2 was evac-mesh. So if mesh1 was
evac mesh, it found mesh2 to be the fire mesh in your case.
(The test: check if mesh2 is "inside" the mesh1 totally).

So, you can be using "old" fds5.exe, but change your mesh XB so, that
the evacuation meshes does not "fit totally inside any fire mesh".

See the FDS+Evac manual:
http://virtual.vtt.fi/virtual/proj6/fdsevac/documents/FDS+EVAC_5_Guide.pdf
Page 61, and read 8.1 The MESH Namelist Group. Your z_min and z_max
for
evacuation meshes should usually be different than fire meshes. You do
not
want to include the floor and ceiling in your evacuation meshes. If
you do
this, then the evacuation meshes will be totally filled with OBST.
Evacuation
meshes have just one cell in the z-direction and all obst touching the
evacuation
mesh grid cell are expanded at least one grid cell thick: If you mesh
touches
floor ==> floor will fill the grid cells completely.

TimoK

Reply all
Reply to author
Forward
0 new messages