firemodels / cfast

Consolidated Model of Fire and Smoke Transport
Other
68 stars 65 forks source link

CFAST freezes #2024

Closed AleksanderKamienski closed 1 year ago

AleksanderKamienski commented 1 year ago

I am running cfast simulations for a simple building geometry with different fire locations. unfortunately, some simulations freeze. Process is created that uses 100% CPU, I have to end it with the kill command. Does anyone of you know how to run CFAST in debug mode to find the problem? Maybe some of you who are advanced in using CFAST could check why the program hangs for the input file below?

I am using ubuntu 22.04. I have compiled version CFAST 7.7.3 Intel_linux_64

below i show you my input file cfast.in:

&HEAD VERSION = 7500, TITLE = 'P_ID_11_S_ID_19' / &TIME SIMULATION = 100, PRINT = 100, SMOKEVIEW = 100, SPREADSHEET = 10 / &INIT PRESSURE = 101325 RELATIVE_HUMIDITY = 50 INTERIOR_TEMPERATURE = 20 EXTERIOR_TEMPERATURE = 25.16 / &MISC LOWER_OXYGEN_LIMIT = 0.15 /

!! SECTION MATL &MATL ID = 'concrete', CONDUCTIVITY = 1.75, SPECIFIC_HEAT = 1.0, DENSITY = 2200.0, EMISSIVITY = 0.94, THICKNESS = 0.15 / &MATL ID = 'gypsum', CONDUCTIVITY = 0.3, SPECIFIC_HEAT = 1.09, DENSITY = 1000.0, EMISSIVITY = 0.85, THICKNESS = 0.03 / &MATL ID = 'glass', CONDUCTIVITY = 0.8, SPECIFIC_HEAT = 0.84, DENSITY = 2500.0, EMISSIVITY = 0.9, THICKNESS = 0.013 / &MATL ID = 'block', CONDUCTIVITY = 0.3, SPECIFIC_HEAT = 0.84, DENSITY = 800.0, EMISSIVITY = 0.85, THICKNESS = 0.2 / &MATL ID = 'brick', CONDUCTIVITY = 0.3, SPECIFIC_HEAT = 0.9, DENSITY = 840.0, EMISSIVITY = 0.85, THICKNESS = 0.2 / !! SECTION COMPA &COMP ID = 's1', WIDTH = 2.65, DEPTH = 6.0, HEIGHT = 3.5, CEILING_MATL_ID = 'concrete', WALL_MATL_ID = 'concrete', FLOOR_MATL_ID = 'concrete', SHAFT = .TRUE., ORIGIN = 6.65, 6.9, 0.0, LEAK_AREA = 0.00035, 5.2e-05, GRID = 50, 50, 50 / &COMP ID = 'r2', WIDTH = 5.35, DEPTH = 6.85, HEIGHT = 3.5, CEILING_MATL_ID = 'concrete', WALL_MATL_ID = 'concrete', FLOOR_MATL_ID = 'concrete', ORIGIN = 9.3, 2.65, 0.0, LEAK_AREA = 0.00035, 5.2e-05, GRID = 50, 50, 50 / &COMP ID = 'c3', WIDTH = 18.9, DEPTH = 3.4, HEIGHT = 3.5, CEILING_MATL_ID = 'concrete', WALL_MATL_ID = 'concrete', FLOOR_MATL_ID = 'concrete', HALL = .TRUE., ORIGIN = 9.3, 9.5, 0.0, LEAK_AREA = 0.00035, 5.2e-05, GRID = 50, 50, 50 / &COMP ID = 'r4', WIDTH = 4.3, DEPTH = 6.85, HEIGHT = 3.5, CEILING_MATL_ID = 'concrete', WALL_MATL_ID = 'concrete', FLOOR_MATL_ID = 'concrete', ORIGIN = 14.65, 2.65, 0.0, LEAK_AREA = 0.00035, 5.2e-05, GRID = 50, 50, 50 / &COMP ID = 'r5', WIDTH = 4.75, DEPTH = 6.85, HEIGHT = 3.5, CEILING_MATL_ID = 'concrete', WALL_MATL_ID = 'concrete', FLOOR_MATL_ID = 'concrete', ORIGIN = 18.95, 2.65, 0.0, LEAK_AREA = 0.00035, 5.2e-05, GRID = 50, 50, 50 / &COMP ID = 'r6', WIDTH = 4.5, DEPTH = 6.85, HEIGHT = 3.5, CEILING_MATL_ID = 'concrete', WALL_MATL_ID = 'concrete', FLOOR_MATL_ID = 'concrete', ORIGIN = 23.7, 2.65, 0.0, LEAK_AREA = 0.00035, 5.2e-05, GRID = 50, 50, 50 / &COMP ID = 's7', WIDTH = 2.55, DEPTH = 6.0, HEIGHT = 3.5, CEILING_MATL_ID = 'concrete', WALL_MATL_ID = 'concrete', FLOOR_MATL_ID = 'concrete', SHAFT = .TRUE., ORIGIN = 28.2, 6.9, 0.0, LEAK_AREA = 0.00035, 5.2e-05, GRID = 50, 50, 50 /

