Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
5b558ff
FDS Source: Allow HVAC for GEOM
drjfloyd May 31, 2025
501a73d
Merge pull request #14704 from drjfloyd/master
drjfloyd May 31, 2025
aa92241
FDS Source: Fix HVAC leakage errors from adding GEOM
drjfloyd Jun 1, 2025
3e318ae
FDS Source: Fix HVAC leakage errors from adding GEOM
drjfloyd Jun 1, 2025
9589c37
FDS Source: Fix line 8880 GEOM error from adding HVAC.
drjfloyd Jun 1, 2025
ffd1ea6
Merge pull request #14706 from drjfloyd/master
drjfloyd Jun 1, 2025
4c01878
FDS Source: Fix terrain VENT error and SMV write error for GEOM
drjfloyd Jun 2, 2025
5da739b
Merge pull request #14707 from drjfloyd/master
drjfloyd Jun 2, 2025
872bd3a
FDS Verification: Update OMP_Scaling_Tests
mcgratta Jun 2, 2025
89fd7c4
FDS Verification: Notes for MPI_Scaling
mcgratta Jun 2, 2025
85ba042
Merge pull request #14709 from mcgratta/master
mcgratta Jun 2, 2025
877a38a
FDS Source: Add localized leakage to GEOM
drjfloyd Jun 2, 2025
d6e36fa
FDS Source: set default for G%HAVE_NODE
drjfloyd Jun 2, 2025
863b436
Merge pull request #14710 from drjfloyd/master
drjfloyd Jun 2, 2025
4c2ae7c
FDS Source: implement correct vector representation of Rothermel slop…
ericvmueller Jun 2, 2025
5c00de7
FDS Validation: Add more NIST_NRC_Parallel_Panels
mcgratta Jun 2, 2025
07891bd
Merge pull request #14711 from mcgratta/master
mcgratta Jun 2, 2025
fb45668
FDS Documentation: Add UG and VerG for GEOM+HVAC
drjfloyd Jun 2, 2025
07bf174
Merge pull request #14712 from drjfloyd/master
drjfloyd Jun 2, 2025
82d6dcc
FDS Source: fix calculation of Rothermel virtual wind vector; remove …
ericvmueller Jun 2, 2025
fe49daa
FDS Source: Rename MOISTURE_FRACTION MOISTURE_CONTENT, maintain backw…
mcgratta Jun 2, 2025
d2303eb
Merge pull request #14713 from mcgratta/master
mcgratta Jun 2, 2025
909de6b
FDS Verification: Add HVAC+GEOM to fds_cases.sh. Fix figure ref.
drjfloyd Jun 3, 2025
c44fc95
FDS Verification: Add HVAC+GEOM to fds_cases.sh. Fix figure ref.
drjfloyd Jun 3, 2025
a3ef6da
FDS Validation: Add HRR metric
mcgratta Jun 3, 2025
f71b284
Merge pull request #14718 from mcgratta/master
mcgratta Jun 3, 2025
d01739c
FDS Source: fix shutdown for surface ID not defined in GEOM
rmcdermo Jun 3, 2025
cc2a765
Merge pull request #14719 from rmcdermo/master
rmcdermo Jun 3, 2025
f14bdc1
FDS Verification: update level_set_ellipse script to reflect fixes to…
ericvmueller Jun 2, 2025
4ba1683
FDS Verification: change level_set_ellipse error tolerance
ericvmueller Jun 3, 2025
01dd888
Merge pull request #14722 from ericvmueller/master
ericvmueller Jun 3, 2025
0d0351f
FDS Source: improve HRR curves for LEVEL_SET_MODE=4
ericvmueller May 21, 2025
bc530c4
Merge pull request #14723 from ericvmueller/master
ericvmueller Jun 3, 2025
26e86f4
FDS Source : Address semidefinite matrices in global pressure solver.
marcosvanella Jun 4, 2025
04b7eb3
Merge pull request #14724 from marcosvanella/master
marcosvanella Jun 4, 2025
41b6842
FDS Verification: Cleanup hvac geom plots
drjfloyd Jun 4, 2025
4d2d300
FDS Verification: Cleanup hvac geom plots
drjfloyd Jun 4, 2025
88c4791
FireX: Merge with firemodels/master
cxp484 Jun 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 10 additions & 0 deletions Manuals/Bibliography/FDS_general.bib
Original file line number Diff line number Diff line change
Expand Up @@ -3470,6 +3470,16 @@ @ARTICLE{Lautenberger:FSJ
volume = {41},
}

