Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 4 additions & 0 deletions Manuals/FDS_User_Guide/FDS_User_Guide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -12269,6 +12269,7 @@ \section{\texorpdfstring{{\tt DUMP}}{DUMP} (Output Parameters)}
\ct{CLIP_RESTART_FILES} & Logical & Section~\ref{info:restart} & & \ct{T} \\ \hline
\ct{COLUMN_DUMP_LIMIT} & Logical & Section~\ref{info:out:DEVC} & & \ct{F} \\ \hline
\ct{CTRL_COLUMN_LIMIT} & Integer & Section~\ref{info:out:DEVC} & & 254 \\ \hline
\ct{DECIMAL_SPECIFIER} & Character & Section~\ref{chapter:output_formats} & & \ct{'PERIOD'} \\ \hline
\ct{DEVC_COLUMN_LIMIT} & Integer & Section~\ref{info:out:DEVC} & & 254 \\ \hline
\ct{DIAGNOSTICS_INTERVAL} & Integer & Section~\ref{info:monitoring_progress} & & 100 \\ \hline
\ct{DT_BNDF} & Real & Section~\ref{info:DT_DUMP} & s & $\Delta t$\ct{/NFRAMES} \\ \hline
Expand Down Expand Up @@ -14672,9 +14673,12 @@ \section{FDS Source Code}


\chapter{Output File Formats}
\label{chapter:output_formats}

The output from the code consists of the file \ct{CHID.out}, plus various data files that are described below. Most of these output files are written out by the subroutines within \ct{dump.f90}, and can easily be modified to accommodate various plotting packages.

Some FDS results are written to ``comma-separated value'' (\ct{.csv}) files. By default, the decimal point is represented by a period and the column separator by a comma. You can change this so that the decimal point is represented by a comma and the column separator by a semi-colon by setting \ct{DECIMAL_SPPECIFIER='COMMA'} on the \ct{DUMP} line.

\section{Diagnostic Output ({\tt .out})}
\label{out:file}

Expand Down
5 changes: 5 additions & 0 deletions Source/cons.f90
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,8 @@ MODULE GLOBAL_CONSTANTS
CHARACTER(CHID_LENGTH) :: RESTART_CHID !< Job ID for a restarted case
CHARACTER(FILE_LENGTH) :: RESULTS_DIR !< Custom directory for output
CHARACTER(FILE_LENGTH) :: BINGEOM_DIR !< Custom directory for writing binary geometry files
CHARACTER(5) :: DECIMAL_SPECIFIER='POINT' !< Use point or comma for real outputs
CHARACTER(1) :: SEPARATOR !< Decimal point or comma

! Dates, version numbers, revision numbers

Expand Down Expand Up @@ -582,6 +584,9 @@ MODULE GLOBAL_CONSTANTS
CHARACTER(FN_LENGTH), ALLOCATABLE, DIMENSION(:,:) :: FN_SLCF,FN_SLCF_GEOM,FN_BNDF,FN_BNDG,FN_ISOF,FN_ISOF2,FN_SMOKE3D,FN_RADF

CHARACTER(9) :: FMT_R
CHARACTER(25) :: REAL_LIST
CHARACTER( 9) :: CHAR_LIST
CHARACTER(11) :: INTG_LIST
LOGICAL :: OUT_FILE_OPENED=.FALSE.

! Boundary condition arrays
Expand Down
306 changes: 125 additions & 181 deletions Source/dump.f90

Large diffs are not rendered by default.

10 changes: 9 additions & 1 deletion Source/read.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2333,7 +2333,7 @@ SUBROUTINE READ_DUMP
RAMP_PART,RAMP_PL3D,RAMP_PROF,RAMP_RADF,RAMP_RESTART,RAMP_SLCF,RAMP_SL3D,RAMP_SMOKE3D,RAMP_UVW,&
RAMP_TMP,RAMP_SPEC
NAMELIST /DUMP/ BINGEOM_DIR,CFL_FILE,CLIP_RESTART_FILES,COLUMN_DUMP_LIMIT,CTRL_COLUMN_LIMIT,DEVC_COLUMN_LIMIT,&
DIAGNOSTICS_INTERVAL,&
DECIMAL_SPECIFIER,DIAGNOSTICS_INTERVAL,&
DT_BNDF,DT_CPU,DT_CTRL,DT_DEVC,DT_FLUSH,DT_HRR,DT_HVAC,DT_ISOF,DT_MASS,DT_PART,DT_PL3D,DT_PROF,&
DT_RADF,DT_RESTART,DT_SL3D,DT_SLCF,DT_SMOKE3D,DT_UVW,DT_TMP,DT_SPEC,&
FLUSH_FILE_BUFFERS,GET_CUTCELLS_VERBOSE,HRRPUV_MAX_SMV,MASS_FILE,MAXIMUM_PARTICLES,MMS_TIMER,&
Expand Down Expand Up @@ -2454,6 +2454,14 @@ SUBROUTINE READ_DUMP
! Set format of real number output

