Skip to content

Commit 480bb3c

Browse files
committed
FireX FDS Merge: Merging with firemodels/master
2 parents 8a511f1 + 088273f commit 480bb3c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+61
-120
lines changed

Build/makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ MKL_DIR_UNIX := $(subst \,/,$(MKLROOT))
7272
MKL_DIR_INTEL := $(MKL_DIR_UNIX)/lib/intel64
7373
MKL_DIR_BASE := $(MKL_DIR_UNIX)/lib
7474
MKL_BLA_LIB := mkl_blacs_intelmpi_lp64
75-
MKL_BLA_PATH_A := $(MKL_DIR_INTEL)/lib$(MKL_BLA_LIB).a
76-
MKL_BLA_PATH_LIB := $(MKL_DIR_INTEL)/$(MKL_BLA_LIB).lib
75+
MKL_BLA_PATH_A := "$(MKL_DIR_INTEL)/lib$(MKL_BLA_LIB).a"
76+
MKL_BLA_PATH_LIB := "$(MKL_DIR_INTEL)/$(MKL_BLA_LIB).lib"
7777
ifneq (,$(wildcard $(MKL_BLA_PATH_A) $(MKL_BLA_PATH_LIB)))
7878
MKLLIBDIR := $(MKL_DIR_INTEL)
7979
else

Source/cons.f90

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ MODULE GLOBAL_CONSTANTS
182182

183183
LOGICAL :: HVAC_DEBUG=.FALSE. !< Output known hvac values to smokeview
184184
LOGICAL :: RADIATION=.TRUE. !< Perform radiation transport
185+
LOGICAL :: UPDATE_ALL_ANGLES=.FALSE. !< Update all radiation angles the next time the solver is called
185186
LOGICAL :: INCLUDE_PYROLYSIS=.FALSE. !< Solid phase pyrolysis is included in the simulation
186187
LOGICAL :: EXCHANGE_RADIATION=.FALSE. !< Do an MPI radiation exchange at this time step
187188
LOGICAL :: EXCHANGE_OBST_MASS=.FALSE. !< Exchange mass loss information for obstructions bordering interpolated meshes
@@ -572,7 +573,7 @@ MODULE GLOBAL_CONSTANTS
572573

573574
INTEGER :: ICYC,NFRAMES,PERIODIC_TEST=0,SIM_MODE=3,TURB_MODEL=0,FISHPAK_BC(3)=-1,&
574575
STOP_AT_ITER=0,WALL_INCREMENT=2,WALL_COUNTER=0,&
575-
CLIP_DT_RESTRICTIONS_MAX=5,BNDF_TIME_INTEGRALS=0
576+
CLIP_DT_RESTRICTIONS_MAX=0,BNDF_TIME_INTEGRALS=0
576577

577578
LOGICAL :: UPDATE_DEVICES_AGAIN=.FALSE.
578579

Source/dump.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6724,7 +6724,7 @@ SUBROUTINE DUMP_SLCF(T,DT,NM,IFRMT)
67246724
STRING => MESHES(NM)%STRING
67256725
ENDIF
67266726
N_STRINGS = N_STRINGS + 1
6727-
WRITE(STRING(N_STRINGS),'(A,I8,A,I0,I6)') 'PL3D ',ITM,'.',ITM1,NM
6727+
WRITE(STRING(N_STRINGS),'(A,I8,A,I2.2,I6)') 'PL3D ',ITM,'.',ITM1,NM
67286728
N_STRINGS = N_STRINGS + 1
67296729
WRITE(STRING(N_STRINGS),'(1X,A)') TRIM(FN_PL3D(NM))
67306730
DO IQ=1,5

Source/init.f90

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,24 @@ SUBROUTINE INITIALIZE_WALL_ARRAY(NM)
5252
M%WALL(0)%BOUNDARY_TYPE = NULL_BOUNDARY
5353
M%WALL(0)%SURF_INDEX = DEFAULT_SURF_INDEX
5454