@TECHREPORT{Leventon:NIST_TN_2282,
author = {I. Leventon and M. Heck and K. McGrattan and M. Bundy and R. Davis},
title = {{The Impact of Material Composition on Ignitability and Fire Growth. Volume 1: Full-Scale Burning Behavior of Combustible Solids Commonly Found in Nuclear Power Plants}},
institution = {National Institute of Standards and Technology},
year = {2024},
type = {NIST Technical Note},
number = {6196-1},
address = {Gaithersburg, Maryland}
}

@BOOK{Leveque:1,
author = {Leveque, R. J.},
title = {Finite Volume Methods for Hyperbolic Problems},
Expand Down
62 changes: 53 additions & 9 deletions Manuals/FDS_User_Guide/FDS_User_Guide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3998,6 +3998,46 @@ \subsection{Specified Flow vs. Unspecified Flow}

In the second approach, one or more ducts have flows that are not specified, in this case FDS must solve for the pressures at either end of the duct to determine the flow through the duct. As one example, if a tee has three ducts and only one of the ducts has a specified flow, then FDS will use the relative pressure drops along the two other ducts to determine the flow. If no \ct{LOSS} inputs are given, then FDS may not correctly solve for the flow. As another example, losses in the HVAC network limit how quickly flow in the ducts can change over time. If there is a single duct connecting two rooms with no \ct{LOSS} inputs given, then small pressure changes can lead to large changes in duct velocity and increase the risk of a numerical instability. If you specify an HVAC network where flow is being solved for by FDS, then you must provided \ct{LOSS} inputs for each possible flow path. FDS will perform a check at startup and return an error message if it finds insufficient losses have been specified; however, this check may not discover all cases.

\subsection{HVAC and Unstructured Geometry}
\label{info:hvac_geom}

Assigning either a normal HVAC node or a localized leakage HVAC to a GEOM is done using \ct{SURF}. Using the simple example from Section~\ref{info:GEOM_Basics}, an HVAC node named \ct{'MY NODE'} is assigned to the first face by defining a \ct{SURF} with \ct{NODE_ID='MY NODE'}. No other boundary conditions should be set on the \ct{SURF} other than a color or texture. On the node \ct{HVAC} input set \ct{GEOM=T} to indicate FDS needs to look for a \ct{GEOM} and not a \ct{VENT} for the node:

\begin{lstlisting}
&SURF ID='NODE SURF',NODE_ID='MY NODE'/
&GEOM ID='My Solid'
SURF_ID='NODE SURF','INERT'
VERTS= -1.0, -1.0, 0.0,
1.0, -1.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0,
FACES= 1,3,2, 2,
1,4,3, 1,
3,4,2, 1,
2,4,1, 0 /
&HVAC ID='MY NODE',TYPE_ID='NODE',GEOM=T,..../
\end{lstlisting}

The \ct{SURF} input \ct{NODE_ID} can only be applied to complex geometry. It cannot be used for \ct{OBST} or \ct{VENT}. While more than one \ct{GEOM} and more than one face of a \ct{GEOM} can use the same node, the same node cannot be shared by both a \ct{VENT} and a \ct{GEOM}.

To apply localized leakage to \ct{GEOM}, the process is similar. \ct{NODE_ID} on \ct{SURF} is still used to link faces of \ct{GEOM} to the localized leakage. The input for the localized leakage changes slightly. The inputs \ct{VENT_ID} and \ct{VENT2_ID} use \ct{GEOM} and \ct{GEOM2} to determine if the respective \ct{ID} is attached to a \ct{VENT} or a \ct{GEOM}. For example, to attach the second vent for a localized leakage path:

\begin{lstlisting}
&SURF ID='LEAK SURF',NODE_ID='LEAK OUT'/
&GEOM ID='My Solid'
SURF_ID='LEAK SURF','INERT'
VERTS= -1.0, -1.0, 0.0,
1.0, -1.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0,
FACES= 1,3,2, 2,
1,4,3, 1,
3,4,2, 1,
2,4,1, 0 /
&HVAC ID='MY LEAK',TYPE_ID='LEAK',VENT_ID='LEAK IN',VENT2_ID='LEAK OUT',GEOM2=T,AREA=0.01/
\end{lstlisting}

Here the use of \ct{GEOM2=T} indicates that \ct{VENT2_ID} is a \ct{NODE_ID} on \ct{SURF}.

\newpage

Expand Down Expand Up @@ -7138,7 +7178,7 @@ \subsection{Solid Phase}
\label{char_reaction}
{\rm Char} + \nu_{\rm O_2, char} \, {\rm O_2} \rightarrow (1+ \nu_{\rm O_2,char} - \nu_{\rm ash}) \, {\rm CO_2} + \nu_{\rm ash} \, {\rm Ash}
\ee
$M$ is the vegetation {\em moisture content} or {\em moisture fraction} determined on a dry weight basis, specified with \ct{MOISTURE_FRACTION} on the \ct{SURF} line. $\nu_{\rm char}$ is the mass fraction of Dry Vegetation that is converted to char during pyrolysis, specified with the parameter \ct{NU_MATL} on the \ct{MATL} line that describes the Dry Vegetation. The character string \ct{MATL_ID} on the same \ct{MATL} line indicates the name of the char. $\nu_{\rm O_2,char}$ is the mass of oxygen consumed per unit mass of char oxidized. $\nu_{\rm ash}$ is the mass fraction of char that is converted to ash during char oxidation, specified by \ct{NU_MATL} on the \ct{MATL} line describing the char.
$M$ is the vegetation {\em moisture content} or {\em moisture fraction} determined on a dry weight basis, specified with \ct{MOISTURE_CONTENT} on the \ct{SURF} line. $\nu_{\rm char}$ is the mass fraction of Dry Vegetation that is converted to char during pyrolysis, specified with the parameter \ct{NU_MATL} on the \ct{MATL} line that describes the Dry Vegetation. The character string \ct{MATL_ID} on the same \ct{MATL} line indicates the name of the char. $\nu_{\rm O_2,char}$ is the mass of oxygen consumed per unit mass of char oxidized. $\nu_{\rm ash}$ is the mass fraction of char that is converted to ash during char oxidation, specified by \ct{NU_MATL} on the \ct{MATL} line describing the char.

It is assumed that the Dry Vegetation in Eq.~(\ref{pyr_reac}) is 47~\% (by mass) carbon~\cite{Ma:BGS2018} with an effective organic component C$_{3.4}$H$_{6.2}$O$_{2.5}$~\cite{Ritchie:1}. In general, it is assumed that char may be comprised of more than pure carbon and is defined as $\mathrm{C_{x'}O_{z'}A}$ in Eq.~\ref{char_chemistry}. In the specific case where char is composed of pure carbon which reacts completely with O$_2$ to form CO$_2$ then $\nu_{\rm O_2,char}=2.67$ and $\nu_{\rm ash}=0$. A full discussion of the composition of the Char and Fuel Gas is given in Sec.~\ref{veg_pyrolysis_gas_phase}.

Expand Down Expand Up @@ -7397,12 +7437,12 @@ \section{Lagrangian Particle Model}
\begin{lstlisting}
&SURF ID = 'wet vegetation'
MATL_ID = 'dry pine'
MOISTURE_FRACTION = 0.25
MOISTURE_CONTENT = 0.25
SURFACE_VOLUME_RATIO = 8000.
LENGTH = 0.1
GEOMETRY = 'CYLINDRICAL' /
\end{lstlisting}
The needle is composed of two materials---\ct{'dry pine'} and \ct{'MOISTURE'}. Following the convention used in forestry, the moisture content is expressed via the \ct{MOISTURE_FRACTION}, which is the mass of moisture divided by the mass of {\em dry} vegetation. Do not confuse this with the mass fraction of moisture, $Y_{\rm m}$, which is related to the moisture fraction, $M$, via
The needle is composed of two materials---\ct{'dry pine'} and \ct{'MOISTURE'}. Following the convention used in forestry, the moisture content is expressed via the \ct{MOISTURE_CONTENT}, which is the mass of moisture divided by the mass of {\em dry} vegetation. Do not confuse this with the mass fraction of moisture, $Y_{\rm m}$, which is related to the moisture fraction, $M$, via
\be
Y_{\rm m} = \frac{M}{1+M}
\ee
Expand All @@ -7424,7 +7464,7 @@ \section{Lagrangian Particle Model}
CONDUCTIVITY = 1.0
SPECIFIC_HEAT = 1.6 /
\end{lstlisting}
Note that if you specify a \ct{MOISTURE_FRACTION} on the \ct{SURF} line, FDS will automatically add a \ct{MATL} line for \ct{'MOISTURE'} as it is written in Fig.~\ref{vege_inputs}. FDS will also alter the \ct{DENSITY} of the dry vegetation, in this case \ct{'dry pine'}, so that the size and wood content of the particle do not change when moisture is added. The modified density of the ``dry'' vegetation, $\tilde{\rho}_{\rm d}$, is given by:
Note that if you specify a \ct{MOISTURE_CONTENT} on the \ct{SURF} line, FDS will automatically add a \ct{MATL} line for \ct{'MOISTURE'} as it is written in Fig.~\ref{vege_inputs}. FDS will also alter the \ct{DENSITY} of the dry vegetation, in this case \ct{'dry pine'}, so that the size and wood content of the particle do not change when moisture is added. The modified density of the ``dry'' vegetation, $\tilde{\rho}_{\rm d}$, is given by:
\be
\tilde{\rho}_{\rm d} = \frac{\rho_{\rm d}} {1-\frac{\rho_{\rm d}}{\rho_{\rm m}} M }
\ee
Expand All @@ -7437,7 +7477,7 @@ \section{Lagrangian Particle Model}
&INIT PART_ID='pine needles', XB=0.,1.,0.,1.,0.,1., N_PARTICLES=1000,
MASS_PER_VOLUME=0.8, DRY=T /
\end{lstlisting}
This line inserts 1000 Lagrangian particles representing pine needles randomly within a unit cube. The \ct{MASS_PER_VOLUME} is the mass (kg) of solid needles divided by the volume (m$^3$) they occupy, sometimes called the ``bulk density.'' The parameter \ct{DRY=T} means that if you have specified a \ct{MOISTURE_FRACTION} on the \ct{SURF} line that describes the vegetation, then the actual mass per volume of wet vegetation is
This line inserts 1000 Lagrangian particles representing pine needles randomly within a unit cube. The \ct{MASS_PER_VOLUME} is the mass (kg) of solid needles divided by the volume (m$^3$) they occupy, sometimes called the ``bulk density.'' The parameter \ct{DRY=T} means that if you have specified a \ct{MOISTURE_CONTENT} on the \ct{SURF} line that describes the vegetation, then the actual mass per volume of wet vegetation is
\be
m_{\rm w}''' = m_{\rm d}''' \, (1+M)
\ee
Expand Down Expand Up @@ -7546,12 +7586,12 @@ \section{Boundary Fuel Model}
&SURF ID = 'Ground Vegetation'
MATL_ID(1,1) = 'Dry Vegetation'
MATL_ID(2,1) = 'Soil'
MOISTURE_FRACTION(1) = 0.218
MOISTURE_CONTENT(1) = 0.218
SURFACE_VOLUME_RATIO(1) = 3092.
MASS_PER_VOLUME(1) = 5.
THICKNESS(1:2) = 0.076,0.1 /
\end{lstlisting}
The presence of the parameter \ct{MASS_PER_VOLUME} automatically triggers the Boundary Fuel Model. Note that its argument of 1 refers to the first layer; the second layer being \ct{Soil}. If you specify \ct{MOISTURE_FRACTION}, FDS will automatically add a \ct{MATL} line for \ct{'MOISTURE'}.
The presence of the parameter \ct{MASS_PER_VOLUME} automatically triggers the Boundary Fuel Model. Note that its argument of 1 refers to the first layer; the second layer being \ct{Soil}. If you specify \ct{MOISTURE_CONTENT}, FDS will automatically add a \ct{MATL} line for \ct{'MOISTURE'}.

The drag exerted on the wind flowing through the vegetation is imposed as a force term in the gas phase grid cell adjacent to the boundary:
\be
Expand Down Expand Up @@ -11841,6 +11881,7 @@ \chapter{Alphabetical List of Input Parameters}
% ignorenamelistkw: /PART/DEBUG, /PART/EMBER_SNAG_FACTOR
% ignorenamelistkw: /REAC/C, /REAC/H, /REAC/O, /REAC/N, /REAC/FORMULA,
% ignorenamelistkw: /SLCF/DEBUG, /SLCF/RLE_MIN, /SLCF/RLE_MAX, /SLCF/SLICETYPE
% ignorenamelistkw: /SURF/MOISTURE_FRACTION
% ignorenamelistkw: /TIME/RAMP_DT

% ignore keywords that appear on any namelist
Expand Down Expand Up @@ -12418,6 +12459,8 @@ \section{\texorpdfstring{{\tt HVAC}}{HVAC} (HVAC System Definition)}
\ct{FAN_ID} & Character & Section~\ref{info:HVACduct} & & \\ \hline
\ct{FILTER_ID} & Character & Section~\ref{info:HVACnode} & & \\ \hline
\ct{FIXED_Q} & Real & Section~\ref{info:HVACaircoil} & kW & \\ \hline
\ct{GEOM} & Logical & Section~\ref{info:hvac_geom} & & \ct{F} \\ \hline
\ct{GEOM2} & Logical & Section~\ref{info:hvac_geom} & & \ct{F} \\ \hline
\ct{ID} & Character & Section~\ref{info:HVAC} & & \\ \hline
\ct{LEAK_ENTHALPY} & Logical & Section~\ref{info:local_leakage} & & \ct{F} \\ \hline
\ct{LEAK_PRESSURE_EXPONENT}& Real & Section~\ref{info:Leaks} & & 0.5 \\ \hline
Expand Down Expand Up @@ -13545,12 +13588,13 @@ \section{\texorpdfstring{{\tt SURF}}{SURF} (Surface Properties)}
\ct{MINIMUM_LAYER_THICKNESS} & Real & Section~\ref{info:solid_phase_stability} & m & 1.E-4 \\ \hline
\ct{MINIMUM_SCALING_HEAT_FLUX} & Real & Section~\ref{info:scaled_burning} & \si{kW/m^2} & 0 \\ \hline
\ct{MLRPUA} & Real & Section~\ref{info:gas_burner} & \si{kg/(m^2.s)} & \\ \hline
\ct{MOISTURE_FRACTION(:)} & Real Array & Section~\ref{info:vegetation} & & 0. \\ \hline
\ct{MOISTURE_CONTENT(:)} & Real Array & Section~\ref{info:vegetation} & & 0. \\ \hline
\ct{N_LAYER_CELLS_MAX(:)} & Integer Array & Section~\ref{info:solid_phase_stability} & & 1000 \\ \hline
\ct{NEAR_WALL_EDDY_VISCOSITY} & Real & Section~\ref{info:LES} & m$^2$/s & \\ \hline
\ct{NEAR_WALL_TURBULENCE_MODEL} & Character & Section~\ref{info:LES} & & \\ \hline
\ct{NET_HEAT_FLUX} & Real & Section~\ref{info:convection} & \unit{kW/m^2} & \\ \hline
\ct{NO_SLIP} & Logical & Section~\ref{info:WALL_MODEL} & & \ct{F} \\ \hline
\ct{NODE_ID} & Character & Section~\ref{info:hvac_geom} & & \\ \hline
\ct{NPPC} & Integer & Section~\ref{info:particle_flux} & & 1 \\ \hline
\ct{NUSSELT_C0} & Real & Section~\ref{info:convection} & & \\ \hline
\ct{NUSSELT_C1} & Real & Section~\ref{info:convection} & & \\ \hline
Expand Down Expand Up @@ -14044,7 +14088,7 @@ \chapter{Error Codes}
300 \> \ct{N_LAYER_CELLS_MAX should be at least ... for ...} \> Section~\ref{info:solid_phase_stability} \\
301 \> \ct{SURF line must have an ID.} \> Section~\ref{info:SURF} \\
302 \> \ct{SURF ID ... is used more than once.} \> Section~\ref{info:SURF} \\
303 \> \ct{MOISTURE_FRACTION on SURF ... exceeds theoretical limit.} \> Section~\ref{info:vegetation} \\
303 \> \ct{MOISTURE_CONTENT on SURF ... exceeds theoretical limit.} \> Section~\ref{info:vegetation} \\
304 \> \ct{SURF ... One layer only for TGA_ANALYSIS=T.} \> Section~\ref{info:TGA_DSC_MCC} \\
305 \> \ct{SURF ... indicates a level set simulation ...} \> Section~\ref{info:level_set} \\
306 \> \ct{SURF ... cannot have a specified flux and a MATL_ID.} \> Section~\ref{info:MASS_FLUX} \\
Expand Down
8 changes: 5 additions & 3 deletions Manuals/FDS_Validation_Guide/Burning_Rate_Chapter.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1364,10 +1364,12 @@ \subsection{NIST/NRC Parallel Panel Experiments}
The figures below contain predictions of the burning rate of various plastics in a parallel panel apparatus described in Sec.~\ref{NIST_NRC_Parallel_Panels_Description}.

\begin{figure}[!ht]
\centering
\includegraphics[height=2.15in]{SCRIPT_FIGURES/NIST_NRC_Parallel_Panels/PMMA_60_kW} \\
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}
\includegraphics[height=2.15in]{SCRIPT_FIGURES/NIST_NRC_Parallel_Panels/PMMA_60_kW} &
\includegraphics[height=2.15in]{SCRIPT_FIGURES/NIST_NRC_Parallel_Panels/PBT_60_kW} \\
\includegraphics[height=2.15in]{SCRIPT_FIGURES/NIST_NRC_Parallel_Panels/PVC_60_kW}
\includegraphics[height=2.15in]{SCRIPT_FIGURES/NIST_NRC_Parallel_Panels/PVC_60_kW} &
\includegraphics[height=2.15in]{SCRIPT_FIGURES/NIST_NRC_Parallel_Panels/WRC_60_kW}
\end{tabular*}
\caption[NIST/NRC Parallel Panels experiments]{NIST/NRC Parallel Panels experiments.}
\label{NIST_NRC_PP_HRR}
\end{figure}
Expand Down
2 changes: 1 addition & 1 deletion Manuals/FDS_Validation_Guide/Experiment_Chapter.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2037,7 +2037,7 @@ \subsubsection{Modeling Notes}
\section{NIST/NRC Parallel Panel Experiments}
\label{NIST_NRC_Parallel_Panels_Description}

