firemodels / cfast

Consolidated Model of Fire and Smoke Transport
Other
69 stars 67 forks source link

Activation of secondary fires causes core dump in some test cases #261

Closed andersonad closed 9 years ago

andersonad commented 9 years ago

This is the test case from issue #259, with the heat flux of ignition conditions for the peripheral fires reduced to 1500 from 15000. This edit causes a core dump in CFAST 7 compiled using gfortran 4.8.4 on Ubuntu 14.04.

VERSN,7,CFAST Simulation !! !!Scenario Configuration Keywords !! TIMES,900,50,10,10 EAMB,293.15,101300,0 TAMB,293.15,101300,0,50 !! !!Material Properties !! MATL,GYPSUM,0.16,900,790,0.016,0.9,Gypsum Board (5/8 in) MATL,METHANE,0.07,1090,930,0.0127,0.04,"Methane, a transparent gas (CH4)" !! !!Compartment keywords !! COMPA,Comp 1,3.66,3.05,2.4,0,0,0,GYPSUM,OFF,GYPSUM !! !!Vent keywords !! HVENT,1,2,1,0.915,1.8,0.6,1,0.915,0,1,1 HVENT,1,2,2,0.91,2.1,0,1,2.75,0,3,1 !! !!Fire keywords !! !!Fire1 FIRE,1,1.22,1.02,1,1,FLUX,1500,comp1target1,0,1,Fire1 CHEMI,1,4,0,0,0,0.3,5E+07,METHANE TIME,0,171,342 HRR,0,100000,0 SOOT,0,0,0 CO,0,0,0 TRACE,0,0,0 AREA,0.1,0.1,0.1 HEIGH,0,0,0 !!Fire2 FIRE,1,1.22,2.04,1,1,FLUX,1500,comp1target2,0,1,Fire2 CHEMI,1,4,0,0,0,0.3,5E+07,METHANE TIME,0,171,342 HRR,0,100000,0 SOOT,0,0,0 CO,0,0,0 TRACE,0,0,0 AREA,0.1,0.1,0.1 HEIGH,0,0,0 !!mainfire FIRE,1,2.44,1.02,1,1,TIME,0,0,0,0,mainfire CHEMI,1,4,0,0,0,0.3,5E+07,METHANE TIME,0,171,342 HRR,0,100000,0 SOOT,0,0,0 CO,0,0,0 TRACE,0,0,0 AREA,0.1,0.1,0.1 HEIGH,0,0,0 !!Fire4 FIRE,1,2.44,2.04,1,1,FLUX,1500,comp1target4,0,1,Fire4 CHEMI,1,4,0,0,0,0.3,5E+07,METHANE TIME,0,171,342 HRR,0,100000,0 SOOT,0,0,0 CO,0,0,0 TRACE,0,0,0 AREA,0.1,0.1,0.1 HEIGH,0,0,0 !! !!Target and detector keywords !! TARGET,1,1.22,1.02,1,0,0,1,GYPSUM,EXPLICIT,PDE,0.5,comp1target1 TARGET,1,1.22,2.04,1,0,0,1,GYPSUM,EXPLICIT,PDE,0.5,comp1target2 TARGET,1,2.44,2.04,1,0,0,1,GYPSUM,EXPLICIT,PDE,0.5,comp1target4

andersonad commented 9 years ago

The error output is as follows:

Program received signal SIGFPE: Floating-point exception - erroneous arithmetic operation.

Backtrace for this error:

0 0x7F691557F777

1 0x7F691557FD7E

2 0x7F6914ED1D3F

3 0x4321FF in **target_routines_MOD_target_flux at target.f90:?

4 0x434377 in __target_routines_MOD_target

5 0x441708 in __solve_routines_MOD_update_solution

6 0x442C88 in __solve_routines_MOD_solve_simulation

7 0x4575DD in MAIN** at cfast.f90:?

rpeacoc commented 9 years ago

I'll take a look. I do see that the fire format is an older format. The first thing I'll try is to update the input file to the latest input file format using CEdit. (Help, Update Input Files)

rpeacoc commented 9 years ago

This case (as submitted) does not fail for us on WIndows or gnu on OS X. I'll try Ubuntu as soon as I set up the system as consistent to yours as we can.

andersonad commented 9 years ago

Something of an aside from this issue, but what is required to build the new version of CEdit on a Windows system? I see that it is vb code but could not get the makefile to work. I ask only because it would help a lot with ensuring the input files are up to date.

rpeacoc commented 9 years ago

The batch file for CEdit is really just one I created to make it easier to make CEDit for distribution. It breaks often for me too. It needs a real make file, but Visual Basic isn't good at telling you what it's actually doing. That said, it does also depend on an external library from ComponentOne that is several hundred US dollars per year to license. You can always download and install the release package and then only use the CEdit part for windows to maintain input files as needed.

Cedit didn't make any big changes to the file you submitted; only changing some unused parameters in the new file format.

rpeacoc commented 9 years ago

Finally ... we are able to reproduce the problem. The temperature of the target once the fire ignites is going unrealistic. Our calculation of flux from the fire(s) to the target seems to break down when the target is near it's own fire source. We'll continue to look to see how to fix it. Thanks for finding this.

rpeacoc commented 9 years ago

I've pushed an interim fix for this issue in 72c1c4f. See if this resolves your crash. We still need to review this to make sure this is the right way to fix it.

The problem was that when the target was very close to (and pointing towards) the fire, the fire flux was so large that it was sending the target surface temperature to non-physical values. We've fixed this by limiting the target temperature to the flame temperature.

andersonad commented 9 years ago

The changes resolve the crash for the test case.

I am closing this issue now. If necessary, I recommend opening a new issue describing what aspect of this fix bears review so you do not forget.