Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
e7a3ea4
FDS Verification: address scatterplot problems for HVAC_geom cases
rmcdermo Jun 4, 2025
8266e41
Merge pull request #14728 from rmcdermo/master
rmcdermo Jun 4, 2025
709573d
FDS Source: update Z_LS calculation to properly account for terrain c…
ericvmueller Jun 4, 2025
f9466b9
FDS Source: Add additional error checks for HVAC+GEOM
drjfloyd Jun 4, 2025
ca8d75d
Merge pull request #14731 from drjfloyd/master
drjfloyd Jun 4, 2025
e399232
FDS Source: remove old code related to first attempt at HVAC on GEOM
rmcdermo Jun 4, 2025
f2059b5
Merge pull request #14732 from rmcdermo/master
rmcdermo Jun 4, 2025
af55ea2
qfds.sh: Add option to use all available cores
mcgratta Jun 4, 2025
bab747f
Merge pull request #14734 from mcgratta/master
mcgratta Jun 4, 2025
fc4f3cc
FDS Source: Fix HVAC error checks
drjfloyd Jun 5, 2025
9d17669
Merge pull request #14736 from drjfloyd/master
drjfloyd Jun 5, 2025
011fa1e
qfds.sh: Add help message
mcgratta Jun 5, 2025
2349cf6
Merge pull request #14737 from mcgratta/master
mcgratta Jun 5, 2025
a756de1
Merge pull request #14739 from ericvmueller/master
ericvmueller Jun 5, 2025
57b8e2e
FDS Tech Guide: add chapter for Wildland Fire Spread
ericvmueller Jun 5, 2025
3b86bc2
Merge pull request #14740 from ericvmueller/master
ericvmueller Jun 5, 2025
b5b6931
FDS User Guide: Remove HVAC from GEOM limitation list
drjfloyd Jun 5, 2025
4d0b95f
Merge pull request #14741 from drjfloyd/master
drjfloyd Jun 5, 2025
f858324
FireX: Merge with firemodels/master
cxp484 Jun 5, 2025
824334b
Merge remote-tracking branch 'firemodels/FireX' into FireX
cxp484 Jun 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions Manuals/Bibliography/FDS_general.bib
Original file line number Diff line number Diff line change
Expand Up @@ -6830,6 +6830,17 @@ @BOOK{Wilcox:1
publisher = {DCW Industries, Inc.},
}