As part of a Nuclear Regulatory Commission (NRC) research project to assess fire behavior in electrical enclosures, rate of spread and heat release rate measurements were made on various plastics lining a parallel panel apparatus. The panels were 0.6~m (2~ft) wide, 2.4~m (8~ft) tall, and separated by 0.3~m (1~ft). A 60~kW propane sand burner was positioned at the base of the two panels. Plastics tested to date include PMMA, PVC, and PBT, cut into 6.4~mm (0.25~in) thick panels. A sketch of the apparatus, originally developed by Factory Mutual, is shown in Fig.~\ref{Parallel_Panel_Sketch}.
As part of a Nuclear Regulatory Commission (NRC) research project to assess fire behavior in electrical enclosures, rate of spread and heat release rate measurements were made on various materials lining a parallel panel apparatus~\cite{Leventon:NIST_TN_2282}. The panels were 0.6~m (2~ft) wide, 2.4~m (8~ft) tall, and separated by 0.3~m (1~ft). A 60~kW propane sand burner was positioned at the base of the two panels. A sketch of the apparatus, originally developed by Factory Mutual, is shown in Fig.~\ref{Parallel_Panel_Sketch}.

The Parallel Panel experiment involving black PMMA is part of the suite of cases contributed to the MaCFP (Measurements and Computation of Fire Phenomena) working group of the IAFSS. Its properties are listed in Section~\ref{NIST_Polymers_Properties}.

Expand Down
Loading
Loading