Skip to content

Commit 5235ba2

Browse files
committed
FDS Source: Add STA to TGA_ANALYSIS
1 parent a861743 commit 5235ba2

File tree

6 files changed

+819
-531
lines changed

6 files changed

+819
-531
lines changed

Manuals/FDS_User_Guide/FDS_User_Guide.tex

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3371,10 +3371,12 @@ \subsection{Simulating Bench-scale Measurements like the TGA, DSC, and MCC}
33713371
Note: If applying \ct{TGA_ANALYSIS} to a case where the \ct{SURF} is associated with a \ct{PART} class yet to be inserted into the calculation, FDS may not find the \ct{SURF} and hence throw an error. In this case, create a simple case with a single particle that is inserted at the start.
33723372
\end{warning}
33733373

3374-
The result of the \ct{TGA_ANALYSIS} is a single comma-delimited file called \ct{CHID_tga.csv}. The first and second columns of the file consist of the time and sample temperature. The third column is the normalized sample mass; that is, the sample mass divided by its initial mass. The following columns list the mass fractions of the individual material components. The next column is the total mass loss rate, in units of s$^{-1}$, followed by the mass loss rates of the individual material components. The next column is the heat release rate per unit mass of the sample in units of W/g, typical of an MCC measurement. The final column is the rate of heat absorbed by the sample normalized by its {\it original} mass, also in units of W/g, typical of a DSC measurement.
3374+
The result of the \ct{TGA_ANALYSIS} is a single comma-delimited file called \ct{CHID_tga.csv}. The first and second columns of the file consist of the time and sample temperature. The third column is the normalized sample mass; that is, the sample mass divided by its initial mass. The following columns list the mass fractions of the individual material components. The next column is the total mass loss rate, in units of s$^{-1}$, followed by the mass loss rates of the individual material components. The next column is the heat release rate per unit mass of the sample in units of W/g, typical of an MCC measurement. The final two columns are the rate of heat absorbed by the sample normalized by its {\it original} mass and by its {\it instantaneous} mass, respectively. The former is labelled \ct{DSC} and the latter \ct{STA}, both in units of W/g. \ct{STA} means Simultaneous Thermal Analysis, where a TGA and DSC measurement are made simultaneously, in which case the instantaneous mass of the sample is available.
33753375

33763376
The timestep used in the TGA analysis can be controlled with \ct{TGA_DT} on the \ct{SURF} line. The output spacing for temperature can be set with \ct{TGA_DUMP} on the \ct{SURF} line.
33773377

3378+
The \ct{TGA}, \ct{MCC} or \ct{DSC/STA} output can be multiplied by \ct{X_CONVERSION_FACTOR}, where \ct{X} is \ct{TGA}, \ct{MCC}, or \ct{DSC}, respectively. For example, the \ct{DSC} output assumes that an enthermic reaction is represented by a positive peak, and an exothermic reaction by a negative peak. To flip this around, set \ct{DSC_CONVERSION_FACTOR=-1}.
3379+
33783380
Details of the output quantities are discussed in Sec.~\ref{info:material_components}. Further details on these measurement techniques and how to interpret them are found in the FDS Verification Guide~\cite{FDS_Verification_Guide}.
33793381

33803382
\subsubsection{Example}
@@ -3383,13 +3385,16 @@ \subsubsection{Example}
33833385

33843386
The upper two plots in Fig.~\ref{tga_results} show the results of the TGA analysis; that is, the decrease in mass as a function of sample temperature. The left plot shows the total sample mass and the right shows the individual components. Below these are two plots that show the mass loss rates of the total sample and its components. These plots are simply the (negative) values of the first derivative of the upper plots.
33853387

3386-
The lower left plot in Fig.~\ref{tga_analysis} shows the results of the MCC analysis; that is, the gas phase combustion heat release rate per unit mass of the original sample. Note that this MCC plot does not include evidence of the evaporation of water because water vapor does not combust. The integral (with respect to time) under the MCC curve yields $Q=12\,680$~J/g. The heat of combustion of the ``cellulose,'' which is the assumed gas phase fuel resulting from the pyrolysis of dry wood and char, is $h_{\rm c}=14\,988$~J/g. The dry wood and char constitute $Y=0.846$ of the original sample, thus $h_{\rm c} \, Y \approx Q$.
3388+
The lower left plot in Fig.~\ref{tga_analysis} shows the results of the MCC analysis; that is, the gas phase combustion heat release rate per unit mass of the original sample. Note that this MCC plot does not include evidence of the evaporation of water because water vapor does not combust. The integral (with respect to time) under the MCC curve yields $Q=12\,680$~J/g. The heat of combustion of the ``cellulose,'' which is the assumed gas phase fuel resulting from the pyrolysis of dry wood and char, is $h_{\rm c}=14\,988$~J/g. The dry wood and char constitute $Y=0.846$ of the original sample, thus $h_{\rm c} \, Y \approx Q$.
33873389