!! SECTION DOORS AND HOLES &VENT TYPE = 'WALL', ID = 'd1', COMP_IDS = 's1', 'c3', WIDTH = 0.9, TOP = 2.0, BOTTOM = 0.0, OFFSET = 4.14, FACE = 'LEFT', CRITERION = 'TIME' T = 0 F = 1 / &VENT TYPE = 'WALL', ID = 'd3', COMP_IDS = 'c3', 'r4', WIDTH = 0.9, TOP = 2.0, BOTTOM = 0.0, OFFSET = 7.09, FACE = 'FRONT', CRITERION = 'TIME' T = 0 F = 1 / &VENT TYPE = 'WALL', ID = 'd4', COMP_IDS = 'c3', 'r5', WIDTH = 0.9, TOP = 2.0, BOTTOM = 0.0, OFFSET = 11.04, FACE = 'FRONT', CRITERION = 'TIME' T = 0 F = 1 / &VENT TYPE = 'WALL', ID = 'd5', COMP_IDS = 'c3', 'r6', WIDTH = 0.9, TOP = 2.0, BOTTOM = 0.0, OFFSET = 17.34, FACE = 'FRONT', CRITERION = 'TIME' T = 0 F = 1 / &VENT TYPE = 'WALL', ID = 'd6', COMP_IDS = 'c3', 's7', WIDTH = 0.9, TOP = 2.0, BOTTOM = 0.0, OFFSET = 1.89, FACE = 'LEFT', CRITERION = 'TIME' T = 0 F = 1 /

!! SECTION FIRE

&FIRE ID = 'f5', COMP_ID = 'r5', FIRE_ID = 'f5', LOCATION = 2.38, 3.43 / &CHEM ID = 'f5', CARBON = 6, CHLORINE = 0, HYDROGEN = 10, NITROGEN = 0, OXYGEN = 5, HEAT_OF_COMBUSTION = 20.0, RADIATIVE_FRACTION = 0.326 / &TABL ID = 'f5', LABELS = 'TIME', 'HRR', 'HEIGHT', 'AREA', 'CO_YIELD', 'SOOT_YIELD', 'HCN_YIELD', 'HCL_YIELD', 'TRACE_YIELD' / &TABL ID = 'f5', DATA = 0, 0, 1, 0.0, 0.019, 0.147, 0.023, 0.028, 0 / &TABL ID = 'f5', DATA = 4, 1216, 1, 2.23, 0.019, 0.147, 0.023, 0.028, 0 / &TABL ID = 'f5', DATA = 900, 1629, 1, 2.99, 0.019, 0.147, 0.023, 0.028, 0 / &TABL ID = 'f5', DATA = 900, 1216, 1, 2.23, 0.019, 0.147, 0.023, 0.028, 0 / &TABL ID = 'f5', DATA = 904, 0, 1, 0.0, 0.019, 0.147, 0.023, 0.028, 0 /

!! SECTION SPRINKLERS &DEVC ID = 'sp2' TYPE = 'SPRINKLER', COMP_ID = 'r2', LOCATION = 2.67, 3.42, 3.5, SETPOINT = 5.88, RTI = 100, SPRAY_DENSITY = 7e-05 / &DEVC ID = 'sp4' TYPE = 'SPRINKLER', COMP_ID = 'r4', LOCATION = 2.15, 3.42, 3.5, SETPOINT = 3.14, RTI = 100, SPRAY_DENSITY = 7e-05 / &DEVC ID = 'sp3' TYPE = 'SPRINKLER', COMP_ID = 'c3', LOCATION = 9.45, 1.7, 3.5, SETPOINT = 9.19, RTI = 100, SPRAY_DENSITY = 7e-05 / &DEVC ID = 'sp1' TYPE = 'SPRINKLER', COMP_ID = 's1', LOCATION = 1.32, 3.0, 3.5, SETPOINT = 2.71, RTI = 100, SPRAY_DENSITY = 7e-05 / &DEVC ID = 'sp7' TYPE = 'SPRINKLER', COMP_ID = 's7', LOCATION = 1.27, 3.0, 3.5, SETPOINT = -5.41, RTI = 100, SPRAY_DENSITY = 7e-05 /

&TAIL /

AleksanderKamienski commented 1 year ago

Do you know a way to debug cfast on linux that frezes for specific input files to determine the cause of the freze?

rmcdermo commented 1 year ago

I would compile the debug executable and put print statements at various places in the main flow. Continue this process until you narrow in on where the code is hanging.

preneke commented 1 year ago

There is a debug output. It is &DIAG DEBUG_PRINT = 'ON', RESIDUAL_DEBUG_PRINT = 'ON ' / They are independent prints and each creates large files. They are helpful when you are looking for specific errors. They may be a bit overwhelming when you are just searching.

Another thing you can try is to set SPREADSHEET = 0.1 or even smaller. This will give you a lot of outputs but you might be able to find the problem. Often the problem is that some value is oscillating. If you look at all the outputs you might find one that is oscillating and that might be the problem. This is also a strategy to look for in debug files.

One other thing you can try is use CData. Since a specific fire scenario is relatively insensitive to small changes you can set inputs to have small random variations and see if any of the cases work. It often doesn't take that much of a change, less then 1% at times, to get a case to run and the differences in values are small compared to the original case. This might be a second step if you find certain inputs that are associated with oscillating outputs.

I hope this helps.

mcgratta commented 1 year ago

The main problem is your heat of combustion. The units are kJ/kg. I think you are assuming 20 MJ/kg. The Windows version of CFAST throws a warning. Also, the numbers on the TIME line are time increments. Thus, you are asking for Smokeview output every 100 s. You actually want Smokeview output every 1 s or something like that.