@TECHREPORT{Wilson:1980,
author = {Wilson, R.},
title = {{Reformulation of forest fire spread equations in SI units}},
year = 1980,
institution = {Intermountain Forest and Range Experiment Station, USDA Forest Service},
type = {Research Paper},
number = {INT-292},
address = {Ogden, Utah},
note = {\href{https://www.fs.usda.gov/rm/pubs\_int/int\_rn292.pdf}{https://www.fs.usda.gov/rm/pubs\_int/int\_rn292.pdf}}
}

@TECHREPORT{DelCo_TN,
author = {J.M. Willi},
title = {{Propane Gas Fire Experiments in Residential Scale Structures}},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
{\newcommand{\gitrevision}{unknown} }

\ifcompgeom
\includeonly{Introduction_Chapter, Equation_Chapter, Mass_Chapter, Momentum_Chapter, Combustion_Chapter, Radiation_Chapter, Solid_Chapter, Aerosol_Chapter, Particle_Chapter, Device_Chapter, HVAC_Chapter, Complex_Geometry_Chapter, Appendices}
\includeonly{Introduction_Chapter, Equation_Chapter, Mass_Chapter, Momentum_Chapter, Combustion_Chapter, Radiation_Chapter, Solid_Chapter, Aerosol_Chapter, Particle_Chapter, Device_Chapter, HVAC_Chapter, Complex_Geometry_Chapter, Wildland_Chapter, Appendices}
\else
\includeonly{Introduction_Chapter, Equation_Chapter, Mass_Chapter, Momentum_Chapter, Combustion_Chapter, Radiation_Chapter, Solid_Chapter, Aerosol_Chapter, Particle_Chapter, Device_Chapter, HVAC_Chapter, Appendices}
\includeonly{Introduction_Chapter, Equation_Chapter, Mass_Chapter, Momentum_Chapter, Combustion_Chapter, Radiation_Chapter, Solid_Chapter, Aerosol_Chapter, Particle_Chapter, Device_Chapter, HVAC_Chapter, Wildland_Chapter, Appendices}
\fi

\begin{document}
Expand Down Expand Up @@ -187,6 +187,7 @@ \chapter{Acknowledgments}
\ifcompgeom
\include{Complex_Geometry_Chapter}
\fi
\include{Wildland_Chapter}

\bibliography{../Bibliography/FDS_refs,../Bibliography/FDS_general,../Bibliography/FDS_mathcomp}

Expand Down
Binary file not shown.
241 changes: 241 additions & 0 deletions Manuals/FDS_Technical_Reference_Guide/Wildland_Chapter.tex

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion Manuals/FDS_User_Guide/FDS_User_Guide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1677,7 +1677,6 @@ \subsection{GEOM Limitations}
\item Thin geometries and corners cannot split cells, one side must be blocked. See Sec.~\ref{info:thin_geom}.
\item Backing external is allowed only on a single mesh. If the back surface is on another mesh the backing will be set to \ct{VOID} (quietly).
\item A \ct{VENT} cannot be applied to a \ct{GEOM}. Surface properties must be applied face by face via \ct{SURF_ID}.
\item No \ct{VENT} implies \ct{HVAC} cannot be applied to a \ct{GEOM} surface. This is on our priority list and will be available in the future.
\item Imposing a tangential velocity in geometries cannot be done. \ct{NO_SLIP} conditions assume a zero tangential velocity. Allowing this capability is also a development priority.
\item Neither 3D heat transfer nor \ct{BURN_AWAY} are available in \ct{GEOM}.
\item The \ct{HOLE} namelist does not apply to \ct{GEOM}.
Expand Down
16 changes: 13 additions & 3 deletions Source/hvac.f90
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,16 @@ SUBROUTINE READ_HVAC
WRITE(MESSAGE,'(A,I5)') 'ERROR(513): Ductnode has no ID, HVAC line number:',NN
CALL SHUTDOWN(MESSAGE); RETURN
ENDIF
IF ((GEOM .OR. GEOM2) .AND. VENT_ID/='null') THEN
WRITE(MESSAGE,'(A,A,A,I5)') 'ERROR(yyy): Ductnode with GEOM cannot have a VENT_ID. Ductnode ID:',TRIM(DN%ID),&
', HVAC line number:',NN
CALL SHUTDOWN(MESSAGE); RETURN
ENDIF
IF (.NOT. GEOM .AND. VENT_ID=='null' .AND. N_DUCTS==1) THEN
WRITE(MESSAGE,'(A,A,A,I5)') 'ERROR(yyy): Ductnode with one duct needs either GEOM or VENT_ID. Ductnode ID:',&
TRIM(DN%ID),', HVAC line number:',NN
CALL SHUTDOWN(MESSAGE); RETURN
ENDIF
DN%VENT_ID = VENT_ID
DN%GEOM = GEOM
IF (DN%VENT .AND. DN%GEOM) THEN
Expand Down Expand Up @@ -457,12 +467,12 @@ SUBROUTINE READ_HVAC
DN%N_DUCTS=ND
ENDDO
IF (DN%N_DUCTS == 1 .AND. .NOT. GEOM .AND. .NOT. AMBIENT .AND. VENT_ID=='null') THEN
WRITE(MESSAGE,'(A,A,A,I5)') 'ERROR(515): Non-AMBIENT or non VENT-connected ductnode must have >=2 ducts. Ductnode ID:',&
TRIM(DN%ID),', HVAC line number:',NN
WRITE(MESSAGE,'(A,A,A,A,I5)') 'ERROR(515): Non-AMBIENT, non-VENT, and non-GEOM connected ductnode ',&
'(i.e., internal node) must have >=2 ducts. Ductnode ID:',TRIM(DN%ID),', HVAC line number:',NN
CALL SHUTDOWN(MESSAGE); RETURN
ENDIF
IF (DN%N_DUCTS >= 2 .AND. (AMBIENT .OR. GEOM .OR. VENT_ID/='null')) THEN
WRITE(MESSAGE,'(A,A,A,I5)') 'ERROR(516): AMBIENT, GEOM, or VENT-connected ductnode must have 1 duct. Ductnode ID:',&
WRITE(MESSAGE,'(A,A,A,I5)') 'ERROR(516): AMBIENT, VENT, or GEOM-connected ductnode must have 1 duct. Ductnode ID:',&
TRIM(DN%ID),', HVAC line number:',NN
CALL SHUTDOWN(MESSAGE); RETURN
ENDIF
Expand Down
24 changes: 8 additions & 16 deletions Source/read.f90
Original file line number Diff line number Diff line change
Expand Up @@ -12056,6 +12056,10 @@ SUBROUTINE READ_VENT
WRITE(MESSAGE,'(3A)') 'ERROR(802): VENT ',TRIM(ID), ' needs an explicit ID because it involves HVAC.'
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.) ; RETURN
ENDIF
IF (SURF_ID=='HVAC' .AND. GEOM) THEN
WRITE(MESSAGE,'(3A)') 'ERROR(xxx): VENT ',TRIM(ID), ' cannot have SURF_ID=HVAC and GEOM=T.'
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.) ; RETURN
ENDIF

! Special cases where VENT is specified with PBX, PBY, PBZ, MB, or DB

Expand Down Expand Up @@ -12253,10 +12257,6 @@ SUBROUTINE READ_VENT
IF (BLOCKED) REJECT_VENT = .TRUE.
ENDIF

! If the VENT is on a GEOM do not reject (further setup in READ_GEOM)

IF (GEOM .AND. .NOT.(TERRAIN_CASE .AND. ALL(XB(1:6)>-1.01E6_EB))) REJECT_VENT = .FALSE.

! If the VENT is rejected, cycle

IF (REJECT_VENT) THEN
Expand Down Expand Up @@ -12562,7 +12562,7 @@ SUBROUTINE READ_VENT
ENDDO
ENDIF

IF (VT%IOR==0 .AND. .NOT. VT%GEOM) THEN
IF (VT%IOR==0) THEN
WRITE(MESSAGE,'(3A)') 'ERROR(818): VENT ',TRIM(VT%ID),' requires an orientation index, IOR.'
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.) ; RETURN
ENDIF
Expand Down Expand Up @@ -12610,17 +12610,9 @@ SUBROUTINE READ_VENT