55+
! Allocate arrays that hold boundary info. For the moment, these arrays are sized to handle only the external cells, but they
56+
! will be expanded to include internal cells as needed.
57+
58+
M%N_BOUNDARY_COORD_DIM = M%N_WALL_CELLS_DIM
59+
M%N_BOUNDARY_PROP1_DIM = M%N_WALL_CELLS_DIM
60+
M%N_BOUNDARY_PROP2_DIM = M%N_WALL_CELLS_DIM
61+
M%N_BOUNDARY_RADIA_DIM = M%N_WALL_CELLS_DIM
62+
63+
ALLOCATE(M%BOUNDARY_COORD_OCCUPANCY(M%N_BOUNDARY_COORD_DIM)) ; M%BOUNDARY_COORD_OCCUPANCY = 0
64+
ALLOCATE(M%BOUNDARY_PROP1_OCCUPANCY(M%N_BOUNDARY_PROP1_DIM)) ; M%BOUNDARY_PROP1_OCCUPANCY = 0
65+
ALLOCATE(M%BOUNDARY_PROP2_OCCUPANCY(M%N_BOUNDARY_PROP2_DIM)) ; M%BOUNDARY_PROP2_OCCUPANCY = 0
66+
ALLOCATE(M%BOUNDARY_RADIA_OCCUPANCY(M%N_BOUNDARY_RADIA_DIM)) ; M%BOUNDARY_RADIA_OCCUPANCY = 0
67+
68+
ALLOCATE(M%BOUNDARY_COORD(M%N_BOUNDARY_COORD_DIM))
69+
ALLOCATE(M%BOUNDARY_PROP1(M%N_BOUNDARY_PROP1_DIM))
70+
ALLOCATE(M%BOUNDARY_PROP2(M%N_BOUNDARY_PROP2_DIM))
71+
ALLOCATE(M%BOUNDARY_RADIA(M%N_BOUNDARY_RADIA_DIM))
72+
5573
! Set up WALL for external boundaries of the current mesh
5674

5775
M%N_WALL_CELLS = 0

Source/main.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1703,7 +1703,7 @@ SUBROUTINE CREATE_OR_REMOVE_OBSTRUCTIONS
17031703
DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX
17041704
CALL REASSIGN_WALL_CELLS(T,NM)
17051705
ENDDO
1706-
1706+
UPDATE_ALL_ANGLES = .TRUE. ! Update all radiation angles the next time radiation is updated
17071707
ENDIF
17081708

17091709
END SUBROUTINE CREATE_OR_REMOVE_OBSTRUCTIONS

Source/prec.f90

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ MODULE PRECISION_PARAMETERS
4343
REAL(FB), PARAMETER :: TWO_EPSILON_FB=2._EB*EPSILON(1._FB) !< A very small number 4 byte accuracy
4444
REAL(EB), PARAMETER :: TINY_EB=TINY(1._EB) !< The smallest resolvable 8 byte real number
4545
REAL(EB), PARAMETER :: HUGE_EB=HUGE(1._EB) !< The largest resolvable 8 btye real number
46+
REAL(EB), PARAMETER :: HUGE_FB=HUGE(1._FB) !< A large number but not too large for various operations
4647

4748
! Often used numbers
4849

Source/radi.f90

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3525,7 +3525,7 @@ SUBROUTINE RADIATION_FVM
35253525

35263526
! Check if it time to update radiation intensity field
35273527

3528-
IF ( MOD(RAD_CALL_COUNTER,TIME_STEP_INCREMENT)==0 .OR. INITIALIZATION_PHASE .OR. ICYC==1) THEN
3528+
IF ( MOD(RAD_CALL_COUNTER,TIME_STEP_INCREMENT)==0 .OR. INITIALIZATION_PHASE .OR. ICYC==1 .OR. UPDATE_ALL_ANGLES) THEN
35293529
UPDATE_INTENSITY = .TRUE.
35303530
EXCHANGE_RADIATION = .TRUE.
35313531
ELSE
@@ -3558,7 +3558,7 @@ SUBROUTINE RADIATION_FVM
35583558
IF (UPDATE_INTENSITY) THEN
35593559
DO IW=1,N_INTERNAL_WALL_CELLS+N_EXTERNAL_WALL_CELLS
35603560
WC => WALL(IW)
3561-
IF (WC%B1_INDEX==0) CYCLE
3561+
IF (WC%B1_INDEX==0 .OR. WC%BOUNDARY_TYPE==NULL_BOUNDARY) CYCLE
35623562
B1 => BOUNDARY_PROP1(WC%B1_INDEX)
35633563
B1%Q_RAD_IN = 0._EB
35643564
SF => SURFACE(WALL(IW)%SURF_INDEX)
@@ -3949,7 +3949,7 @@ SUBROUTINE RADIATION_FVM
39493949
! If updating intensities first time, sweep ALL angles
39503950