WRITE(FMT_R,'(A,I2.2,A,I2.2,A,I1.1)') 'ES',SIG_FIGS+SIG_FIGS_EXP+4,'.',SIG_FIGS-1,'E',SIG_FIGS_EXP
IF (DECIMAL_SPECIFIER=='COMMA') THEN
SEPARATOR = ';'
ELSE
SEPARATOR = ','
ENDIF
WRITE(REAL_LIST,'(6A)') "(",FMT_R,",'",SEPARATOR,"'),",FMT_R
WRITE(CHAR_LIST,'(6A)') "(","A",",'",SEPARATOR,"'),","A"
WRITE(INTG_LIST,'(6A)') "(","I0",",'",SEPARATOR,"'),","I0"

! Check Plot3D QUANTITIES

Expand Down
24 changes: 12 additions & 12 deletions Utilities/Matlab/scripts/favre_test.m
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@
YRMSL2 = L.data(2,find(strcmp(L.colheaders,'YO2_RMS')));
YRMSL3 = L.data(3,find(strcmp(L.colheaders,'YO2_RMS')));

RHO1 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'"RHO_1"')));
RHO2 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'"RHO_2"')));
RHO3 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'"RHO_3"')));
RHOYO2_1 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'"RHOYO2_1"')));
RHOYO2_2 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'"RHOYO2_2"')));
RHOYO2_3 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'"RHOYO2_3"')));
RHO1 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'RHO_1')));
RHO2 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'RHO_2')));
RHO3 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'RHO_3')));
RHOYO2_1 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'RHOYO2_1')));
RHOYO2_2 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'RHOYO2_2')));
RHOYO2_3 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'RHOYO2_3')));

% brute force integration for means

Expand Down Expand Up @@ -109,12 +109,12 @@
YRMSL2 = L.data(2,find(strcmp(L.colheaders,'YO2_RMS_INT')));
YRMSL3 = L.data(3,find(strcmp(L.colheaders,'YO2_RMS_INT')));

RHO1 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'"RHO_1_INT"')));
RHO2 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'"RHO_2_INT"')));
RHO3 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'"RHO_3_INT"')));
RHOYO2_1 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'"RHOYO2_1_INT"')));
RHOYO2_2 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'"RHOYO2_2_INT"')));
RHOYO2_3 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'"RHOYO2_3_INT"')));
RHO1 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'RHO_1_INT')));
RHO2 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'RHO_2_INT')));
RHO3 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'RHO_3_INT')));
RHOYO2_1 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'RHOYO2_1_INT')));
RHOYO2_2 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'RHOYO2_2_INT')));
RHOYO2_3 = M.data(find(M.data(:,1)>t_stats_start),find(strcmp(M.colheaders,'RHOYO2_3_INT')));

% brute force integration

Expand Down
4 changes: 2 additions & 2 deletions Utilities/Matlab/scripts/mass_balance.m
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@

F = importdata([ddir,chid,'_devc.csv'],',',2);

mdot_in = F.data(:,find(strcmp(F.colheaders,'"H2O in"')));
mdot_out = F.data(:,find(strcmp(F.colheaders,'"H2O out"')));
mdot_in = F.data(:,find(strcmp(F.colheaders,'H2O in')));
mdot_out = F.data(:,find(strcmp(F.colheaders,'H2O out')));

bal = dmdt - mdot_in - mdot_out;

Expand Down
14 changes: 7 additions & 7 deletions Utilities/Matlab/scripts/mass_balance_gas_volume.m
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,18 @@
M = importdata([ddir,chid,'_devc.csv'],',',2);

t = M.data(:,1);
m = M.data(:,find(strcmp(M.colheaders,'"M"')));
m = M.data(:,find(strcmp(M.colheaders,'M')));
dmdt = zeros(length(t),1);
for i=2:length(t)
dmdt(i) = (m(i)-m(i-1))/(t(i)-t(i-1));
end

mf_x1 = M.data(:,find(strcmp(M.colheaders,'"TMF_X1"')));
mf_x2 = M.data(:,find(strcmp(M.colheaders,'"TMF_X2"')));
mf_y1 = M.data(:,find(strcmp(M.colheaders,'"TMF_Y1"')));
mf_y2 = M.data(:,find(strcmp(M.colheaders,'"TMF_Y2"')));
mf_z1 = M.data(:,find(strcmp(M.colheaders,'"TMF_Z1"')));
mf_z2 = M.data(:,find(strcmp(M.colheaders,'"TMF_Z2"')));
mf_x1 = M.data(:,find(strcmp(M.colheaders,'TMF_X1')));
mf_x2 = M.data(:,find(strcmp(M.colheaders,'TMF_X2')));
mf_y1 = M.data(:,find(strcmp(M.colheaders,'TMF_Y1')));
mf_y2 = M.data(:,find(strcmp(M.colheaders,'TMF_Y2')));
mf_z1 = M.data(:,find(strcmp(M.colheaders,'TMF_Z1')));
mf_z2 = M.data(:,find(strcmp(M.colheaders,'TMF_Z2')));