! Check UVW

IF (.NOT.VT%GEOM) THEN
IF (ABS(VT%UVW(ABS(VT%IOR))) < TWO_EPSILON_EB) THEN
WRITE(MESSAGE,'(3A)') 'ERROR(821): VENT ',TRIM(VT%ID),' cannot have normal component of UVW equal to 0.'
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.) ; RETURN
ENDIF
ENDIF

! Special treatment for coloring GEOM surface with HVAC_BOUNDARY

IF (VT%GEOM .AND. VT%BOUNDARY_TYPE==HVAC_BOUNDARY) THEN
SURFACE(VT%SURF_INDEX)%RGB = (/0,128,0/) ! green
IF (ABS(VT%UVW(ABS(VT%IOR))) < TWO_EPSILON_EB) THEN
WRITE(MESSAGE,'(3A)') 'ERROR(821): VENT ',TRIM(VT%ID),' cannot have normal component of UVW equal to 0.'
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.) ; RETURN
ENDIF

ENDDO VENT_LOOP_2
Expand Down
43 changes: 22 additions & 21 deletions Source/vege.f90
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ MODULE VEGE
TYPE(MESH_TYPE), POINTER :: M
TYPE(WALL_TYPE), POINTER :: WC
TYPE(CFACE_TYPE), POINTER :: CFA
TYPE(CC_CUTFACE_TYPE), POINTER :: CF
TYPE(SURFACE_TYPE), POINTER :: SF
TYPE(BOUNDARY_PROP1_TYPE), POINTER :: B1
TYPE(BOUNDARY_PROP2_TYPE), POINTER :: B2
Expand All @@ -37,7 +38,7 @@ SUBROUTINE INITIALIZE_LEVEL_SET_FIRESPREAD_1(NM)
USE COMPLEX_GEOMETRY, ONLY : CC_IDCF
INTEGER, INTENT(IN) :: NM
INTEGER :: ICF,IW,I,J,SURF_INDEX
REAL(EB), ALLOCATABLE, DIMENSION(:,:) :: SUM_AREA
REAL(EB), ALLOCATABLE, DIMENSION(:,:) :: MAX_AREA,SUM_AREA