39513951
N_UPDATES = 1
3952-
IF (INITIALIZATION_PHASE .OR. ICYC==1) N_UPDATES = ANGLE_INCREMENT
3952+
IF (INITIALIZATION_PHASE .OR. ICYC==1 .OR. UPDATE_ALL_ANGLES) N_UPDATES = ANGLE_INCREMENT
39533953

39543954
UPDATE_LOOP: DO I_UIID = 1,N_UPDATES
39553955

@@ -4580,6 +4580,10 @@ SUBROUTINE RADIATION_FVM
45804580

45814581
ENDIF
45824582

4583+
! UPDATE_ALL_ANGLES is a one-time only logical. If needed again, it will be reset again.
4584+
4585+
UPDATE_ALL_ANGLES = .FALSE.
4586+
45834587
END SUBROUTINE RADIATION_FVM
45844588

45854589

Source/read.f90

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1902,7 +1902,6 @@ SUBROUTINE READ_MISC
19021902

19031903
TMPMIN = MAX(1._EB , MIN(TMPA,TMPM)-10._EB)
19041904
TMPMAX = 3000._EB
1905-
RHOMAX = 0._EB
19061905

19071906
! Miscellaneous
19081907

@@ -2376,32 +2375,32 @@ SUBROUTINE READ_DUMP
23762375
ENDIF
23772376