3388-
The lower right plot Fig.~\ref{tga_analysis} shows the results of the DSC analysis. The curve represents the rate of heat absorbed by the sample. The three peaks represent the endothermic reactions where heat from the hot gas is used to evaporate water or pyrolyze the wood and char. The plateaus between the reaction peaks represent the heating of the solid only. For example, at a temperature of 200~$^\circ$C, the value is $\dot{q}(200)=0.075$~W/g which corresponds to the specific heat of the dry wood which has not yet undergone its conversion to char:
3390+
The lower right plot Fig.~\ref{tga_analysis} shows the results of the DSC/STA analysis. The black curve (DSC) represents the rate of heat absorbed per unit mass of the original sample. The red curve represents the rate of heat absorbed per unit mass of the pyrolyzing sample. The three peaks represent the endothermic reactions where heat from the hot gas is used to evaporate water or pyrolyze the wood and char. The plateaus between the reaction peaks represent the heating of the solid only. For example, at a temperature of 500~$^\circ$C, only ash remains and the value of the DSC curve is $\dot{q}_{\rm DSC}(500)\approx0.0045$~W/g from which the value of the specific heat can be computed:
3391+
\be
3392+
c_p = \frac{\dot{q}_{\rm DSC}(500)}{Y(500) \, \beta} \approx 1 \; \hbox{kJ/(kg K)}
3393+
\ee
3394+
The term $Y(500)\approx0.054$ in the denominator is the ratio of mass of the ash at 500~$^\circ$C to the mass of the original wet wood. For the STA curve, the specific heat is obtained simply by dividing the STA value $\dot{q}_{\rm STA}(500)\approx0.0834$~W/g by the heating rate, $\beta$.
33893395
\be
3390-
c_p = \frac{\dot{q}(200)}{Y(200) \, \beta} = 1 \; \hbox{kJ/(kg K)}
3396+
c_p = \frac{\dot{q}_{\rm STA}(500)}{\beta} \approx 1 \; \hbox{kJ/(kg K)}
33913397
\ee
3392-
The term $Y(200)=0.9$ in the denominator is the ratio of mass of the sample at 200~$^\circ$C to the original mass.
33933398

33943399

33953400