T_NOW = CURRENT_TIME()

Expand Down Expand Up @@ -78,38 +79,43 @@ SUBROUTINE INITIALIZE_LEVEL_SET_FIRESPREAD_1(NM)

IF (CC_IBM) THEN

ALLOCATE(MAX_AREA(0:IBP1,0:JBP1)) ; MAX_AREA = 0._EB
ALLOCATE(SUM_AREA(0:IBP1,0:JBP1)) ; SUM_AREA = 0._EB
ALLOCATE(M%LS_KLO_TERRAIN(0:IBP1,0:JBP1),STAT=IZERO) ; CALL ChkMemErr('READ','LS_KLO_TERRAIN',IZERO)
LS_KLO_TERRAIN => M%LS_KLO_TERRAIN ; LS_KLO_TERRAIN = 2*KBP1+1 ! Number larger that KBP1.
ALLOCATE(M%LS_KHI_TERRAIN(0:IBP1,0:JBP1),STAT=IZERO) ; CALL ChkMemErr('READ','LS_KHI_TERRAIN',IZERO)
LS_KHI_TERRAIN => M%LS_KHI_TERRAIN ; LS_KHI_TERRAIN = -1 ! Number smaller than 0.
DO ICF=1,M%N_CUTFACE_MESH
IF (CUT_FACE(ICF)%STATUS/=2 .OR. CUT_FACE(ICF)%NFACE<1) CYCLE ! CC_INBOUNDARY == 2
CF => CUT_FACE(ICF)
IF (CF%STATUS/=2 .OR. CF%NFACE<1) CYCLE ! CC_INBOUNDARY == 2
! Location of CFACE with largest AREA, to define SURF_INDEX:
IW = MAXLOC(CUT_FACE(ICF)%AREA(1:CUT_FACE(ICF)%NFACE),DIM=1)
CFA => CFACE( CUT_FACE(ICF)%CFACE_INDEX(IW) )
BC => BOUNDARY_COORD(CFA%BC_INDEX)
IF (BC%KKG < LS_KLO_TERRAIN(BC%IIG,BC%JJG)) LS_KLO_TERRAIN(BC%IIG,BC%JJG) = BC%KKG
IF (BC%KKG > LS_KHI_TERRAIN(BC%IIG,BC%JJG)) LS_KHI_TERRAIN(BC%IIG,BC%JJG) = BC%KKG
IW = MAXLOC(CF%AREA(1:CF%NFACE),DIM=1)
CFA => CFACE(CF%CFACE_INDEX(IW) )
BC => BOUNDARY_COORD(CFA%BC_INDEX)
IF (BC%NVEC(KAXIS)>-TWO_EPSILON_EB .AND. CFA%BOUNDARY_TYPE==SOLID_BOUNDARY) THEN
IF (SUM(CUT_FACE(ICF)%AREA(1:CUT_FACE(ICF)%NFACE))<SUM_AREA(BC%IIG,BC%JJG)) THEN
IF (BC%KKG < LS_KLO_TERRAIN(BC%IIG,BC%JJG)) LS_KLO_TERRAIN(BC%IIG,BC%JJG) = BC%KKG
IF (BC%KKG > LS_KHI_TERRAIN(BC%IIG,BC%JJG)) LS_KHI_TERRAIN(BC%IIG,BC%JJG) = BC%KKG
SUM_AREA(BC%IIG,BC%JJG) = SUM_AREA(BC%IIG,BC%JJG) + SUM(CF%AREA(1:CF%NFACE))
Z_LS(BC%IIG,BC%JJG) = Z_LS(BC%IIG,BC%JJG) + DOT_PRODUCT(CF%XYZCEN(KAXIS,1:CF%NFACE),CF%AREA(1:CF%NFACE))
IF (SUM(CF%AREA(1:CF%NFACE))<MAX_AREA(BC%IIG,BC%JJG)) THEN
CYCLE ! This CUT_FACE does not contain the majority of the area corresponding to the FDS cell area, DX*DY
ELSE
SUM_AREA(BC%IIG,BC%JJG) = SUM(CUT_FACE(ICF)%AREA(1:CUT_FACE(ICF)%NFACE))
MAX_AREA(BC%IIG,BC%JJG) = SUM(CF%AREA(1:CF%NFACE))
ENDIF
! Area averaged Z height of CFACES within this cut-cell (containing CC_INBOUNDARY CFACES):
Z_LS(BC%IIG,BC%JJG) = DOT_PRODUCT(CUT_FACE(ICF)%XYZCEN(KAXIS,1:CUT_FACE(ICF)%NFACE), &
CUT_FACE(ICF)%AREA(1:CUT_FACE(ICF)%NFACE) ) / SUM_AREA(BC%IIG,BC%JJG)
IF (BC%KKG > K_LS(BC%IIG,BC%JJG)) K_LS(BC%IIG,BC%JJG) = BC%KKG
LS_SURF_INDEX(BC%IIG,BC%JJG) = CFA%SURF_INDEX
ENDIF
ENDDO
WHERE (SUM_AREA>TWO_EPSILON_EB) Z_LS = Z_LS/SUM_AREA
DEALLOCATE(MAX_AREA)
DEALLOCATE(SUM_AREA)