23782377
DT_BNDF = -1._EB ; RAMP_BNDF = 'null' ; DT_BNDF_SPECIFIED = DT_BNDF
2379-
DT_CPU = HUGE(EB) ; RAMP_CPU = 'null' ; DT_CPU_SPECIFIED = DT_CPU
2378+
DT_CPU = HUGE_FB ; RAMP_CPU = 'null' ; DT_CPU_SPECIFIED = DT_CPU
23802379
DT_CTRL = -1._EB ; RAMP_CTRL = 'null' ; DT_CTRL_SPECIFIED = DT_CTRL
23812380
DT_DEVC = -1._EB ; RAMP_DEVC = 'null' ; DT_DEVC_SPECIFIED = DT_DEVC
23822381
DT_FLUSH = -1._EB ; RAMP_FLUSH = 'null' ; DT_FLUSH_SPECIFIED = DT_FLUSH
2383-
DT_GEOM = HUGE(EB) ; RAMP_GEOM = 'null' ; DT_GEOM_SPECIFIED = DT_GEOM
2382+
DT_GEOM = HUGE_FB ; RAMP_GEOM = 'null' ; DT_GEOM_SPECIFIED = DT_GEOM
23842383
DT_HRR = -1._EB ; RAMP_HRR = 'null' ; DT_HRR_SPECIFIED = DT_HRR
23852384
DT_HVAC = -1._EB ; RAMP_HVAC = 'null' ; DT_HVAC_SPECIFIED = DT_HVAC
23862385
DT_ISOF = -1._EB ; RAMP_ISOF = 'null' ; DT_ISOF_SPECIFIED = DT_ISOF
23872386
DT_MASS = -1._EB ; RAMP_MASS = 'null' ; DT_MASS_SPECIFIED = DT_MASS
23882387
DT_PART = -1._EB ; RAMP_PART = 'null' ; DT_PART_SPECIFIED = DT_PART
2389-
DT_PL3D = HUGE(EB) ; RAMP_PL3D = 'null' ; DT_PL3D_SPECIFIED = DT_PL3D
2388+
DT_PL3D = HUGE_FB ; RAMP_PL3D = 'null' ; DT_PL3D_SPECIFIED = DT_PL3D
23902389
DT_PROF = -1._EB ; RAMP_PROF = 'null' ; DT_PROF_SPECIFIED = DT_PROF
2391-
DT_RADF = HUGE(EB) ; RAMP_RADF = 'null' ; DT_RADF_SPECIFIED = DT_RADF
2390+
DT_RADF = HUGE_FB ; RAMP_RADF = 'null' ; DT_RADF_SPECIFIED = DT_RADF
23922391
DT_RESTART = (T_END-T_BEGIN)/20._EB ; RAMP_RESTART = 'null' ; DT_RESTART_SPECIFIED = DT_RESTART
23932392
DT_SLCF = -1._EB ; RAMP_SLCF = 'null' ; DT_SLCF_SPECIFIED = DT_SLCF
23942393
DT_SL3D = (T_END-T_BEGIN)/5._EB ; RAMP_SL3D = 'null' ; DT_SL3D_SPECIFIED = DT_SL3D
23952394
DT_SMOKE3D = -1._EB ; RAMP_SMOKE3D = 'null' ; DT_SMOKE3D_SPECIFIED = DT_SMOKE3D
2396-
DT_UVW = HUGE(EB) ; RAMP_UVW = 'null' ; DT_UVW_SPECIFIED = DT_UVW
2397-
DT_VTK = HUGE(EB) ; RAMP_VTK = 'null' ; DT_VTK_SPECIFIED = DT_VTK
2398-
DT_SLCF_VTK = HUGE(EB) ; !RAMP_SLCF_VTK = 'null'
2399-
DT_SL3D_VTK = HUGE(EB) ; !RAMP_SL3D_VTK = 'null'
2400-
DT_SM3D_VTK = HUGE(EB) ; !RAMP_SM3D_VTK = 'null'
2401-
DT_BNDF_VTK = HUGE(EB) ; !RAMP_BNDF_VTK = 'null'
2402-
DT_PART_VTK = HUGE(EB) ; !RAMP_PART_VTK = 'null'
2403-
DT_TMP = HUGE(EB) ; RAMP_TMP = 'null' ; DT_TMP_SPECIFIED = DT_TMP
2404-
DT_SPEC = HUGE(EB) ; RAMP_SPEC = 'null' ; DT_SPEC_SPECIFIED = DT_SPEC
2395+
DT_UVW = HUGE_FB ; RAMP_UVW = 'null' ; DT_UVW_SPECIFIED = DT_UVW
2396+
DT_VTK = HUGE_FB ; RAMP_VTK = 'null' ; DT_VTK_SPECIFIED = DT_VTK
2397+
DT_SLCF_VTK = HUGE_FB ; !RAMP_SLCF_VTK = 'null'
2398+
DT_SL3D_VTK = HUGE_FB ; !RAMP_SL3D_VTK = 'null'
2399+
DT_SM3D_VTK = HUGE_FB ; !RAMP_SM3D_VTK = 'null'
2400+
DT_BNDF_VTK = HUGE_FB ; !RAMP_BNDF_VTK = 'null'
2401+
DT_PART_VTK = HUGE_FB ; !RAMP_PART_VTK = 'null'
2402+
DT_TMP = HUGE_FB ; RAMP_TMP = 'null' ; DT_TMP_SPECIFIED = DT_TMP
2403+
DT_SPEC = HUGE_FB ; RAMP_SPEC = 'null' ; DT_SPEC_SPECIFIED = DT_SPEC
24052404
DIAGNOSTICS_INTERVAL = 100
24062405

24072406
! Read the DUMP line
@@ -7494,7 +7493,7 @@ SUBROUTINE SET_MATL_DEFAULTS
74947493
HEAT_OF_COMBUSTION = -1._EB ! kJ/kg
74957494
HEAT_OF_REACTION = -1.E15_EB ! kJ/kg
74967495
ID = 'null'
7497-
MAX_REACTION_RATE = HUGE(1._EB)
7496+
MAX_REACTION_RATE = HUGE_EB
74987497
MW = -1._EB
74997498
N_REACTIONS = 0
75007499
N_O2 = 0._EB
@@ -10203,8 +10202,8 @@ SUBROUTINE READ_CLIP
1020310202
REAL(EB) :: MAXIMUM_DENSITY,MINIMUM_DENSITY,MINIMUM_TEMPERATURE,MAXIMUM_TEMPERATURE
1020410203
NAMELIST /CLIP/ CLIP_DT_RESTRICTIONS_MAX,FYI,MAXIMUM_DENSITY,MAXIMUM_TEMPERATURE,MINIMUM_DENSITY,MINIMUM_TEMPERATURE
1020510204