@@ -13398,6 +13403,7 @@ \section{\texorpdfstring{{\tt SURF}}{SURF} (Surface Properties)}
1339813403
\ct{DEFAULT} & Logical & Section~\ref{info:SURF} & & \ct{F} \\ \hline
1339913404
\ct{DELTA_TMP_MAX} & Real & Section~\ref{info:solid_phase_stability} & $^\circ$C & 10 \\ \hline
1340013405
\ct{DRAG_COEFFICIENT} & Real & Section~\ref{info:boundary_fuel_model} & & 2.8 \\ \hline
13406+
\ct{DSC_CONVERSION_FACTOR} & Real & Section~\ref{info:TGA_DSC_MCC} & & 1 \\ \hline
1340113407
\ct{DT_INSERT} & Real & Section~\ref{info:particle_flux} & s & 0.01 \\ \hline
1340213408
\ct{E_COEFFICIENT} & Real & Section~\ref{info:suppression} & \si{m^2/(kg.s)} & \\ \hline
1340313409
\ct{EMBER_GENERATION_HEIGHT(2)} & Real & Section~\ref{info:ember_generation_surf} & m & \\ \hline
@@ -13438,6 +13444,7 @@ \section{\texorpdfstring{{\tt SURF}}{SURF} (Surface Properties)}
1343813444
\ct{MATL_ID(:,:)} & Char.~Array & Section~\ref{info:solid_pyrolysis} & & \\ \hline
1343913445
\ct{MATL_MASS_FRACTION(:,:)} & Real Array & Section~\ref{info:solid_pyrolysis} & & \\ \hline
1344013446
\ct{MAXIMUM_SCALING_HEAT_FLUX} & Real & Section~\ref{info:scaled_burning} & \si{kW/m^2} & \\ \hline
13447+
\ct{MCC_CONVERSION_FACTOR} & Real & Section~\ref{info:TGA_DSC_MCC} & & 1 \\ \hline
1344113448
\ct{MINIMUM_BURNOUT_TIME} & Real & Section~\ref{veg_burnout_time} & s & 1000000 \\ \hline
1344213449
\ct{MINIMUM_LAYER_THICKNESS} & Real & Section~\ref{info:solid_phase_stability} & m & 1.E-4 \\ \hline
1344313450
\ct{MINIMUM_SCALING_HEAT_FLUX} & Real & Section~\ref{info:scaled_burning} & \si{kW/m^2} & 0 \\ \hline
@@ -13497,6 +13504,7 @@ \section{\texorpdfstring{{\tt SURF}}{SURF} (Surface Properties)}
1349713504
\ct{TEXTURE_MAP} & Character & Section~\ref{info:texture_map} & & \\ \hline
1349813505
\ct{TEXTURE_WIDTH} & Real & Section~\ref{info:texture_map} & m & 1. \\ \hline
1349913506
\ct{TGA_ANALYSIS} & Logical & Section~\ref{info:TGA_DSC_MCC} & & \ct{F} \\ \hline
13507+
\ct{TGA_CONVERSION_FACTOR} & Real & Section~\ref{info:TGA_DSC_MCC} & & 1 \\ \hline
1350013508
\ct{TGA_DT} & Real & Section~\ref{info:TGA_DSC_MCC} & s & 0.01 \\ \hline
1350113509
\ct{TGA_DUMP} & Real & Section~\ref{info:TGA_DSC_MCC} & K & 1 \\ \hline
1350213510
\ct{TGA_FINAL_TEMPERATURE} & Real & Section~\ref{info:TGA_DSC_MCC} & $^\circ$C & 800. \\ \hline

Source/cons.f90

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -747,6 +747,9 @@ MODULE GLOBAL_CONSTANTS
747747
REAL(EB) :: TGA_DUMP=1._EB !< Temperature output interval (K), starting at TMPA, to use for special TGA calculation
748748
REAL(EB) :: TGA_HEATING_RATE=5._EB !< Heat rate (K/min) to use for special TGA calculation
749749
REAL(EB) :: TGA_FINAL_TEMPERATURE=800._EB !< Final Temperature (C) to use for special TGA calculation
750+
REAL(EB) :: TGA_CONVERSION_FACTOR=1._EB !< Conversion factor for TGA output
751+
REAL(EB) :: MCC_CONVERSION_FACTOR=1._EB !< Conversion factor for MCC output
752+
REAL(EB) :: DSC_CONVERSION_FACTOR=1._EB !< Conversion factor for DSC output
750753

751754
LOGICAL :: IBLANK_SMV=.TRUE. !< Parameter passed to smokeview (in .smv file) to control generation of blockages
752755