DO J=1,JBAR
DO I=1,IBAR
IF (K_LS(I,J)==KBAR .AND. FCVAR(I,J,K_LS(I,J),CC_IDCF,KAXIS)>0) LS_SURF_INDEX(I,J) = 0
ENDDO
ENDDO
DEALLOCATE(SUM_AREA)

ENDIF

! Set up level set on cartesian faces only where they are not under a GEOM
Expand Down Expand Up @@ -155,7 +161,7 @@ END SUBROUTINE INITIALIZE_LEVEL_SET_FIRESPREAD_1
SUBROUTINE INITIALIZE_LEVEL_SET_FIRESPREAD_2(NM,MODE)

INTEGER, INTENT(IN) :: NM,MODE
INTEGER :: I,IM1,IM2,IIG,IP1,IP2,J,JJG,JM1,JP1
INTEGER :: I,IM1,IIG,IP1,J,JJG,JM1,JP1
REAL(EB) :: DZT_DUM,DZTDX_DUM,DZTDY_DUM,G_EAST,G_WEST,G_SOUTH,G_NORTH

T_NOW = CURRENT_TIME()
Expand Down Expand Up @@ -236,17 +242,13 @@ SUBROUTINE INITIALIZE_LEVEL_SET_FIRESPREAD_2(NM,MODE)

GRADIENT_ILOOP: DO I = 1,IBAR

IM1=I-1 ; IM2=I-2
IP1=I+1 ; IP2=I+2
IF (I==1) IM1 = I
IF (I==IBAR) IP1 = I
IM1=I-1
IP1=I+1

DO J = 1,JBAR

JM1=J-1
JP1=J+1
IF (J==1) JM1 = J
IF (J==IBAR) JP1 = J

G_EAST = 0.5_EB*( Z_LS(I,J) + Z_LS(IP1,J) )
G_WEST = 0.5_EB*( Z_LS(I,J) + Z_LS(IM1,J) )
Expand Down Expand Up @@ -489,7 +491,6 @@ SUBROUTINE LEVEL_SET_FIRESPREAD(T,DT,NM)
! and then calculating effective wind speed, phi_s is converted to an effected wind speed and added
! to UMF calculated from the wind. Effective U has units of m/min in Wilson formula.
! 0.3048 ~= 1/3.281
! if phi_s < 0 then a complex value (NaN) results. Using abs(phi_s) and sign function to correct.

