diff --git a/Manuals/FDS_User_Guide/FDS_User_Guide.tex b/Manuals/FDS_User_Guide/FDS_User_Guide.tex index 6ecae6e9573..c48b3c0f440 100644 --- a/Manuals/FDS_User_Guide/FDS_User_Guide.tex +++ b/Manuals/FDS_User_Guide/FDS_User_Guide.tex @@ -9915,6 +9915,12 @@ \subsubsection{Area Integral} \ee where $dA$ depends on the coordinates you specify for \ct{XB}. Note that this statistic is only appropriate for gas phase quantities, in particular those whose units involve \unit{\per\meter^2}. For example, the quantity \ct{'MASS FLUX X'} along with \ct{SPEC_ID='my gas'} is an appropriate output quantity if you want to know the mass flux of the gas species that you have named \ct{'my gas'} through an area normal to the $x$ direction. Note also that you must specify an area to sum over via the coordinate parameters, \ct{XB}, which can extend into multiple meshes. +\subsubsection{Volume} + +This feature is usually used in conjunction with \ct{SPATIAL_STATISTIC='VOLUME INTEGRAL'} above (use two separate \ct{DEVC} lines, each with the same \ct{QUANTITY}). When performing precise mass and energy balances, it is useful to know exactly the volume of gas present in the region of interest. Using \ct{SPATIAL_STATISTIC='VOLUME'} produces the discrete analog of +\be \int \; \d V \ee +where $dV$ depends on the coordinates you specify for \ct{XB}. + \subsubsection{Area} This feature is usually used in conjunction with \ct{SPATIAL_STATISTIC='AREA INTEGRAL'} above (use two separate \ct{DEVC} lines, each with the same \ct{QUANTITY}). When performing precise mass and energy balances, it is useful to know exactly the area of \ct{VENT} or \ct{SURF} of interest. Note that this may differ slightly from what is specified in the input file due to grid snapping for Cartesian geometries or due to the approximations used to represent curvilinear geometries. Using \ct{SPATIAL_STATISTIC='AREA'} produces the discrete analog of diff --git a/Manuals/FDS_Validation_Guide/Plume_Chapter.tex b/Manuals/FDS_Validation_Guide/Plume_Chapter.tex index 8e5d83555af..e75ed328b89 100644 --- a/Manuals/FDS_Validation_Guide/Plume_Chapter.tex +++ b/Manuals/FDS_Validation_Guide/Plume_Chapter.tex @@ -1174,6 +1174,22 @@ \section{Flame Tilt} \end{figure} +\clearpage + +\section{Fireball Diameter} +\label{Fireball Diameter} + +A fireball is caused by a sudden, violent rupture of a container containing volatile liquids or gases, typically under high pressure. Figure~\ref{Fireball_Diameter_Scatterplot} summarizes comparisons of the measured and predicted maximum horizontal fireball diameter of several sets of experiments. + +\begin{figure}[!h] +\begin{center} +\includegraphics[height=4.in]{SCRIPT_FIGURES/Scatterplots/FDS_Fireball_Diameter} +\end{center} +\caption[Summary of fireball diameter predictions] +{Summary of measured and predicted maximum fireball diameter.} +\label{Fireball_Diameter_Scatterplot} +\end{figure} + \clearpage diff --git a/Manuals/FDS_Validation_Guide/SCRIPT_FIGURES/Sandia_Fireballs/.gitignore b/Manuals/FDS_Validation_Guide/SCRIPT_FIGURES/Sandia_Fireballs/.gitignore new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Manuals/FDS_Validation_Guide/Species_Chapter.tex b/Manuals/FDS_Validation_Guide/Species_Chapter.tex index 8fea318b7c7..34f466a8dfd 100644 --- a/Manuals/FDS_Validation_Guide/Species_Chapter.tex +++ b/Manuals/FDS_Validation_Guide/Species_Chapter.tex @@ -1869,8 +1869,73 @@ \subsection{NIST Pool Fires} \label{NIST_Pool_Fires_Propane_50kW} \end{figure} + \clearpage +\subsection{Utiskul Compartment} + +\begin{figure}[p] +\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r} +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_HGL_Temp_Test_1} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Jet_Temp_Test_1} \\ +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_1_Pressure} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_1_Heat_Flux} \\ +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_1_O2} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_1_CO2} \\ +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_1_CO} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_1_MLR} +\end{tabular*} +\caption[Summary of Utiskul Compartment, Test 1]{Summary of Utiskul Compartment, Test 1.} +\label{Utiskul_1} +\end{figure} + +\begin{figure}[p] +\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r} +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_HGL_Temp_Test_2} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Jet_Temp_Test_2} \\ +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_2_Pressure} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_2_Heat_Flux} \\ +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_2_O2} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_2_CO2} \\ +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_2_CO} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_2_MLR} +\end{tabular*} +\caption[Summary of Utiskul Compartment, Test 2]{Summary of Utiskul Compartment, Test 2.} +\label{Utiskul_2} +\end{figure} + +\begin{figure}[p] +\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r} +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_HGL_Temp_Test_3} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Jet_Temp_Test_3} \\ +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_3_Pressure} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_3_Heat_Flux} \\ +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_3_O2} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_3_CO2} \\ +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_3_CO} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_3_MLR} +\end{tabular*} +\caption[Summary of Utiskul Compartment, Test 3]{Summary of Utiskul Compartment, Test 3.} +\label{Utiskul_3} +\end{figure} + +\begin{figure}[p] +\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r} +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_HGL_Temp_Test_4} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Jet_Temp_Test_4} \\ +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_4_Pressure} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_4_Heat_Flux} \\ +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_4_O2} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_4_CO2} \\ +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_4_CO} & +\includegraphics[height=2.15in]{SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_4_MLR} +\end{tabular*} +\caption[Summary of Utiskul Compartment, Test 4]{Summary of Utiskul Compartment, Test 4.} +\label{Utiskul_4} +\end{figure} + + +\clearpage \subsection{Summary, Products of Incomplete Combustion} \label{Carbon Monoxide Concentration} diff --git a/Source/dump.f90 b/Source/dump.f90 index a9ff759a098..e524a760198 100644 --- a/Source/dump.f90 +++ b/Source/dump.f90 @@ -8105,15 +8105,27 @@ SUBROUTINE UPDATE_DEVICES_1(T,DT,NM) SUBROUTINE SELECT_SPATIAL_STATISTIC(OPT_LP_INDEX,OPT_CUT_FACE_INDEX) INTEGER, OPTIONAL :: OPT_LP_INDEX,OPT_CUT_FACE_INDEX -REAL(EB) :: PWT,AREA +REAL(EB) :: PWT,AREA,R1,R2,VOLUME INTEGER :: ICF,JCF,NFACE PWT = 1._EB IF (PRESENT(OPT_LP_INDEX)) PWT = LAGRANGIAN_PARTICLE(OPT_LP_INDEX)%PWT AREA = B1%AREA -IF (TWO_D) AREA = AREA/DY(BC%JJG) -IF (CYLINDRICAL) AREA = AREA*2._EB*PI +IF (TWO_D) THEN + AREA = AREA/DY(BC%JJG) + VOLUME = DX(BC%IIG)*DZ(BC%KKG) +ELSEIF(CYLINDRICAL) THEN + R1 = R(BC%IIG-1) + R2 = R(BC%IIG) + AREA = AREA*2._EB*PI + VOLUME = PI*(R2**2-R1**2)*DZ(BC%KKG) +ELSE + VOLUME = DX(BC%IIG)*DY(BC%JJG)*DZ(BC%KKG) + IF (CC_IBM) THEN + IF (CCVAR(BC%IIG,BC%JJG,BC%KKG,CC_IDCF) > 0) VOLUME = VOLUME * CUT_CELL(CCVAR(BC%IIG,BC%JJG,BC%KKG,CC_IDCC))%ALPHA_CC + ENDIF +ENDIF IF (PRESENT(OPT_CUT_FACE_INDEX)) THEN ICF = OPT_CUT_FACE_INDEX @@ -8153,6 +8165,8 @@ SUBROUTINE SELECT_SPATIAL_STATISTIC(OPT_LP_INDEX,OPT_CUT_FACE_INDEX) SDV%VALUE_1 = SDV%VALUE_1 + AREA*PWT CASE('SUM') SDV%VALUE_1 = SDV%VALUE_1 + VALUE + CASE('VOLUME') + SDV%VALUE_1 = SDV%VALUE_1 + VOLUME END SELECT ENDIF diff --git a/Source/turb.f90 b/Source/turb.f90 index 29f15e8add4..4056527a55a 100644 --- a/Source/turb.f90 +++ b/Source/turb.f90 @@ -1692,15 +1692,16 @@ SUBROUTINE SYNTHETIC_TURBULENCE(DT,T) USE MATH_FUNCTIONS, ONLY: EVALUATE_RAMP USE PHYSICAL_FUNCTIONS, ONLY: GET_WIND_AT_HEIGHT +USE MPI_F08 REAL(EB), INTENT(IN) :: DT,T INTEGER :: NE,NV,NT,II,JJ,KK,NM -INTEGER :: IN,IA,IC +INTEGER :: IN,IA,IC,IERR TYPE(VENTS_TYPE), POINTER :: VT TYPE(SURFACE_TYPE), POINTER :: SF REAL(EB) :: RAMP_T,TSI,SIGMA_MAX,ADV_VEL(3),SGN,UW,VW,WW,U1,V1,W1 -REAL(EB) :: U_ADD,V_ADD,W_ADD -REAL(EB), ALLOCATABLE :: VENT_VEL(:,:) +REAL(EB) :: U_ADD,V_ADD,W_ADD,U_MEAN +REAL(EB), ALLOCATABLE :: VENT_VEL(:,:),VENT_MEAN_SUM(:),VENT_MEAN_CNT(:) LOGICAL, ALLOCATABLE :: VENT_VEL_SET(:) ! Reference: @@ -1860,6 +1861,51 @@ SUBROUTINE SYNTHETIC_TURBULENCE(DT,T) ENDDO VENT_APPLY_LOOP ENDDO MESH_APPLY_LOOP +! Subtract the vent mean of the normal component so fluctuations do not +! change volume flow. Must be global over TOTAL_INDEX (all mesh sections) +! to avod jumps at mesh interfaces +ALLOCATE(VENT_MEAN_SUM(N_VENT_TOTAL),SOURCE=0._EB) +ALLOCATE(VENT_MEAN_CNT(N_VENT_TOTAL),SOURCE=0._EB) +DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX + CALL POINT_TO_MESH(NM) + DO NV=1,N_VENT + VT => VENTS(NV) + IF (VT%N_EDDY==0) CYCLE + NT = VT%TOTAL_INDEX + SELECT CASE (ABS(VT%IOR)) + CASE(1) + VENT_MEAN_SUM(NT) = VENT_MEAN_SUM(NT) + SUM(VT%U_EDDY) + VENT_MEAN_CNT(NT) = VENT_MEAN_CNT(NT) + REAL(SIZE(VT%U_EDDY),EB) + CASE(2) + VENT_MEAN_SUM(NT) = VENT_MEAN_SUM(NT) + SUM(VT%V_EDDY) + VENT_MEAN_CNT(NT) = VENT_MEAN_CNT(NT) + REAL(SIZE(VT%V_EDDY),EB) + CASE(3) + VENT_MEAN_SUM(NT) = VENT_MEAN_SUM(NT) + SUM(VT%W_EDDY) + VENT_MEAN_CNT(NT) = VENT_MEAN_CNT(NT) + REAL(SIZE(VT%W_EDDY),EB) + END SELECT + ENDDO +ENDDO +IF (N_MPI_PROCESSES>1) THEN + CALL MPI_ALLREDUCE(MPI_IN_PLACE,VENT_MEAN_SUM,N_VENT_TOTAL,MPI_DOUBLE_PRECISION,MPI_SUM,MPI_COMM_WORLD,IERR) + CALL MPI_ALLREDUCE(MPI_IN_PLACE,VENT_MEAN_CNT,N_VENT_TOTAL,MPI_DOUBLE_PRECISION,MPI_SUM,MPI_COMM_WORLD,IERR) +ENDIF +DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX + CALL POINT_TO_MESH(NM) + DO NV=1,N_VENT + VT => VENTS(NV) + IF (VT%N_EDDY==0) CYCLE + NT = VT%TOTAL_INDEX + IF (VENT_MEAN_CNT(NT)<=TWO_EPSILON_EB) CYCLE + U_MEAN = VENT_MEAN_SUM(NT)/VENT_MEAN_CNT(NT) + SELECT CASE (ABS(VT%IOR)) + CASE(1); VT%U_EDDY = VT%U_EDDY - U_MEAN + CASE(2); VT%V_EDDY = VT%V_EDDY - U_MEAN + CASE(3); VT%W_EDDY = VT%W_EDDY - U_MEAN + END SELECT + ENDDO +ENDDO +DEALLOCATE(VENT_MEAN_SUM,VENT_MEAN_CNT) + END SUBROUTINE SYNTHETIC_TURBULENCE diff --git a/Utilities/Python/FDS_validation_dataplot_inputs.csv b/Utilities/Python/FDS_validation_dataplot_inputs.csv index 3289d1235fb..923d7a5e9d0 100644 --- a/Utilities/Python/FDS_validation_dataplot_inputs.csv +++ b/Utilities/Python/FDS_validation_dataplot_inputs.csv @@ -1996,6 +1996,16 @@ d,Waterloo Methanol,Submodules/macfp-db/Liquid_Pool_Fires/NIST_Pool_Fires/Experi f,Waterloo Methanol,Submodules/macfp-db/Liquid_Pool_Fires/NIST_Pool_Fires/Experimental_Data/Methanol_30_cm_TC_z=61_cm_Sung_2024.csv,1,2,r_cm,TG_RMS_K,blank,blank,-10000,10000,,-10000,10000,-10000,10000,0,Waterloo_Methanol/Waterloo_Methanol_Prescribed_1cm_line.csv,2,3,r,Trms60,FDS (Trms60; 1.0 cm),r-,-1000,10000,,-1000,10000,-10000,10000,0,$(\overline{T'T'})^{1/2}$; 60 cm above burner,Radius (cm),Temperature (K),-5,20,1,0,500,1,no,0.05 0.90,SouthWest,,1,Waterloo_Methanol/Waterloo_Methanol_Prescribed_1cm_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Waterloo_Methanol/Waterloo_Methanol_RMS_Temperature_60_cm,0,max,0,Waterloo Methanol,b^,b,LaTeX f,Waterloo Methanol,Submodules/macfp-db/Liquid_Pool_Fires/NIST_Pool_Fires/Experimental_Data/Methanol_30_cm_TC_z=61_cm_Sung_2024.csv,1,2,r_cm,TG_RMS_K,blank,blank,-10000,10000,,-10000,10000,-10000,10000,0,Waterloo_Methanol/Waterloo_Methanol_Prescribed_2cm_line.csv,2,3,r,Trms60,FDS (Trms60; 2.0 cm),g-,-1000,10000,,-1000,10000,-10000,10000,0,$(\overline{T'T'})^{1/2}$; 60 cm above burner,Radius (cm),Temperature (K),-5,20,1,0,500,1,no,0.05 0.90,SouthWest,,1,Waterloo_Methanol/Waterloo_Methanol_Prescribed_2cm_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Waterloo_Methanol/Waterloo_Methanol_RMS_Temperature_60_cm,0,max,0,Waterloo Methanol,b^,b,LaTeX s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +s,Fireball Diameter,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +d,Sandia Fireballs,Sandia_Fireballs/ethane_fireball_flame.csv,1,2,Time,D_S|D_E,Exp (South)|Exp (East),bo|ro,0,10000,,0,10000,-10000,10000,0,Sandia_Fireballs/ethane_fireball_cat_devc.csv,2,3,Time,D_S_max|D_E_max,FDS (South)|FDS (East),b-|r-,0,10000,,0,10000,-10000,10000,0,Ethane,Time (s),Diameter (m),0,20,1,0,100,1,no,0.05 0.90,NorthEast,,1,Sandia_Fireballs/ethane_fireball_cat_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Sandia_Fireballs/ethane_diameter,Fireball Diameter,max,0,Sandia Fireballs,r<,c,TeX +d,Sandia Fireballs,Sandia_Fireballs/ethylene_fireball_flame.csv,1,2,Time,D_S|D_E,Exp (South)|Exp (East),bo|ro,0,10000,,0,10000,-10000,10000,0,Sandia_Fireballs/ethylene_fireball_cat_devc.csv,2,3,Time,D_S_max|D_E_max,FDS (South)|FDS (East),b-|r-,0,10000,,0,10000,-10000,10000,0,Ethylene,Time (s),Diameter (m),0,20,1,0,100,1,no,0.05 0.90,NorthEast,,1,Sandia_Fireballs/ethylene_fireball_cat_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Sandia_Fireballs/ethylene_diameter,Fireball Diameter,max,0,Sandia Fireballs,r<,c,TeX +d,Sandia Fireballs,Sandia_Fireballs/isopentane_fireball_flame.csv,1,2,Time,D_S|D_E,Exp (South)|Exp (East),bo|ro,0,10000,,0,10000,-10000,10000,0,Sandia_Fireballs/isopentane_fireball_cat_devc.csv,2,3,Time,D_S_max|D_E_max,FDS (South)|FDS (East),b-|r-,0,10000,,0,10000,-10000,10000,0,Isopentane,Time (s),Diameter (m),0,20,1,0,100,1,no,0.05 0.90,NorthEast,,1,Sandia_Fireballs/isopentane_fireball_cat_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Sandia_Fireballs/isopentane_diameter,Fireball Diameter,max,0,Sandia Fireballs,r<,c,TeX +s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +d,Shell LNG Fireballs,Shell_LNG_Fireballs/Exp_2_flame.csv,1,2,Time,D,Exp (D),k-,0,10000,,0,10000,-10000,10000,0,Shell_LNG_Fireballs/Exp_2_devc.csv,2,3,Time,D_max,FDS (D_max),k--,0,10000,,0,10000,-10000,10000,0,Fireball Diameter; Exp 2,Time (s),Diameter (m),0,10,1,0,100,1,no,0.05 0.90,NorthEast,,1,Shell_LNG_Fireballs/Exp_2_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Shell_LNG_Fireballs/Exp_2_diam,Fireball Diameter,max,0,Shell LNG Fireballs,bv,b,TeX +d,Shell LNG Fireballs,Shell_LNG_Fireballs/Exp_3_flame.csv,1,2,Time,D,Exp (D),k-,0,10000,,0,10000,-10000,10000,0,Shell_LNG_Fireballs/Exp_3_devc.csv,2,3,Time,D_max,FDS (D_max),k--,0,10000,,0,10000,-10000,10000,0,Fireball Diameter; Exp 3,Time (s),Diameter (m),0,10,1,0,100,1,no,0.05 0.90,NorthEast,,1,Shell_LNG_Fireballs/Exp_3_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Shell_LNG_Fireballs/Exp_3_diam,Fireball Diameter,max,0,Shell LNG Fireballs,bv,b,TeX +d,Shell LNG Fireballs,Shell_LNG_Fireballs/Exp_4_flame.csv,1,2,Time,D,Exp (D),k-,0,10000,,0,10000,-10000,10000,0,Shell_LNG_Fireballs/Exp_4_devc.csv,2,3,Time,D_max,FDS (D_max),k--,0,10000,,0,10000,-10000,10000,0,Fireball Diameter; Exp 4,Time (s),Diameter (m),0,10,1,0,100,1,no,0.05 0.90,NorthEast,,1,Shell_LNG_Fireballs/Exp_4_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Shell_LNG_Fireballs/Exp_4_diam,Fireball Diameter,max,0,Shell LNG Fireballs,bv,b,TeX +s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, s,Flame Height,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, d,BGC/GRI LNG Fires,BGC_GRI_LNG_Fires/Croce_01_HF.csv,1,2,Time,L_F,Exp,k--,0,10000,,-10000,10000,-10000,10000,0,BGC_GRI_LNG_Fires/Croce_01_devc.csv,2,3,Time,L_F,FDS,k-,0,10000,,-10000,10000,-10000,10000,0,Test 1,Time (s),Height (m),0,100,1,0,10,1,no,0.05 0.90,NorthEast,,1,BGC_GRI_LNG_Fires/Croce_01_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/BGC_GRI_LNG_Fires/Croce_01_Flame_Height,Flame Height,end,0,BGC/GRI LNG Fires,m+,m,TeX @@ -6578,6 +6588,10 @@ d,PRISME SOURCE,PRISME/PRS_SI_D5a.csv,1,3,TIME,FLT_L2_WC260|FLT_L2_NC260|FLT_L2_ d,PRISME SOURCE,PRISME/PRS_SI_D6.csv,1,3,TIME,FLT_L2_WC260|FLT_L2_NC260|FLT_L2_EC260|FLT_L2_SC260,Exp (FLT_L2_WC260)|Exp (FLT_L2_NC260)|Exp (FLT_L2_EC260)|Exp (FLT_L2_SC260),k-|r-|g-|m-,0,10000,,0,10000,-10000,10000,0,PRISME/PRS_SI_D6_devc.csv,2,3,Time,FLT_L2_WC260|FLT_L2_NC260|FLT_L2_EC260|FLT_L2_SC260,FDS (FLT_L2_WC260)|FDS (FLT_L2_NC260)|FDS (FLT_L2_EC260)|FDS (FLT_L2_SC260),k--|r--|g--|m--,0,10000,,0,10000,-10000,10000,0,SOURCE Test 6; Room 2 Total Heat Flux,Time (min),Heat Flux (kW/m²),0,60,60,0,6,1,no,0.05 0.90,East,,1,PRISME/PRS_SI_D6_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/PRISME/PRS_SI_D6_Room_2_Total_Heat_Flux_Circle,Surface Heat Flux,max,0,PRISME,mo,m,TeX d,PRISME SOURCE,PRISME/PRS_SI_D6a.csv,1,3,TIME,FLT_L2_WC260|FLT_L2_NC260|FLT_L2_EC260|FLT_L2_SC260,Exp (FLT_L2_WC260)|Exp (FLT_L2_NC260)|Exp (FLT_L2_EC260)|Exp (FLT_L2_SC260),k-|r-|g-|m-,0,10000,,0,10000,-10000,10000,0,PRISME/PRS_SI_D6a_devc.csv,2,3,Time,FLT_L2_WC260|FLT_L2_NC260|FLT_L2_EC260|FLT_L2_SC260,FDS (FLT_L2_WC260)|FDS (FLT_L2_NC260)|FDS (FLT_L2_EC260)|FDS (FLT_L2_SC260),k--|r--|g--|m--,0,10000,,0,10000,-10000,10000,0,SOURCE Test 6a; Room 2 Total Heat Flux,Time (min),Heat Flux (kW/m²),0,60,60,0,6,1,no,0.05 0.90,East,,1,PRISME/PRS_SI_D6_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/PRISME/PRS_SI_D6a_Room_2_Total_Heat_Flux_Circle,Surface Heat Flux,max,0,PRISME,mo,m,TeX s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +d,Sandia Fireballs,Sandia_Fireballs/Ethane.csv,1,2,Index,Heat Flux,Exp,bo,0,10000,,0,10000,-10000,10000,0,Sandia_Fireballs/Ethane.csv,1,2,Index,Heat Flux,FDS,ro,0,10000,,0,10000,-10000,10000,0,Ethane,Index,Heat Flux (kW/m²),0,32,1,0,100,1,no,0.70 0.90,NorthEast,,1,Sandia_Fireballs/ethane_fireball_cat_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Sandia_Fireballs/Ethane_dummy,Target Heat Flux,all,0,Sandia Fireballs,r<,c,TeX +d,Sandia Fireballs,Sandia_Fireballs/Ethylene.csv,1,2,Index,Heat Flux,Exp,bo,0,10000,,0,10000,-10000,10000,0,Sandia_Fireballs/Ethylene.csv,1,2,Index,Heat Flux,FDS,ro,0,10000,,0,10000,-10000,10000,0,Ethylene,Index,Heat Flux (kW/m²),0,32,1,0,100,1,no,0.70 0.90,NorthEast,,1,Sandia_Fireballs/ethylene_fireball_cat_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Sandia_Fireballs/Ethylene_dummy,Target Heat Flux,all,0,Sandia Fireballs,r<,c,TeX +d,Sandia Fireballs,Sandia_Fireballs/Isopentane.csv,1,2,Index,Heat Flux,Exp,bo,0,10000,,0,10000,-10000,10000,0,Sandia_Fireballs/Isopentane.csv,1,2,Index,Heat Flux,FDS,ro,0,10000,,0,10000,-10000,10000,0,Isopentane,Index,Heat Flux (kW/m²),0,32,1,0,100,1,no,0.70 0.90,NorthEast,,1,Sandia_Fireballs/isopentane_fireball_cat_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Sandia_Fireballs/Isopentane_dummy,Target Heat Flux,all,0,Sandia Fireballs,r<,c,TeX +s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, d,Sandia Jet Fires,Sandia_Jet_Fires/Ethane.csv,1,2,Index,Heat Flux,Exp,bo,0,10000,,0,10000,-10000,10000,0,Sandia_Jet_Fires/Ethane.csv,1,2,Index,Heat Flux,FDS,ro,0,10000,,0,10000,-10000,10000,0,Ethane,Index,Heat Flux (kW/m²),0,32,1,0,100,1,no,0.70 0.90,NorthEast,,1,Sandia_Jet_Fires/ethane_jet_cat_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Sandia_Jet_Fires/Ethane_dummy,Target Heat Flux,all,0,Sandia Jet Fires,c<,c,TeX d,Sandia Jet Fires,Sandia_Jet_Fires/Ethylene.csv,1,2,Index,Heat Flux,Exp,bo,0,10000,,0,10000,-10000,10000,0,Sandia_Jet_Fires/Ethylene.csv,1,2,Index,Heat Flux,FDS,ro,0,10000,,0,10000,-10000,10000,0,Ethylene,Index,Heat Flux (kW/m²),0,32,1,0,100,1,no,0.70 0.90,NorthEast,,1,Sandia_Jet_Fires/ethylene_jet_cat_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Sandia_Jet_Fires/Ethylene_dummy,Target Heat Flux,all,0,Sandia Jet Fires,c<,c,TeX d,Sandia Jet Fires,Sandia_Jet_Fires/Isopentane.csv,1,2,Index,Heat Flux,Exp,bo,0,10000,,0,10000,-10000,10000,0,Sandia_Jet_Fires/Isopentane.csv,1,2,Index,Heat Flux,FDS,ro,0,10000,,0,10000,-10000,10000,0,Isopentane,Index,Heat Flux (kW/m²),0,32,1,0,100,1,no,0.70 0.90,NorthEast,,1,Sandia_Jet_Fires/isopentane_jet_cat_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Sandia_Jet_Fires/Isopentane_dummy,Target Heat Flux,all,0,Sandia Jet Fires,c<,c,TeX @@ -7984,10 +7998,10 @@ d,UMD SBI,Submodules/macfp-db/Fire_Growth/UMD_SBI/Experimental_Data/HRR_1Hz_7Tes f,UMD SBI,Submodules/macfp-db/Fire_Growth/UMD_SBI/Experimental_Data/HRR_1Hz_7TestAverage.csv,1,3,Time,HRR,blank,blank,0,10000,,170,190,-10000,10000,0,UMD_SBI/UMD_SBI_2_cm_devc.csv,2,3,Time,HRR,FDS (2 cm),k-,0,10000,,170,190,-10000,10000,0,UMD SBI Heat Release Rate,Time (s),Heat Release Rate (kW),0,200,1,0,400,1,no,0.05 0.90,SouthEast,,1,UMD_SBI/UMD_SBI_2_cm_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/UMD_SBI/HRR,Heat Release Rate,max,0,UMD SBI,ro,g,TeX f,UMD SBI,Submodules/macfp-db/Fire_Growth/UMD_SBI/Experimental_Data/HRR_1Hz_7TestAverage.csv,1,3,Time,HRR,blank,blank,0,10000,,170,190,-10000,10000,0,UMD_SBI/UMD_SBI_1_cm_devc.csv,2,3,Time,HRR,FDS (1 cm),k-.,0,10000,,170,190,-10000,10000,0,UMD SBI Heat Release Rate,Time (s),Heat Release Rate (kW),0,200,1,0,400,1,no,0.05 0.90,SouthEast,,1,UMD_SBI/UMD_SBI_1_cm_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/UMD_SBI/HRR,Heat Release Rate,max,0,UMD SBI,ro,g,TeX s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -d,Utiskul Compartment,Utiskul_Compartment/case1.csv,1,3,Time,Total Burning Rate,Exp (Total Burning Rate),k-,0,10000,,0,10000,-10000,10000,0,Utiskul_Compartment/hu_1p_hrr.csv,2,3,Time,MLR_FUEL,FDS (MLR_FUEL),k--,0,10000,,0,10000,-10000,10000,0,Mass Loss Rate; Test 1,Time (s),Burning Rate (kg/s),0,400,1,0,0.0003,1,no,0.05 0.90,Southeast,,1,Utiskul_Compartment/hu_1p_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_1_MLR,0,max,0,Utiskul Compartment,ko,k,TeX -d,Utiskul Compartment,Utiskul_Compartment/case2.csv,1,3,Time,Total Burning Rate,Exp (Total Burning Rate),k-,0,10000,,0,10000,-10000,10000,0,Utiskul_Compartment/hu_2p_hrr.csv,2,3,Time,MLR_FUEL,FDS (MLR_FUEL),k--,0,10000,,0,10000,-10000,10000,0,Mass Loss Rate; Test 2,Time (s),Burning Rate (kg/s),0,400,1,0,0.001,1,no,0.05 0.90,Southeast,,1,Utiskul_Compartment/hu_2p_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_2_MLR,0,max,0,Utiskul Compartment,ko,k,TeX -d,Utiskul Compartment,Utiskul_Compartment/case3.csv,1,3,Time,Total Burning Rate,Exp (Total Burning Rate),k-,0,10000,,0,10000,-10000,10000,0,Utiskul_Compartment/hu_3p_hrr.csv,2,3,Time,MLR_FUEL,FDS (MLR_FUEL),k--,0,10000,,0,10000,-10000,10000,0,Mass Loss Rate; Test 3,Time (s),Burning Rate (kg/s),0,400,1,0,0.0003,1,no,0.05 0.90,Southeast,,1,Utiskul_Compartment/hu_3p_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_3_MLR,0,max,0,Utiskul Compartment,ko,k,TeX -d,Utiskul Compartment,Utiskul_Compartment/case4.csv,1,3,Time,Total Burning Rate,Exp (Total Burning Rate),k-,0,10000,,0,10000,-10000,10000,0,Utiskul_Compartment/hu_4p_hrr.csv,2,3,Time,MLR_FUEL,FDS (MLR_FUEL),k--,0,10000,,0,10000,-10000,10000,0,Mass Loss Rate; Test 4,Time (s),Burning Rate (kg/s),0,100,1,0,0.0002,1,no,0.05 0.90,Southeast,,1,Utiskul_Compartment/hu_4p_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_4_MLR,0,max,0,Utiskul Compartment,ko,k,TeX +d,Utiskul Compartment,Utiskul_Compartment/case1.csv,1,3,Time,Total Burning Rate,Exp (Total Burning Rate),k-,0,10000,,0,10000,-10000,10000,0,Utiskul_Compartment/hu_1p_hrr.csv,2,3,Time,MLR_N-HEPTANE,FDS (MLR_N-HEPTANE),k--,0,10000,,0,10000,-10000,10000,0,Mass Loss Rate; Test 1,Time (s),Burning Rate (kg/s),0,400,1,0,0.0003,1,no,0.05 0.90,Southeast,,1,Utiskul_Compartment/hu_1p_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_1_MLR,0,max,0,Utiskul Compartment,ko,k,TeX +d,Utiskul Compartment,Utiskul_Compartment/case2.csv,1,3,Time,Total Burning Rate,Exp (Total Burning Rate),k-,0,10000,,0,10000,-10000,10000,0,Utiskul_Compartment/hu_2p_hrr.csv,2,3,Time,MLR_N-HEPTANE,FDS (MLR_N-HEPTANE),k--,0,10000,,0,10000,-10000,10000,0,Mass Loss Rate; Test 2,Time (s),Burning Rate (kg/s),0,400,1,0,0.001,1,no,0.05 0.90,Southeast,,1,Utiskul_Compartment/hu_2p_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_2_MLR,0,max,0,Utiskul Compartment,ko,k,TeX +d,Utiskul Compartment,Utiskul_Compartment/case3.csv,1,3,Time,Total Burning Rate,Exp (Total Burning Rate),k-,0,10000,,0,10000,-10000,10000,0,Utiskul_Compartment/hu_3p_hrr.csv,2,3,Time,MLR_N-HEPTANE,FDS (MLR_N-HEPTANE),k--,0,10000,,0,10000,-10000,10000,0,Mass Loss Rate; Test 3,Time (s),Burning Rate (kg/s),0,400,1,0,0.0003,1,no,0.05 0.90,Southeast,,1,Utiskul_Compartment/hu_3p_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_3_MLR,0,max,0,Utiskul Compartment,ko,k,TeX +d,Utiskul Compartment,Utiskul_Compartment/case4.csv,1,3,Time,Total Burning Rate,Exp (Total Burning Rate),k-,0,10000,,0,10000,-10000,10000,0,Utiskul_Compartment/hu_4p_hrr.csv,2,3,Time,MLR_N-HEPTANE,FDS (MLR_N-HEPTANE),k--,0,10000,,0,10000,-10000,10000,0,Mass Loss Rate; Test 4,Time (s),Burning Rate (kg/s),0,100,1,0,0.0002,1,no,0.05 0.90,Southeast,,1,Utiskul_Compartment/hu_4p_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Utiskul_Compartment/Utiskul_Compartment_Test_4_MLR,0,max,0,Utiskul Compartment,ko,k,TeX s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, d,USFS/Catchpole,USFS_Catchpole/EX72.csv,1,3,Time,Distance,Exp,k-,0,10000,,0,10000,-10000,10000,0,USFS_Catchpole/EX72_cat_devc.csv,2,3,Time,x,FDS,k--,0,10000,,0,10000,4,6,0,EX72,Time (s),Distance (m),0,130,1,0,8,1,no,0.05 0.90,SouthEast,,1,USFS_Catchpole/EX72_cat_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/USFS_Catchpole/EX72,Rate of Spread,slope,0,USFS/Catchpole (Regular Excelsior),b^,b,TeX d,USFS/Catchpole,USFS_Catchpole/EX73.csv,1,3,Time,Distance,Exp,k-,0,10000,,0,10000,-10000,10000,0,USFS_Catchpole/EX73_cat_devc.csv,2,3,Time,x,FDS,k--,0,10000,,0,10000,4,6,0,EX73,Time (s),Distance (m),0,103,1,0,8,1,no,0.05 0.90,SouthEast,,1,USFS_Catchpole/EX73_cat_git.txt,linear,FDS_Validation_Guide/SCRIPT_FIGURES/USFS_Catchpole/EX73,Rate of Spread,slope,0,USFS/Catchpole (Regular Excelsior),b^,b,TeX diff --git a/Utilities/Python/FDS_validation_scatterplot_inputs.csv b/Utilities/Python/FDS_validation_scatterplot_inputs.csv index bd654b7ea96..b9aa71cd9bd 100644 --- a/Utilities/Python/FDS_validation_scatterplot_inputs.csv +++ b/Utilities/Python/FDS_validation_scatterplot_inputs.csv @@ -40,3 +40,4 @@ Rate of Spread,Measured Rate of Spread (m/s),Predicted Rate of Spread (m/s),0.00 Condensation,Measured Heat Flux (kW/m²),Predicted Heat Flux (kW/m²),0,12,0.03 0.96,EastOutside,1.5,12,yes,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Scatterplots/FDS_Condensation Aerosol Deposition,Measured Mass (mg),Predicted Mass (mg),0,0.15,0.03 0.96,EastOutside,1.3,12,yes,linear,FDS_Validation_Guide/SCRIPT_FIGURES/Scatterplots/FDS_Aerosol_Deposition Evaporation Rate,Measured Rate (dD²/dt),Predicted Rate (dD²/dt),1.00E-09,1.00E-07,0.03 0.95,EastOutside,1.3,-1,yes,loglog,FDS_Validation_Guide/SCRIPT_FIGURES/Scatterplots/FDS_Evaporation_Rate +Fireball Diameter,Measured Diameter (m),Predicted Diameter (m),10,100,0.03 0.95,EastOutside,1.5,-1,yes,loglog,FDS_Validation_Guide/SCRIPT_FIGURES/Scatterplots/FDS_Fireball_Diameter diff --git a/Utilities/Python/FDS_validation_script.py b/Utilities/Python/FDS_validation_script.py index 90470a1e11b..acaa4ac66a0 100644 --- a/Utilities/Python/FDS_validation_script.py +++ b/Utilities/Python/FDS_validation_script.py @@ -37,6 +37,7 @@ def safe_run(script_path): print("Crown_Fires..."); safe_run("./scripts/Crown_Fires.py") print("Ranz_Marshall..."); safe_run("./scripts/Ranz_Marshall.py") print("Phoenix_LNG_Fires..."); safe_run("./scripts/Phoenix_LNG_Fires.py") +print("Sandia_Fireballs..."); safe_run("./scripts/Sandia_Fireballs.py") print("Sandia_Jet_Fires..."); safe_run("./scripts/Sandia_Jet_Fires.py") print("Sandia_Plumes_TKE..."); safe_run("./scripts/Sandia_Plumes_TKE.py") print("Sandia_Pool_Fires..."); safe_run("./scripts/Sandia_Pool_Fires.py") diff --git a/Utilities/Python/scripts/Sandia_Fireballs.py b/Utilities/Python/scripts/Sandia_Fireballs.py new file mode 100644 index 00000000000..a2fd9bdc87d --- /dev/null +++ b/Utilities/Python/scripts/Sandia_Fireballs.py @@ -0,0 +1,70 @@ + +import pandas as pd +import numpy as np +import os + +# include FDS plot styles, etc. +import fdsplotlib + +# Get plot style parameters +plot_style = fdsplotlib.get_plot_style('fds') + +expdir = '../../../exp/Sandia_Fireballs/' +outdir = '../../../out/Sandia_Fireballs/' +figdir = '../../Manuals/FDS_Validation_Guide/SCRIPT_FIGURES/Sandia_Fireballs/' + +E_file = ['ethane_fireball.csv','ethylene_fireball.csv','isopentane_fireball.csv'] +M_file = ['ethane_fireball_cat_devc.csv','ethylene_fireball_cat_devc.csv','isopentane_fireball_cat_devc.csv'] + +marker = ['ko','ro','go'] +label = ['Ethane','Ethylene','Isopentane'] + +git_file = os.path.join(outdir, f'ethane_fireball_cat_git.txt') +version_string = fdsplotlib.get_version_string(git_file) + +fig = fdsplotlib.plot_to_fig([0,80],[0,80], marker_style='k-', + x_min=0, x_max=80, y_min=0, y_max=80, + figure_size=(plot_style['Scat_Paper_Width'],plot_style['Scat_Paper_Height']), + plot_size=(plot_style['Scat_Plot_Width'],plot_style['Scat_Plot_Height']), + plot_origin=(plot_style['Scat_Plot_X'],plot_style['Scat_Plot_Y']), + legend_location='upper left', + revision_label=version_string, + x_label='Measured Heat Flux (kW/m²)', + y_label='Predicted Heat Flux (kW/m²)' + ) + +for i in range(3): + + # Read first CSV file and extract second column into array E + df1 = pd.read_csv(expdir + E_file[i], skiprows=0) + E = df1.iloc[:,1].values # Second column (index 1) + + # Read second CSV file, skip first two rows, and extract the max value into array M + df2 = pd.read_csv(outdir + M_file[i], skiprows=2) + M = df2.iloc[:, 6:].max().values + + # Remove NaN values by creating a mask for valid (non-NaN) values in both arrays + # Ensure both arrays have the same length by taking the minimum length + min_length = min(len(E), len(M)) + E = E[:min_length] + M = M[:min_length] + + # Create mask for non-NaN values in both arrays + valid_mask = ~(np.isnan(E) | np.isnan(M)) + E_clean = E[valid_mask] + M_clean = M[valid_mask] + + # Add data to scatterplot + fdsplotlib.plot_to_fig(E_clean, M_clean,figure_handle=fig, + marker_style=marker[i], + data_label=label[i]) + + df = pd.DataFrame({'Index': range(len(M_clean)),'Heat Flux': M_clean}) + df.to_csv(outdir + label[i] + '.csv', index=False) + df = pd.DataFrame({'Index': range(len(E_clean)),'Heat Flux': E_clean}) + df.to_csv(expdir + label[i] + '.csv', index=False) + +# Save as PDF +fig_file = os.path.join(figdir, f'Sandia_Fireballs.pdf') +fig.savefig(fig_file, format='pdf') + diff --git a/Utilities/Python/scripts/Sandia_Pool_Fires.py b/Utilities/Python/scripts/Sandia_Pool_Fires.py index 80c58dfd9f2..a9bab9706fc 100644 --- a/Utilities/Python/scripts/Sandia_Pool_Fires.py +++ b/Utilities/Python/scripts/Sandia_Pool_Fires.py @@ -16,7 +16,7 @@ E_file = ['ethane_pool.csv','ethylene_pool.csv','propane_pool.csv','isopentane_pool.csv'] M_file = ['ethane_pool_cat_devc.csv','ethylene_pool_cat_devc.csv','propane_pool_cat_devc.csv','isopentane_pool_cat_devc.csv'] -marker = ['ko','ro','go','bo'] +marker = ['ko','ro','bo','go'] label = ['Ethane','Ethylene','Propane','Isopentane'] git_file = os.path.join(outdir, f'ethane_pool_cat_git.txt') diff --git a/Validation/Process_All_Output.sh b/Validation/Process_All_Output.sh index 2f29c976012..639b6c2d6c3 100755 --- a/Validation/Process_All_Output.sh +++ b/Validation/Process_All_Output.sh @@ -166,6 +166,7 @@ PROCESS PRISME PROCESS Purdue_Flames PROCESS Ranz_Marshall PROCESS Restivo_Experiment +PROCESS Sandia_Fireballs PROCESS Sandia_Jet_Fires PROCESS Sandia_Methane_Burner PROCESS Sandia_Plumes diff --git a/Validation/Run_Parallel.sh b/Validation/Run_Parallel.sh index 14f9065e601..0d446e49421 100755 --- a/Validation/Run_Parallel.sh +++ b/Validation/Run_Parallel.sh @@ -62,6 +62,7 @@ cd OMP_Scaling_Tests; ./Run_All.sh $OPTIONS; cd .. cd Phoenix_LNG_Fires; ./Run_All.sh $OPTIONS; cd .. cd Pool_Fires; ./Run_All.sh $OPTIONS; cd .. cd Purdue_Flames; ./Run_All.sh $OPTIONS; cd .. +cd Sandia_Fireballs; ./Run_All.sh $OPTIONS; cd .. cd Sandia_Jet_Fires; ./Run_All.sh $OPTIONS; cd .. cd Sandia_Methane_Burner; ./Run_All.sh $OPTIONS; cd .. cd Sandia_Plumes; ./Run_All.sh $OPTIONS; cd .. diff --git a/Validation/Sandia_Fireballs/FDS_Input_Files/ethane_fireball.fds b/Validation/Sandia_Fireballs/FDS_Input_Files/ethane_fireball.fds new file mode 100644 index 00000000000..33e70a5de0c --- /dev/null +++ b/Validation/Sandia_Fireballs/FDS_Input_Files/ethane_fireball.fds @@ -0,0 +1,36 @@ +&HEAD CHID='ethane_fireball', TITLE='Sandia Fireballs' / + +&TIME T_BEGIN=-10., T_END=20. / +&DUMP DT_HRR=0.1, DT_DEVC=0.1 / + +&MESH IJK=40,40,40, XB=-50,-10,-20,20,0,40, MULT_ID='mesh' / +&MULT ID='mesh', DX=40., DY=40., DZ=40., I_UPPER=3, J_LOWER=-1, J_UPPER=2, K_UPPER=5 / + +&WIND SPEED=3.8, Z_REF=2., DIRECTION=232.8, L=-500., Z_0=0.1 / + +&VENT MB='XMIN', SURF_ID='OPEN' / +&VENT MB='XMAX', SURF_ID='OPEN' / +&VENT MB='YMIN', SURF_ID='OPEN' / +&VENT MB='YMAX', SURF_ID='OPEN' / +&VENT MB='ZMAX', SURF_ID='OPEN' / + +&RADI NUMBER_RADIATION_ANGLES=600, PATH_LENGTH=100. / + +&REAC FUEL ='ETHANE', + SOOT_YIELD=0.001, + RADIATIVE_FRACTION=0.25 / + +&VENT XB=-1.0,1.0,-1.0,1.0,0.,0., SURF_ID='INJECTION' / + +&SURF ID='INJECTION', MASS_FLUX(1)=289.3, SPEC_ID(1)='ETHANE', TMP_FRONT=-32.8, RAMP_MF(1)='fuel', COLOR='RED', NO_SLIP=T / + +&RAMP ID='fuel', T= 0.00, F=0.0 / +&RAMP ID='fuel', T= 0.20, F=0.0 / +&RAMP ID='fuel', T= 0.21, F=1.0 / +&RAMP ID='fuel', T= 1.21, F=1.0 / +&RAMP ID='fuel', T= 1.22, F=0.0 / + +&CATF OTHER_FILES='fireball_devices.txt' / + +&TAIL / + diff --git a/Validation/Sandia_Fireballs/FDS_Input_Files/ethylene_fireball.fds b/Validation/Sandia_Fireballs/FDS_Input_Files/ethylene_fireball.fds new file mode 100644 index 00000000000..d353765616c --- /dev/null +++ b/Validation/Sandia_Fireballs/FDS_Input_Files/ethylene_fireball.fds @@ -0,0 +1,36 @@ +&HEAD CHID='ethylene_fireball', TITLE='Sandia Fireballs' / + +&TIME T_BEGIN=-10., T_END=20. / +&DUMP DT_HRR=0.1, DT_DEVC=0.1 / + +&MESH IJK=40,40,40, XB=-50,-10,-20,20,0,40, MULT_ID='mesh' / +&MULT ID='mesh', DX=40., DY=40., DZ=40., I_UPPER=3, J_LOWER=-1, J_UPPER=2, K_UPPER=5 / + +&WIND SPEED=0.87, Z_REF=2., DIRECTION=54.9, L=-500., Z_0=0.1 / + +&VENT MB='XMIN', SURF_ID='OPEN' / +&VENT MB='XMAX', SURF_ID='OPEN' / +&VENT MB='YMIN', SURF_ID='OPEN' / +&VENT MB='YMAX', SURF_ID='OPEN' / +&VENT MB='ZMAX', SURF_ID='OPEN' / + +&RADI NUMBER_RADIATION_ANGLES=600, PATH_LENGTH=100. / + +&REAC FUEL ='ETHYLENE', + SOOT_YIELD=0.01, + RADIATIVE_FRACTION=0.34 / + +&VENT XB=-1.0,1.0,-1.0,1.0,0.,0., SURF_ID='INJECTION' / + +&SURF ID='INJECTION', MASS_FLUX(1)=288.3, SPEC_ID(1)='ETHYLENE', TMP_FRONT=-59.4, RAMP_MF(1)='fuel', COLOR='RED', NO_SLIP=T / + +&RAMP ID='fuel', T= 0.00, F=0.0 / +&RAMP ID='fuel', T= 0.20, F=0.0 / +&RAMP ID='fuel', T= 0.21, F=1.0 / +&RAMP ID='fuel', T= 1.21, F=1.0 / +&RAMP ID='fuel', T= 1.22, F=0.0 / + +&CATF OTHER_FILES='fireball_devices.txt' / + +&TAIL / + diff --git a/Validation/Sandia_Fireballs/FDS_Input_Files/fireball_devices.txt b/Validation/Sandia_Fireballs/FDS_Input_Files/fireball_devices.txt index 4ead2e89df9..6f847cd2be4 100644 --- a/Validation/Sandia_Fireballs/FDS_Input_Files/fireball_devices.txt +++ b/Validation/Sandia_Fireballs/FDS_Input_Files/fireball_devices.txt @@ -1,4 +1,44 @@ +! Device/Control logic to determine max fireball diameter when viewed from the south + +&DEVC ID='HRR_S', X_ID='x', QUANTITY='HRRPUV', XB=-49.5,109.5,20,20,120,120, POINTS=160, DX=0.5, DY=80, DZ=120, SPATIAL_STATISTIC='VOLUME INTEGRAL', TIME_HISTORY=T, OUTPUT=F, QUANTITY_RANGE(1)=500/ +&CTRL ID='x1', FUNCTION_TYPE='PERCENTILE', INPUT_ID='HRR_S-1', PERCENTILE=0.03 / +&CTRL ID='x2', FUNCTION_TYPE='PERCENTILE', INPUT_ID='HRR_S-1', PERCENTILE=0.97 / +&CTRL ID='D_S', FUNCTION_TYPE='SUBTRACT', INPUT_ID='x2','x1' / +&DEVC ID='D_S_max', QUANTITY='CONTROL VALUE', CTRL_ID='D_S', XYZ=0,0,0, TEMPORAL_STATISTIC='MAX', STATISTICS_START=0, UNITS='m' / +&DEVC ID='D_S_time', QUANTITY='CONTROL VALUE', CTRL_ID='D_S', XYZ=0,0,0, TEMPORAL_STATISTIC='MAX TIME', STATISTICS_START=0, UNITS='s' / + +! Device/Control logic to determine max fireball diameter when viewed from the east + +&DEVC ID='HRR_E', Y_ID='y', QUANTITY='HRRPUV', XB=30,30,-59.5,99.5,120,120, POINTS=160, DX=80, DY=0.5, DZ=120, SPATIAL_STATISTIC='VOLUME INTEGRAL', TIME_HISTORY=T, OUTPUT=F, QUANTITY_RANGE(1)=500/ +&CTRL ID='y1', FUNCTION_TYPE='PERCENTILE', INPUT_ID='HRR_E-1', PERCENTILE=0.03 / +&CTRL ID='y2', FUNCTION_TYPE='PERCENTILE', INPUT_ID='HRR_E-1', PERCENTILE=0.97 / +&CTRL ID='D_E', FUNCTION_TYPE='SUBTRACT', INPUT_ID='y2','y1' / +&DEVC ID='D_E_max', QUANTITY='CONTROL VALUE', CTRL_ID='D_E', XYZ=0,0,0, TEMPORAL_STATISTIC='MAX', STATISTICS_START=0, UNITS='m' / +&DEVC ID='D_E_time', QUANTITY='CONTROL VALUE', CTRL_ID='D_E', XYZ=0,0,0, TEMPORAL_STATISTIC='MAX TIME', STATISTICS_START=0, UNITS='s' / + +! Device/Control logic to determine height of the fireball when the max diameters are achieved + +&DEVC ID='TIME',QUANTITY='TIME', OUTPUT=F,XYZ=0,0,0/ +&CTRL ID='DD',FUNCTION_TYPE='PID',PROPORTIONAL_GAIN=0,INTEGRAL_GAIN=0,DIFFERENTIAL_GAIN=1,INPUT_ID='D_S'/ +&CTRL ID='DE',FUNCTION_TYPE='PID',PROPORTIONAL_GAIN=0,INTEGRAL_GAIN=0,DIFFERENTIAL_GAIN=1,INPUT_ID='D_E'/ +&CTRL ID='FAC1',FUNCTION_TYPE='CUSTOM',RAMP_ID='FAC1_R',INPUT_ID='TIME'/ +&CTRL ID='FAC2',FUNCTION_TYPE='CUSTOM',RAMP_ID='FAC2_R',INPUT_ID='TIME'/ +&RAMP ID='FAC1_R',T=1.999,F=1/ +&RAMP ID='FAC1_R',T=2.000,F=0/ +&RAMP ID='FAC2_R',T=1.999,F=0/ +&RAMP ID='FAC2_R',T=2.000,F=1/ +&CTRL ID='TERM2D',FUNCTION_TYPE='MULTIPLY',INPUT_ID='DD','FAC2'/ +&CTRL ID='TERM2E',FUNCTION_TYPE='MULTIPLY',INPUT_ID='DE','FAC2'/ +&CTRL ID='OUT DD',FUNCTION_TYPE='SUM',INPUT_ID='FAC1','TERM2D'/ +&CTRL ID='OUT DE',FUNCTION_TYPE='SUM',INPUT_ID='FAC1','TERM2E'/ +&DEVC ID='SUM DD',QUANTITY='CONTROL VALUE',CTRL_ID='OUT DD',UNITS='m/s',SMOOTHING_TIME=0.2,SETPOINT=-0.001,TRIP_DIRECTION=-1, OUTPUT=F/ +&DEVC ID='SUM DE',QUANTITY='CONTROL VALUE',CTRL_ID='OUT DE',UNITS='m/s',SMOOTHING_TIME=0.2,SETPOINT=-0.001,TRIP_DIRECTION=-1, OUTPUT=F/ +&CTRL ID='BOTH FREEZE',FUNCTION_TYPE='ALL',INPUT_ID='SUM DD','SUM DE'/ +&DEVC ID='Height', QUANTITY='HRRPUV', XB=-50,110,-60,100,0,240, SPATIAL_STATISTIC='CENTROID Z',NO_UPDATE_CTRL_ID='BOTH FREEZE'/ + +! Radiometers + &DEVC ID='R1', XYZ=-24.6,94.1,4.5, QUANTITY='RADIATIVE HEAT FLUX GAS', ORIENTATION=0.253,-0.967,1.000 / &DEVC ID='R2', XYZ=-24.8,91.0,4.3, QUANTITY='RADIATIVE HEAT FLUX GAS', ORIENTATION=0.263,-0.965,1.000 / &DEVC ID='R3', XYZ=-25.1,88.1,4.2, QUANTITY='RADIATIVE HEAT FLUX GAS', ORIENTATION=0.274,-0.962,1.000 / @@ -39,3 +79,12 @@ &DEVC ID='R38', XYZ= -2.8,47.1,2.2, QUANTITY='RADIATIVE HEAT FLUX GAS', ORIENTATION=0.059,-0.998,1.000 / &DEVC ID='R39', XYZ= 0.0,47.0,2.3, QUANTITY='RADIATIVE HEAT FLUX GAS', ORIENTATION=0.000,-1.000,1.000 / &DEVC ID='R40', XYZ= 0.3,50.1,2.6, QUANTITY='RADIATIVE HEAT FLUX GAS', ORIENTATION=-0.006,-1.000,1.000 / + +&SLCF PBY=0.1, QUANTITY='TEMPERATURE', CELL_CENTERED=T / +&SLCF PBY=0.1, QUANTITY='VELOCITY', VECTOR=T / +&SLCF PBY=0.1, QUANTITY='INTEGRATED INTENSITY', CELL_CENTERED=T / +&SLCF PBZ=0.1, QUANTITY='INTEGRATED INTENSITY', CELL_CENTERED=T / +&SLCF PBY=0.1, QUANTITY='HRRPUV', CELL_CENTERED=T / + +&BNDF QUANTITY='RADIATIVE HEAT FLUX' / + diff --git a/Validation/Sandia_Fireballs/FDS_Input_Files/isopentane_fireball.fds b/Validation/Sandia_Fireballs/FDS_Input_Files/isopentane_fireball.fds new file mode 100644 index 00000000000..8ff4083252f --- /dev/null +++ b/Validation/Sandia_Fireballs/FDS_Input_Files/isopentane_fireball.fds @@ -0,0 +1,36 @@ +&HEAD CHID='isopentane_fireball', TITLE='Sandia Fireballs' / + +&TIME T_BEGIN=-10., T_END=20. / +&DUMP DT_HRR=0.1, DT_DEVC=0.1 / + +&MESH IJK=40,40,40, XB=-50,-10,-20,20,0,40, MULT_ID='mesh' / +&MULT ID='mesh', DX=40., DY=40., DZ=40., I_UPPER=3, J_LOWER=-1, J_UPPER=2, K_UPPER=5 / + +&WIND SPEED=1.1, Z_REF=2., DIRECTION=111.8, L=-500., Z_0=0.1 / + +&VENT MB='XMIN', SURF_ID='OPEN' / +&VENT MB='XMAX', SURF_ID='OPEN' / +&VENT MB='YMIN', SURF_ID='OPEN' / +&VENT MB='YMAX', SURF_ID='OPEN' / +&VENT MB='ZMAX', SURF_ID='OPEN' / + +&RADI NUMBER_RADIATION_ANGLES=600, PATH_LENGTH=100. / + +&REAC FUEL ='N-PENTANE', + SOOT_YIELD=0.05, + RADIATIVE_FRACTION=0.40 / + +&VENT XB=-1.0,1.0,-1.0,1.0,0.,0., SURF_ID='INJECTION' / + +&SURF ID='INJECTION', MASS_FLUX(1)=287.5, SPEC_ID(1)='N-PENTANE', TMP_FRONT=114., RAMP_MF(1)='fuel', COLOR='RED', NO_SLIP=T / + +&RAMP ID='fuel', T= 0.00, F=0.0 / +&RAMP ID='fuel', T= 0.20, F=0.0 / +&RAMP ID='fuel', T= 0.21, F=1.0 / +&RAMP ID='fuel', T= 1.21, F=1.0 / +&RAMP ID='fuel', T= 1.22, F=0.0 / + +&CATF OTHER_FILES='fireball_devices.txt' / + +&TAIL / + diff --git a/Validation/Sandia_Fireballs/Process_Output.sh b/Validation/Sandia_Fireballs/Process_Output.sh new file mode 100755 index 00000000000..66ccae6213c --- /dev/null +++ b/Validation/Sandia_Fireballs/Process_Output.sh @@ -0,0 +1,10 @@ +#!/bin/bash +PDIR=../../../out +CUR=`pwd` +DIR=`basename $CUR` + +DDIR=Current_Results +WDIR=$PDIR/$DIR +cp $DDIR/*devc.csv $WDIR +cp $DDIR/*git.txt $WDIR + diff --git a/Validation/Sandia_Fireballs/Run_All.sh b/Validation/Sandia_Fireballs/Run_All.sh new file mode 100755 index 00000000000..691c384b13a --- /dev/null +++ b/Validation/Sandia_Fireballs/Run_All.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# This script runs a set of Validation Cases on a Linux machine with a batch queuing system. +# See the file Validation/Common_Run_All.sh for more information. +export SVNROOT=`pwd`/../.. +source $SVNROOT/Validation/Common_Run_All.sh + +$QFDS $DEBUG $QUEUE -p 96 -d $INDIR ethane_fireball.fds +$QFDS $DEBUG $QUEUE -p 96 -d $INDIR ethylene_fireball.fds +$QFDS $DEBUG $QUEUE -p 96 -d $INDIR isopentane_fireball.fds + +echo FDS cases submitted diff --git a/Validation/Utiskul_Compartment/FDS_Input_Files/hu_1p.fds b/Validation/Utiskul_Compartment/FDS_Input_Files/hu_1p.fds index 1abc3ec75a9..03ad744c715 100644 --- a/Validation/Utiskul_Compartment/FDS_Input_Files/hu_1p.fds +++ b/Validation/Utiskul_Compartment/FDS_Input_Files/hu_1p.fds @@ -1,17 +1,17 @@ &HEAD CHID='hu_1p',TITLE='Hu et al. IAFSS (2005) compartment fire Case 1 prescribed mass loss rate'/ -&MESH IJK=40,40,40, XB=-0.2,0.2,-0.2,0.2,0.0,0.4/ +&MESH IJK=60,40,40, XB=-0.2,0.4,-0.2,0.2,0.0,0.4/ &TIME T_END=350./ &DUMP DT_DEVC=5., DT_HRR=5. / -&COMB SUPPRESSION=.FALSE. / - &REAC FUEL = 'N-HEPTANE', N_SIMPLE_CHEMISTRY_REACTIONS=2 / -&VENT XB=0.2,0.2,-0.2,0.2,0.37,0.4, SURF_ID='OPEN' / -&VENT XB=0.2,0.2,-0.2,0.2,0.0,0.03, SURF_ID='OPEN' / +&VENT XB=0.40,0.40,-0.20,0.20,0.00,0.4, SURF_ID='OPEN' / +&OBST XB=0.20,0.22,-0.20,0.20,0.00,0.4 / +&HOLE XB=0.19,0.23,-0.20,0.20,0.37,0.4 / +&HOLE XB=0.19,0.23,-0.20,0.20,0.0,0.03 / &VENT XB=-0.0475,0.0475,-0.0475,0.0475,0.00,0.00, XYZ=0,0,0, RADIUS=0.0475, SPREAD_RATE=1000., SURF_ID='FIRE', COLOR='RED'/ @@ -42,6 +42,11 @@ &RAMP ID='k_fiber',T=900.,F=0.25 / &SLCF PBY=0., QUANTITY='TEMPERATURE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='N-HEPTANE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='OXYGEN', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='CARBON DIOXIDE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='CARBON MONOXIDE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='HRRPUV', CELL_CENTERED=.TRUE./ &SLCF PBY=0., QUANTITY='VELOCITY', VECTOR=.TRUE./ &DEVC XB=0.20,0.20,-0.2,0.2,0.37,0.4, QUANTITY='MASS FLUX X', SPATIAL_STATISTIC='AREA INTEGRAL', ID='M1'/ diff --git a/Validation/Utiskul_Compartment/FDS_Input_Files/hu_2p.fds b/Validation/Utiskul_Compartment/FDS_Input_Files/hu_2p.fds index cb2d01a6bce..6bc14387372 100644 --- a/Validation/Utiskul_Compartment/FDS_Input_Files/hu_2p.fds +++ b/Validation/Utiskul_Compartment/FDS_Input_Files/hu_2p.fds @@ -1,17 +1,17 @@ &HEAD CHID='hu_2p',TITLE='Hu et al. IAFSS (2005) compartment fire Case 2 prescribed mass loss rate'/ -&MESH IJK=40,40,40, XB=-.2,0.2,-0.2,0.2,0.0,0.4 / +&MESH IJK=60,40,40, XB=-.2,0.4,-0.2,0.2,0.0,0.4 / -&TIME T_END=250./ +&TIME T_END=300./ &DUMP DT_DEVC=5., DT_HRR=5. / -&COMB SUPPRESSION=.FALSE. / - &REAC FUEL = 'N-HEPTANE', N_SIMPLE_CHEMISTRY_REACTIONS=2 / -&VENT XB=0.20,0.20,-0.2,0.2,0.39,0.4, SURF_ID='OPEN' / -&VENT XB=0.20,0.20,-0.2,0.2,0.0,0.01, SURF_ID='OPEN' / +&VENT XB=0.40,0.40,-0.20,0.20,0.00,0.4, SURF_ID='OPEN' / +&OBST XB=0.20,0.22,-0.20,0.20,0.00,0.4 / +&HOLE XB=0.19,0.23,-0.20,0.20,0.39,0.4 / +&HOLE XB=0.19,0.23,-0.20,0.20,0.0,0.01 / &VENT XB=-0.095,0.095,-0.095,0.095,0.00,0.00, XYZ=0,0,0, RADIUS=0.095, SPREAD_RATE=1000., SURF_ID='FIRE', COLOR='RED'/ @@ -43,6 +43,11 @@ &RAMP ID='k_fiber',T=900.,F=0.25 / &SLCF PBY=0., QUANTITY='TEMPERATURE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='N-HEPTANE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='OXYGEN', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='CARBON DIOXIDE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='CARBON MONOXIDE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='HRRPUV', CELL_CENTERED=.TRUE./ &SLCF PBY=0., QUANTITY='VELOCITY', VECTOR=.TRUE./ &DEVC XB=0.20,0.20,-0.2,0.2,0.39,0.4, QUANTITY='MASS FLUX X', SPATIAL_STATISTIC='AREA INTEGRAL', ID='M1'/ diff --git a/Validation/Utiskul_Compartment/FDS_Input_Files/hu_3p.fds b/Validation/Utiskul_Compartment/FDS_Input_Files/hu_3p.fds index d9a0d9a86f6..1d75798c08a 100644 --- a/Validation/Utiskul_Compartment/FDS_Input_Files/hu_3p.fds +++ b/Validation/Utiskul_Compartment/FDS_Input_Files/hu_3p.fds @@ -1,17 +1,17 @@ &HEAD CHID='hu_3p',TITLE='Hu et al. IAFSS (2005) compartment fire Case 3 prescribed mass loss rate'/ -&MESH IJK=40,40,40, XB=-.2,0.2,-0.2,0.2,0.0,0.4/ +&MESH IJK=60,40,40, XB=-.2,0.4,-0.2,0.2,0.0,0.4/ &TIME T_END=350./ &DUMP DT_DEVC=5., DT_HRR=5. / -&COMB SUPPRESSION=.FALSE. / - &REAC FUEL = 'N-HEPTANE', N_SIMPLE_CHEMISTRY_REACTIONS=2 / -&VENT XB=0.20,0.20,-0.05,0.05,0.37,0.4, SURF_ID='OPEN' / -&VENT XB=0.20,0.20,-0.05,0.05,0.0,0.03, SURF_ID='OPEN' / +&VENT XB=0.40,0.40,-0.20,0.20,0.00,0.4, SURF_ID='OPEN' / +&OBST XB=0.20,0.22,-0.20,0.20,0.00,0.4 / +&HOLE XB=0.19,0.23,-0.05,0.05,0.37,0.4 / +&HOLE XB=0.19,0.23,-0.05,0.05,0.0,0.03 / &VENT XB=-0.0475,0.0475,-0.0475,0.0475,0.00,0.00, XYZ=0,0,0, RADIUS=0.0475, SPREAD_RATE=1000., SURF_ID='FIRE', COLOR='RED'/ @@ -43,6 +43,11 @@ &RAMP ID='k_fiber',T=900.,F=0.25 / &SLCF PBY=0., QUANTITY='TEMPERATURE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='N-HEPTANE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='OXYGEN', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='CARBON DIOXIDE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='CARBON MONOXIDE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='HRRPUV', CELL_CENTERED=.TRUE./ &SLCF PBY=0., QUANTITY='VELOCITY', VECTOR=.TRUE./ &DEVC XB=0.20,0.20,-0.05,0.05,0.37,0.4, QUANTITY='MASS FLUX X', SPATIAL_STATISTIC='AREA INTEGRAL', ID='M1'/ diff --git a/Validation/Utiskul_Compartment/FDS_Input_Files/hu_4p.fds b/Validation/Utiskul_Compartment/FDS_Input_Files/hu_4p.fds index 903193c76ee..54090fb04bc 100644 --- a/Validation/Utiskul_Compartment/FDS_Input_Files/hu_4p.fds +++ b/Validation/Utiskul_Compartment/FDS_Input_Files/hu_4p.fds @@ -1,17 +1,17 @@ &HEAD CHID='hu_4p',TITLE='Hu et al. IAFSS (2005) compartment fire Case 4 prescribed mass loss rate'/ -&MESH IJK=40,40,40, XB=-.2,0.2,-0.2,0.2,0.0,0.4/ +&MESH IJK=60,40,40, XB=-.2,0.4,-0.2,0.2,0.0,0.4/ &TIME T_END=80./ &DUMP DT_DEVC=5., DT_HRR=5. / -&COMB SUPPRESSION=.FALSE. / - &REAC FUEL = 'N-HEPTANE', N_SIMPLE_CHEMISTRY_REACTIONS=2 / -&VENT XB=0.20,0.20,-0.01,0.01,0.39,0.4, SURF_ID='OPEN' / -&VENT XB=0.20,0.20,-0.01,0.01,0.0,0.01, SURF_ID='OPEN' / +&VENT XB=0.40,0.40,-0.20,0.20,0.00,0.4, SURF_ID='OPEN' / +&OBST XB=0.20,0.22,-0.20,0.20,0.00,0.4 / +&HOLE XB=0.19,0.23,-0.01,0.01,0.39,0.4 / +&HOLE XB=0.19,0.23,-0.01,0.01,0.0,0.01 / &VENT XB=-0.0475,0.0475,-0.0475,0.0475,0.00,0.00, XYZ=0,0,0, RADIUS=0.0475, SPREAD_RATE=1000., SURF_ID='FIRE', COLOR='RED'/ @@ -45,6 +45,11 @@ &RAMP ID='k_fiber',T=900.,F=0.25 / &SLCF PBY=0., QUANTITY='TEMPERATURE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='N-HEPTANE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='OXYGEN', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='CARBON DIOXIDE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='VOLUME FRACTION', SPEC_ID='CARBON MONOXIDE', CELL_CENTERED=.TRUE./ +&SLCF PBY=0., QUANTITY='HRRPUV', CELL_CENTERED=.TRUE./ &SLCF PBY=0., QUANTITY='VELOCITY', VECTOR=.TRUE./ &DEVC XB=0.20,0.20,-0.01,0.01,0.39,0.4, QUANTITY='MASS FLUX X', SPATIAL_STATISTIC='AREA INTEGRAL', ID='M1'/ diff --git a/Validation/Utiskul_Compartment/Run_All.sh b/Validation/Utiskul_Compartment/Run_All.sh new file mode 100755 index 00000000000..93f27ccc35a --- /dev/null +++ b/Validation/Utiskul_Compartment/Run_All.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# This script runs a set of Validation Cases on a Linux machine with a batch queuing system. +# See the file Validation/Common_Run_All.sh for more information. +export SVNROOT=`pwd`/../.. +source $SVNROOT/Validation/Common_Run_All.sh + +$QFDS $DEBUG $QUEUE -p 1 -o 8 -d $INDIR hu_1p.fds +$QFDS $DEBUG $QUEUE -p 1 -o 8 -d $INDIR hu_2p.fds +$QFDS $DEBUG $QUEUE -p 1 -o 8 -d $INDIR hu_3p.fds +$QFDS $DEBUG $QUEUE -p 1 -o 8 -d $INDIR hu_4p.fds + +echo FDS cases submitted