Source/read.f90

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7736,7 +7736,7 @@ SUBROUTINE READ_SURF(QUICK_READ)
77367736
NAMELIST /SURF/ ADIABATIC,ALLOW_SURFACE_PARTICLES,ALLOW_UNDERSIDE_PARTICLES,AREA_MULTIPLIER,BACKING,BLOWING,&
77377737
BURN_AWAY,BURN_DURATION,CELL_SIZE,CELL_SIZE_FACTOR,COLOR,&
77387738
CONVECTION_LENGTH_SCALE,CONVECTIVE_HEAT_FLUX,CONVERT_VOLUME_TO_MASS,DEFAULT,DELTA_TMP_MAX,DRAG_COEFFICIENT,&
7739-
DT_INSERT,E_COEFFICIENT,&
7739+
DSC_CONVERSION_FACTOR,DT_INSERT,E_COEFFICIENT,&
77407740
EMBER_GENERATION_HEIGHT,EMBER_IGNITION_POWER_MEAN,EMBER_IGNITION_POWER_SIGMA,EMBER_TRACKING_RATIO,EMBER_YIELD,&
77417741
EMISSIVITY,EMISSIVITY_BACK,EXTERNAL_FLUX,EXTINCTION_TEMPERATURE,&
77427742
FREE_SLIP,INERT_Q_REF,FYI,GEOMETRY,HEAT_OF_VAPORIZATION,HEAT_TRANSFER_COEFFICIENT,HEAT_TRANSFER_COEFFICIENT_BACK,&
@@ -7745,7 +7745,8 @@ SUBROUTINE READ_SURF(QUICK_READ)
77457745
INNER_RADIUS,INTERNAL_HEAT_SOURCE,LAYER_DIVIDE,&
77467746
LEAK_PATH,LEAK_PATH_ID,LENGTH,MASS_FLUX,MASS_FLUX_TOTAL,MASS_FLUX_VAR,MASS_FRACTION,&
77477747
MASS_TRANSFER_COEFFICIENT, &
7748-
MATL_ID,MATL_MASS_FRACTION,MASS_PER_VOLUME,MINIMUM_BURNOUT_TIME,MINIMUM_LAYER_THICKNESS,MLRPUA,MOISTURE_FRACTION,&
7748+
MATL_ID,MATL_MASS_FRACTION,MASS_PER_VOLUME,MCC_CONVERSION_FACTOR,MINIMUM_BURNOUT_TIME,&
7749+
MINIMUM_LAYER_THICKNESS,MLRPUA,MOISTURE_FRACTION,&
77497750
N_LAYER_CELLS_MAX,NEAR_WALL_EDDY_VISCOSITY,NEAR_WALL_TURBULENCE_MODEL,NET_HEAT_FLUX,&
77507751
NO_SLIP,NPPC,NUSSELT_C0,NUSSELT_C1,NUSSELT_C2,NUSSELT_M,&
77517752
PARTICLE_EXTRACTION_VELOCITY,PARTICLE_MASS_FLUX,PARTICLE_SURFACE_DENSITY,PART_ID,&
@@ -7757,8 +7758,8 @@ SUBROUTINE READ_SURF(QUICK_READ)
77577758
RGB,ROUGHNESS,SHAPE_FACTOR,SPEC_ID,&
77587759
SPREAD_RATE,STRETCH_FACTOR,SURFACE_VOLUME_RATIO,&
77597760
TAU_EF,TAU_MF,TAU_PART,TAU_Q,TAU_T,TAU_V,TEXTURE_HEIGHT,TEXTURE_MAP,TEXTURE_WIDTH,&
7760-
TGA_ANALYSIS,TGA_DT,TGA_DUMP,TGA_FINAL_TEMPERATURE,TGA_HEATING_RATE,THICKNESS,TIME_STEP_FACTOR,&
7761-
TMP_BACK,TMP_FRONT,TMP_FRONT_INITIAL,TMP_GAS_BACK,TMP_GAS_FRONT,TMP_INNER,TRANSPARENCY,&
7761+
TGA_ANALYSIS,TGA_CONVERSION_FACTOR,TGA_DT,TGA_DUMP,TGA_FINAL_TEMPERATURE,TGA_HEATING_RATE,THICKNESS,&
7762+
TIME_STEP_FACTOR,TMP_BACK,TMP_FRONT,TMP_FRONT_INITIAL,TMP_GAS_BACK,TMP_GAS_FRONT,TMP_INNER,TRANSPARENCY,&
77627763
VEG_LSET_BETA,VEG_LSET_CHAR_FRACTION,VEG_LSET_FIREBASE_TIME,VEG_LSET_FUEL_INDEX,VEG_LSET_HT,VEG_LSET_IGNITE_TIME,&
77637764
VEG_LSET_M1,VEG_LSET_M10,VEG_LSET_M100,VEG_LSET_MLW,VEG_LSET_MLH,VEG_LSET_QCON,&
77647765
VEG_LSET_ROS_00,VEG_LSET_ROS_BACK,VEG_LSET_ROS_FLANK,VEG_LSET_ROS_HEAD,VEG_LSET_ROS_FIXED,VEG_LSET_SIGMA,&

Source/wall.f90

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3840,15 +3840,15 @@ SUBROUTINE TGA_ANALYSIS(NM)
38403840