UMF_TMP = &
0.3048_EB/PHI_S*(((SF%VEG_LSET_BETA / BETA_OP_ROTH)**E_ROTH)*PHI_S/C_ROTH)**(1._EB/B_ROTH)
Expand Down
4 changes: 2 additions & 2 deletions Utilities/Matlab/FDS_verification_dataplot_inputs.csv
Original file line number Diff line number Diff line change
Expand Up @@ -377,8 +377,8 @@ d,HVAC_mass_transport_energy,HVAC/HVAC_mass_transport_energy_git.txt,HVAC/HVAC_m
d,HVAC_mass_transport_energy,HVAC/HVAC_mass_transport_energy_git.txt,HVAC/HVAC_mass_transport_energy_ideal.csv,1,2,Time,Ideal Delta P,Ideal \Delta p,ko,0,100000,,0,100000,-1.00E+09,1.00E+09,0,HVAC/HVAC_mass_transport_energy_devc.csv,2,3,Time,FDS Delta P,FDS \Delta p,k-,0,100000,,20,40,-1.00E+09,1.00E+09,0,Pressure difference (HVAC\_mass\_transport\_energy),Time (s),Pressure (Pa),0,40,1,0.6,1.2,1,no,0.05 0.90,SouthEast,,1,linear,FDS_Verification_Guide/SCRIPT_FIGURES/HVAC_mass_transport_energy_p,Relative Error,mean,0.01,HVAC,kd,k,TeX
d,HVAC_tee_loss_1,HVAC/HVAC_tee_loss_1_git.txt,HVAC/HVAC_flow_loss_ideal.csv,1,2,Time,Ideal 1 m/s|Ideal 2 m/s|Ideal 3 m/s,Ideal 1 m/s|Ideal 2 m/s|Ideal 3 m/s,ro|bo|ko,0,100000,,0,100000,-1.00E+09,1.00E+09,0,HVAC/HVAC_tee_loss_1_devc.csv,2,3,Time,FDS 1 m/s duct|FDS 2 m/s duct|FDS 3 m/s duct,FDS 1 m/s|FDS 2 m/s|FDS 3 m/s,r-|b-|k-,0,100000,,0,100000,-1.00E+09,1.00E+09,0,Velocities (HVAC\_tee\_loss\_1),Time (s),Velocity (m/s),0,10,1,0,5,1,no,0.40 0.90,NorthWest,,1,linear,FDS_Verification_Guide/SCRIPT_FIGURES/HVAC_tee_loss_1,Relative Error,end,0.01,HVAC,kd,k,TeX
d,HVAC_tee_loss_2,HVAC/HVAC_tee_loss_2_git.txt,HVAC/HVAC_tee_loss_2_ideal.csv,1,2,Time,Ideal 1.5 m/s A|Ideal 1.5 m/s B|Ideal 3 m/s,Ideal 1.5 m/s A|Ideal 1.5 m/s B|Ideal 3 m/s,ro|bo|ko,0,100000,,0,100000,-1.00E+09,1.00E+09,0,HVAC/HVAC_tee_loss_2_devc.csv,2,3,Time,E 1|E 2|S 1,FDS 1.5 m/s A|FDS 1.5 m/s B|FDS 3 m/s,r-|b-|k-,0,100000,,0,100000,-1.00E+09,1.00E+09,0,Velocities (HVAC\_tee\_loss\_2),Time (s),Velocity (m/s),0,10,1,0,5,1,no,0.40 0.90,NorthWest,,1,linear,FDS_Verification_Guide/SCRIPT_FIGURES/HVAC_tee_loss_2,Relative Error,end,0.01,HVAC,kd,k,TeX
d,leak_geom,HVAC/leak_geom_git.txt,HVAC/leak_geom.csv,1,2,Time,V,Ideal,ko,0,100000,,0,100000,-1.00E+09,1.00E+09,0,HVAC/leak_geom_devc.csv,2,3,Time,L|C|C V|R,FDS Left|FDS Geom Center|FDS Vent Center|FDS Right,r-|b-|k-|g-,0,100000,,0,100000,-1.00E+09,1.00E+09,0,Velocities (HVAC\_tee\_loss\_2),Time (s),Velocity (m/s),0,5,1,0,0.15,1,no,0.40 0.90,SouthEast,,1,linear,FDS_Verification_Guide/SCRIPT_FIGURES/leak_geom,Relative Error,end,0.01,HVAC,kd,k,TeX
d,HVAC_geom,HVAC/HVAC_geom_git.txt,HVAC/HVAC_geom.csv,1,2,Time,V,Ideal,ko,0,100000,,0,100000,-1.00E+09,1.00E+09,0,HVAC/HVAC_geom_devc.csv,2,3,Time,L|LR|R,FDS Left In|FDS Left to Right |FDS Right Out,r-|b-|k-,0,100000,,0,100000,-1.00E+09,1.00E+09,0,Velocities (HVAC\_tee\_loss\_2),Time (s),Velocity (m/s),0,5,1,0,2.5,1,no,0.40 0.90,SouthEast,,1,linear,FDS_Verification_Guide/SCRIPT_FIGURES/HVAC_geom,Relative Error,end,0.01,HVAC,kd,k,TeX
d,leak_geom,HVAC/leak_geom_git.txt,HVAC/leak_geom.csv,1,2,Time,V|V2|V3|V4,Ideal Left|Ideal Geom Center|Ideal Vent Center|Ideal Right,ko|ro|bo|go,0,100000,,0,100000,-1.00E+09,1.00E+09,0,HVAC/leak_geom_devc.csv,2,3,Time,L|C|C V|R,FDS Left|FDS Geom Center|FDS Vent Center|FDS Right,k-|r-|b-|g-,0,100000,,0,100000,-1.00E+09,1.00E+09,0,Velocities (leak\_geom),Time (s),Velocity (m/s),0,5,1,0,0.15,1,no,0.40 0.90,SouthEast,,1,linear,FDS_Verification_Guide/SCRIPT_FIGURES/leak_geom,Relative Error,end,0.01,HVAC,kd,k,TeX
d,HVAC_geom,HVAC/HVAC_geom_git.txt,HVAC/HVAC_geom.csv,1,2,Time,V|V2|V3,Ideal Left|Ideal Left Right|Ideal Right,ko|ro|bo,0,100000,,0,100000,-1.00E+09,1.00E+09,0,HVAC/HVAC_geom_devc.csv,2,3,Time,L|LR|R,FDS Left|FDS Left Right|FDS Right,k-|r-|b-,0,100000,,0,100000,-1.00E+09,1.00E+09,0,Velocities (HVAC\_geom),Time (s),Velocity (m/s),0,5,1,0,2.5,1,no,0.40 0.90,SouthEast,,1,linear,FDS_Verification_Guide/SCRIPT_FIGURES/HVAC_geom,Relative Error,end,0.01,HVAC,kd,k,TeX
d,ignition_delay,Chemistry/ign_delay_Methane_grimech30_T900K_Phi0p6_cat_git.txt,Chemistry/cantera_ignition_delay.csv,1,2,Time1,TMP1,Cantera,ko,0,100000,,0,100000,-1.00E+09,1.00E+09,0,Chemistry/ign_delay_Methane_grimech30_T900K_Phi0p6_cat_devc.csv,2,3,Time,TMP,FDS,b-,0,100000,,0,100000,-1.00E+09,1.00E+09,0,ignition\_delay; T=626.85 °C,Time (s),Temperature (°C),0,10,1,550,3000,1,no,0.05 0.90,NorthEast,,1,linear,FDS_Verification_Guide/SCRIPT_FIGURES/ign_delay_Methane_grimech30_900_0p6_TMP,Relative Error,area,0.02,Chemistry,b*,b,TeX
d,ignition_delay,Chemistry/ign_delay_Methane_grimech30_T900K_Phi0p6_cat_git.txt,Chemistry/cantera_ignition_delay.csv,1,2,Time1,OH1,Cantera,ko,0,100000,,0,100000,-1.00E+09,1.00E+09,0,Chemistry/ign_delay_Methane_grimech30_T900K_Phi0p6_cat_devc.csv,2,3,Time,OH,FDS,b-,0,100000,,0,100000,-1.00E+09,1.00E+09,0,ignition\_delay; T=626.85 °C,Time (s),OH Mass Fraction,0,10,1,0,0.02,1,no,0.05 0.90,NorthEast,,1,linear,FDS_Verification_Guide/SCRIPT_FIGURES/ign_delay_Methane_grimech30_900_0p6_OH,Relative Error,area,0.02,Chemistry,b*,b,TeX
d,ignition_delay,Chemistry/ign_delay_Methane_grimech30_T1000K_Phi0p6_cat_git.txt,Chemistry/cantera_ignition_delay.csv,1,2,Time2,TMP2,Cantera,ko,0,100000,,0,100000,-1.00E+09,1.00E+09,0,Chemistry/ign_delay_Methane_grimech30_T1000K_Phi0p6_cat_devc.csv,2,3,Time,TMP,FDS,b-,0,100000,,0,100000,-1.00E+09,1.00E+09,0,ignition\_delay; T=726.85 °C,Time (s),Temperature (°C),0,2,1,550,3000,1,no,0.05 0.90,NorthEast,,1,linear,FDS_Verification_Guide/SCRIPT_FIGURES/ign_delay_Methane_grimech30_1000_0p6_TMP,Relative Error,area,0.02,Chemistry,b*,b,TeX
Expand Down
14 changes: 12 additions & 2 deletions Utilities/Scripts/qfds.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ function usage {
fi
echo "Other options:"
echo " -b email_address - send an email to email_address when jobs starts, aborts and finishes"
echo " -c remove restriction limiting the job to the minimum number of nodes"
echo " -d dir - specify directory where the case is found [default: .]"
echo " -G use GNU OpenMPI version of fds"
echo " -I use Intel MPI version of fds"
Expand Down Expand Up @@ -129,6 +130,7 @@ else
fi
EMAIL=
casedir=
cram=no
use_default_casedir=
USERMAX=
dir=.
Expand All @@ -147,7 +149,7 @@ commandline=`echo $* | sed 's/-V//' | sed 's/-v//'`

#*** read in parameters from command line

while getopts 'A:b:d:e:GhHIj:Ln:o:Pp:q:stT:U:vw:y:Y' OPTION
while getopts 'A:b:cd:e:GhHIj:Ln:o:Pp:q:stT:U:vw:y:Y' OPTION
do
case $OPTION in
A)
Expand All @@ -156,6 +158,9 @@ case $OPTION in
b)
EMAIL="$OPTARG"
;;
c)
cram="yes"
;;
d)
dir="$OPTARG"
;;
Expand Down Expand Up @@ -389,7 +394,6 @@ cat << EOF >> $scriptfile
#SBATCH --partition=$queue
#SBATCH --ntasks=$n_mpi_processes
#SBATCH --cpus-per-task=$n_openmp_threads
#SBATCH --nodes=$nodes
#SBATCH --time=$walltime
EOF
if [ "$ACCOUNT" != "" ]; then
Expand Down Expand Up @@ -418,6 +422,12 @@ cat << EOF >> $scriptfile
EOF
fi