10206-
MINIMUM_DENSITY = -999._EB
10207-
MAXIMUM_DENSITY = -999._EB
10205+
MINIMUM_DENSITY = 0.01_EB
10206+
MAXIMUM_DENSITY = 100._EB
1020810207
MINIMUM_TEMPERATURE = -999._EB
1020910208
MAXIMUM_TEMPERATURE = -999._EB
1021010209

@@ -10225,17 +10224,8 @@ SUBROUTINE READ_CLIP
1022510224
IF (MY_RANK==0) WRITE(LU_ERR,'(A)') TRIM(MESSAGE)
1022610225
ENDIF
1022710226

10228-
IF (MINIMUM_DENSITY>0._EB) THEN
10229-
RHOMIN = MINIMUM_DENSITY
10230-
ELSE
10231-
RHOMIN = MIN(0.1_EB*RHOA,2._EB*P_INF*MW_MIN/(R0*TMPMAX))
10232-
ENDIF
10233-
10234-
IF (MAXIMUM_DENSITY>0._EB) THEN
10235-
RHOMAX = MAXIMUM_DENSITY
10236-
ELSE
10237-
RHOMAX = 2._EB*P_INF*MW_MAX/(R0*MAX(TMPMIN,1._EB))
10238-
ENDIF
10227+
RHOMIN = MINIMUM_DENSITY
10228+
RHOMAX = MAXIMUM_DENSITY
1023910229

1024010230
END SUBROUTINE READ_CLIP
1024110231

Utilities/Scripts/qfds.sh

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ benchmark=no
135135
showinput=0
136136
exe=
137137
walltime=99-99:99:99
138+
ACCOUNT=
138139

139140
if [ $# -lt 1 ]; then
140141
usage
@@ -145,9 +146,12 @@ commandline=`echo $* | sed 's/-V//' | sed 's/-v//'`
145146

146147
#*** read in parameters from command line
147148

148-
while getopts 'b:d:e:GhHIj:Ln:o:Pp:q:stT:U:vw:y:Y' OPTION
149+
while getopts 'A:b:d:e:GhHIj:Ln:o:Pp:q:stT:U:vw:y:Y' OPTION
149150
do
150151
case $OPTION in
152+
A)
153+
ACCOUNT="$OPTARG"
154+
;;
151155
b)
152156
EMAIL="$OPTARG"
153157
;;
@@ -387,6 +391,11 @@ cat << EOF >> $scriptfile
387391
#SBATCH --nodes=$nodes
388392
#SBATCH --time=$walltime
389393
EOF
394+
if [ "$ACCOUNT" != "" ]; then
395+
cat << EOF >> $scriptfile
396+
#SBATCH -A=$ACCOUNT
397+
EOF
398+
fi
390399

391400
if [[ $n_openmp_threads -gt 1 ]] || [[ $max_mpi_processes_per_node -lt 1000 ]] ; then
392401
cat << EOF >> $scriptfile

Validation/NIST_Structure_Separation/FDS_Input_Files/SSE_Verification_4MW.fds

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ https://montgomerycomd.alerteagle.com/history2021-jpg.aspx
2727

2828
&REAC FUEL='natural gas', RADIATIVE_FRACTION=0.25/ based off HF5 & HF6 values at 4 MW
2929

30-
&CLIP MINIMUM_DENSITY=0.01/
31-
3230
&RADI NUMBER_RADIATION_ANGLES=400, PATH_LENGTH=2.0/
3331

3432
&VENT DB='XMIN', SURF_ID='OPEN'/

0 commit comments

Comments
 (0)