38413841
OPEN (LU_TGA,FILE=FN_TGA,FORM='FORMATTED',STATUS='REPLACE')
38423842
WRITE(TCFORM,'(A,I3.3,A,I3.3,A)') "(A,",SF%N_MATL+1,"(A,',')",SF%N_MATL+1,"(A,','),A)"
3843-
WRITE(LU_TGA,TCFORM) 's,C,',('g/g',N=1,SF%N_MATL+1),('1/s',N=1,SF%N_MATL+1),'W/g,W/g'
3843+
WRITE(LU_TGA,TCFORM) 's,C,',('g/g',N=1,SF%N_MATL+1),('1/s',N=1,SF%N_MATL+1),'W/g,W/g,W/g'
38443844
WRITE(LU_TGA,TCFORM) 'Time,Temp,','Total Mass',(TRIM(MATERIAL(ONE_D%MATL_INDEX(N))%ID)//' Mass',N=1,SF%N_MATL),'Total MLR',&
3845-
(TRIM(MATERIAL(ONE_D%MATL_INDEX(N))%ID)//' MLR',N=1,SF%N_MATL),'MCC,DSC'
3845+
(TRIM(MATERIAL(ONE_D%MATL_INDEX(N))%ID)//' MLR',N=1,SF%N_MATL),'MCC,DSC,STA'
38463846

38473847
SURF_DEN_0 = SF%SURFACE_DENSITY
3848-
WRITE(TCFORM,'(A,I3.3,5A)') "(",2*SF%N_MATL+5,"(",TRIM(FMT_R),",','),",TRIM(FMT_R),")"
3848+
WRITE(TCFORM,'(A,I3.3,5A)') "(",2*SF%N_MATL+6,"(",TRIM(FMT_R),",','),",TRIM(FMT_R),")"
38493849
TMP_DUMP = TMPA + TGA_DUMP
3850-
DO I=1,N_TGA
3851-
IF (ONE_D%LAYER_THICKNESS(1)<TWO_EPSILON_EB) EXIT
3850+
TMP_LOOP: DO I=1,N_TGA
3851+
IF (ONE_D%LAYER_THICKNESS(1)<TWO_EPSILON_EB) EXIT TMP_LOOP
38523852
T_TGA = REAL(I,EB)*TGA_DT
38533853
B1%TMP_G = TMPA + TGA_HEATING_RATE*T_TGA
38543854
IF (TGA_WALL_INDEX>0) THEN
@@ -3878,12 +3878,15 @@ SUBROUTINE TGA_ANALYSIS(NM)
38783878
ELSE
38793879
HRR = 0._EB
38803880
ENDIF
3881-
WRITE(LU_TGA,TCFORM) REAL(T_TGA,FB), REAL(B1%TMP_G-TMPM,FB), (REAL(SURF_DEN(N)/SURF_DEN_0,FB),N=0,SF%N_MATL), &
3882-
REAL(-SUM(ONE_D%M_DOT_S_PP(1:SF%N_MATL))/SURF_DEN_0,FB), &
3883-
(REAL(-ONE_D%M_DOT_S_PP(N)/SURF_DEN_0,FB),N=1,SF%N_MATL), &
3884-
REAL(HRR,FB), REAL(B1%HEAT_TRANS_COEF*(B1%TMP_G-B1%TMP_F)*0.001_EB/SURF_DEN_0,FB)
3881+
WRITE(LU_TGA,TCFORM) REAL(T_TGA,FB), REAL(B1%TMP_G-TMPM,FB), &
3882+
(REAL(TGA_CONVERSION_FACTOR*SURF_DEN(N)/SURF_DEN_0,FB),N=0,SF%N_MATL), &
3883+
REAL(-TGA_CONVERSION_FACTOR*SUM(ONE_D%M_DOT_S_PP(1:SF%N_MATL))/SURF_DEN_0,FB), &
3884+
(REAL(-TGA_CONVERSION_FACTOR*ONE_D%M_DOT_S_PP(N)/SURF_DEN_0,FB),N=1,SF%N_MATL), &
3885+
REAL(MCC_CONVERSION_FACTOR*HRR,FB), &
3886+
REAL(DSC_CONVERSION_FACTOR*B1%HEAT_TRANS_COEF*(B1%TMP_G-B1%TMP_F)*0.001_EB/SURF_DEN_0,FB), &
3887+
REAL(DSC_CONVERSION_FACTOR*B1%HEAT_TRANS_COEF*(B1%TMP_G-B1%TMP_F)*0.001_EB/SURF_DEN(0),FB)
38853888
ENDIF
3886-
ENDDO
3889+
ENDDO TMP_LOOP
38873890

38883891
CLOSE(LU_TGA)
38893892
DEALLOCATE(SURF_DEN)

0 commit comments

Comments
 (0)