if [ "$cram" == "no" ]; then
cat << EOF >> $scriptfile
#SBATCH --nodes=$nodes
EOF
fi

else # PBS/Torque

cat << EOF >> $scriptfile
Expand Down
6 changes: 3 additions & 3 deletions Verification/HVAC/HVAC_geom.csv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Time,V
4.00E+00,2.00E+00
5.00E+00,2.00E+00
Time,V,V2,V3
4.00E+00,2.00E+00,2.00E+00,2.00E+00
5.00E+00,2.00E+00,2.00E+00,2.00E+00
3 changes: 2 additions & 1 deletion Verification/HVAC/HVAC_geom.fds
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,5 @@

&DEVC ID='L',QUANTITY='DUCT VELOCITY',DUCT_ID='M1L'/
&DEVC ID='LR',QUANTITY='DUCT VELOCITY',DUCT_ID='M1M2'/
&DEVC ID='R',QUANTITY='DUCT VELOCITY',DUCT_ID='M2R'/
&DEVC ID='R',QUANTITY='DUCT VELOCITY',DUCT_ID='M2R'/

6 changes: 3 additions & 3 deletions Verification/HVAC/leak_geom.csv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Time,V
4.00E+00,1.00E-01
5.00E+00,1.00E-01
Time,V,V2,V3,V4
4.00E+00,1.00E-01,1.00E-01,1.00E-01,1.00E-01
5.00E+00,1.00E-01,1.00E-01,1.00E-01,1.00E-01
3 changes: 2 additions & 1 deletion Verification/HVAC/leak_geom.fds
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,5 @@
&DEVC QUANTITY='DUCT VELOCITY',DUCT_ID='L',ID='L'/
&DEVC QUANTITY='DUCT VELOCITY',DUCT_ID='C',ID='C'/
&DEVC QUANTITY='DUCT VELOCITY',DUCT_ID='C V',ID='C V'/
&DEVC QUANTITY='DUCT VELOCITY',DUCT_ID='R',ID='R'/
&DEVC QUANTITY='DUCT VELOCITY',DUCT_ID='R',ID='R'/

Loading