bal = dmdt + (mf_x2-mf_x1 + mf_y2-mf_y1 + mf_z2-mf_z1);

Expand Down
12 changes: 6 additions & 6 deletions Utilities/Matlab/scripts/mass_balance_reac.m
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@

F = importdata([ddir,chid,'_devc.csv'],',',2);

mdot_out = F.data(:,find(strcmp(F.colheaders,['"',devc_id,' xmax"']))) ...
+ F.data(:,find(strcmp(F.colheaders,['"',devc_id,' xmin"']))) ...
+ F.data(:,find(strcmp(F.colheaders,['"',devc_id,' ymin"']))) ...
+ F.data(:,find(strcmp(F.colheaders,['"',devc_id,' ymax"']))) ...
+ F.data(:,find(strcmp(F.colheaders,['"',devc_id,' Burner"'])));
mdot_out = F.data(:,find(strcmp(F.colheaders,[devc_id,' xmax']))) ...
+ F.data(:,find(strcmp(F.colheaders,[devc_id,' xmin']))) ...
+ F.data(:,find(strcmp(F.colheaders,[devc_id,' ymin']))) ...
+ F.data(:,find(strcmp(F.colheaders,[devc_id,' ymax']))) ...
+ F.data(:,find(strcmp(F.colheaders,[devc_id,' Burner'])));

gen = F.data(:,find(strcmp(F.colheaders,['"',devc_id,' mdot reac"'])));
gen = F.data(:,find(strcmp(F.colheaders,[devc_id,' mdot reac'])));

bal = -dmdt + mdot_out + gen;

Expand Down
84 changes: 42 additions & 42 deletions Utilities/Matlab/scripts/soborot_mass_transport.m
Original file line number Diff line number Diff line change
Expand Up @@ -65,23 +65,23 @@
% FLUX_LIMITER='CHARM'

M = importdata([data_dir,'soborot_charm_square_wave_16_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-16"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-16'));
Y_charm_16 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_charm_square_wave_32_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-32"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-32'));
Y_charm_32 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_charm_square_wave_64_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-64"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-64'));
Y_charm_64 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_charm_square_wave_128_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-128"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-128'));
Y_charm_128 = M.data(end,col_start:col_end);

figure
Expand Down Expand Up @@ -118,28 +118,28 @@
% FLUX_LIMITER='SUPERBEE'

M = importdata([data_dir,'soborot_superbee_square_wave_16_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-16"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-16'));
Y_superbee_16 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_superbee_square_wave_32_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-32"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-32'));
Y_superbee_32 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_superbee_square_wave_64_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-64"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-64'));
Y_superbee_64 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_superbee_square_wave_128_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-128"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-128'));
Y_superbee_128 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_superbee_square_wave_128_1mesh_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-128"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-128'));
Y_superbee_128_1mesh = M.data(end,col_start:col_end);

figure
Expand Down Expand Up @@ -176,23 +176,23 @@
% FLUX_LIMITER='GODUNOV'

M = importdata([data_dir,'soborot_godunov_square_wave_16_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-16"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-16'));
Y_godunov_16 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_godunov_square_wave_32_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-32"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-32'));
Y_godunov_32 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_godunov_square_wave_64_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-64"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-64'));
Y_godunov_64 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_godunov_square_wave_128_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-128"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-128'));
Y_godunov_128 = M.data(end,col_start:col_end);

figure
Expand Down Expand Up @@ -311,23 +311,23 @@
% FLUX_LIMITER='CHARM'

M = importdata([data_dir,'soborot_charm_cos_wave_16_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-16"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-16'));
Y_charm_16 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_charm_cos_wave_32_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-32"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-32'));
Y_charm_32 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_charm_cos_wave_64_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-64"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-64'));
Y_charm_64 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_charm_cos_wave_128_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-128"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-128'));
Y_charm_128 = M.data(end,col_start:col_end);

figure
Expand Down Expand Up @@ -367,23 +367,23 @@
% FLUX_LIMITER='SUPERBEE'

M = importdata([data_dir,'soborot_superbee_cos_wave_16_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-16"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-16'));
Y_superbee_16 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_superbee_cos_wave_32_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-32"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-32'));
Y_superbee_32 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_superbee_cos_wave_64_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-64"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-64'));
Y_superbee_64 = M.data(end,col_start:col_end);

M = importdata([data_dir,'soborot_superbee_cos_wave_128_devc.csv'],',',2);
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
col_end = find(strcmp(M.colheaders,'"Y_TRACER-128"'));
col_start = find(strcmp(M.colheaders,'Y_TRACER-1'));
col_end = find(strcmp(M.colheaders,'Y_TRACER-128'));
Y_superbee_128 = M.data(end,col_start:col_end);

figure
Expand Down
Loading