Appendix: Transport Properties
Transport properties are required for viscous flow simulations. These include both the laminar transport properties due purely to molecular motion as well as the turbulent transport properties due to the turbulent motions of a flow.
The run control file variables for specifying transport properties are the
transport_model and the diffusion_model variables.
Where The Gas Transport Properties Come From
For multi-species gas simulations, Stream uses a two-stage model:
Pure-species property models: \(\mu_i(T)\), \(k_i(T)\), and binary diffusion terms (\(D_{ij}\) or \(p_{ref}D_{ij}\)) are supplied from a database file format.
Mixture rules: Stream combines these pure-species values at runtime using mixture rules to obtain mixture viscosity, conductivity, and species diffusion.
At a high level:
transport_model: chemkin+diffusion_model: chemkinuses a single.tranfile containing polynomial coefficient blocks.transport_model: transportDB+diffusion_model: transportDBuses per-species table-fit files intransport/:*_vis.dat,*_con.dat,*_dif.dat.
Conceptually, both paths provide the same physics categories (pure-species transport + mixture rules), but in different file layouts.
The mixture-rule stage can be viewed as:
viscosity: modified Wilke-style mixing from pure-species \(\mu_i(T)\) and composition
conductivity: average of arithmetic and harmonic composition-weighted means of \(k_i(T)\)
diffusion: mixture-averaged \(D_i\) from pairwise coefficients \(D_{ij}(T)\)
In compact form, Stream uses the following patterns for gas mixtures:
where \(x_i\) are mole fractions and \(W_i\) are molecular weights.
What Is In A .tran File?
The CHEMKIN-format transport file used by Stream stores:
species_countand species name listnumber_order(polynomial order)patmos(reference pressure)molecular weights
polynomial coefficient blocks for: - conductivity - viscosity - binary diffusion
The coefficients are evaluated as polynomials in \(\ln(T)\) for the logarithm of each property. In other words, each property is represented as:
where \(\phi\) is a transport property for a given species (or species pair for diffusion). For CHEMKIN transport usage in Stream, these fits are interpreted in CHEMKIN-style units and converted internally to solver units.
What Is In *_vis.dat, *_con.dat, And *_dif.dat?
The transportDB format uses tabulated cubic-fit files:
*_vis.dat: one file per species for pure-species viscosity \(\mu_i(T)\).*_con.dat: one file per species for pure-species conductivity \(k_i(T)\).*_dif.dat: one file per species (for species index \(k>0\)) containing diffusion fits against all species in the model.
Each individual fit function is stored as:
first line:
T0 dT nIntervalsnext
nIntervals+1values: nodal values at uniform temperature intervalsnext
nIntervalspairs: cubic segment coefficients
So *_vis.dat and *_con.dat each contain one fit function, while *_dif.dat contains a header
(species_count + species names) followed by multiple fit functions (one for each species pair entry needed by the reader).
These transportDB files are consumed directly as tabulated SI-property fits by the transport database model.
How Do I Make These Files For A Simulation?
Use one of the following workflows.
CHEMKIN transport workflow (single
.tranfile): Required inputs:chem.inp,therm.dat,tran.dat. Command:chemkin-converter --casename case --chemkin. Output:case.mdlandcase.tran. Use with:transport_model: chemkinanddiffusion_model: chemkin.transportDBtable workflow from CHEMKIN conversion: Required inputs: same as above. Command:chemkin-converter --casename case --chemkin --transport_tables. Output:transport/*_vis.datandtransport/*_con.dat. Note: this path does not automatically create*_dif.dat.transportDBtable workflow directly from Cantera YAML: Required input: Cantera mechanism (for examplechem.yaml). Command:cantera_to_transport chem.yaml. Output: completetransport/folder including*_vis.dat,*_con.dat, and*_dif.dat.Species-list only workflow (no reaction mechanism file): Required inputs:
species_subset.txtand a source Stream-format.tranfile (for example$CHEMISTRY_DATABASE/data_base/chemkin/air_5s17r.tran). Optional input: source.mdlfile to inherit species definitions. Command:chemkin-converter --casename case --species_only --species_subset species_subset.txt --source_tran source.tran [--source_mdl source.mdl]. Output:case.mdlwith empty reactions and a subsetcase.tran.
For creating/maintaining the chemistry model file (.mdl), see
Appendix: Thermodynamic Data.
A high-level summary of the available options for the transport_model variable is given below:
Option |
Description |
|---|---|
|
no transport model applied. |
|
Sutherland’s law (with default properties for air). |
|
A Power law dependence on temperature. |
|
Constant viscosity and thermal conductivity. |
|
Use a CHEMKIN formatted transport file ( |
|
Use a set of data files that have curve fits of viscosity, thermal conductivity, and diffusion coefficients ( |
|
Species p,T database using Wilke’s mixture rule. |
|
Use a database of files that contain a tabular fit of transport data from the |
A high-level summary of the available options for the diffusion_model variable is given below:
Option |
Description |
|---|---|
|
Constant diffusivity. |
|
Use a CHEMKIN formatted transport file ( |
|
Diffusivity based on viscosity and a specified Schmidt number. |
|
Use the unity Lewis number assumption for computing the diffusion coefficient. |
|
Use a database of files that contain a tabular fit of transport data from the |
|
Selects the diffusion model based on the transport model: |
The following sections go into more detail on the available options for the different specification types of transport properties.
Laminar Transport Properties
Laminar transport properties include the laminar viscosity, the thermal
conductivity, and the mass diffusivity for each of the species for
multi-species simulations. The run control file variable transport_model
is used to specify the form of transport properties desired. One must
always include transport_model in the run control file because there is
no default value. Based on the value of this variable, other auxiliary
variables may also be used. Several methods of specification are
possible, as detailed in the following sub-sections.
Inviscid Flow
Inviscid flow is activated by setting the value of transport_model to
none.
transport_model: none
No other transport property variables are required with this specification.
Constant Properties
Constant transport properties for viscous flow simulations can be specified in the run control file.
transport_model: none
mu: 1.0e-04
kcond: 0.1
The variable mu is used to set the laminar dynamic viscosity value
(units \(\frac{N \cdot s}{m^{2}}\)). This variable has no default
value and must be included in the run control file. The variable kcond
is required only for compressible flows and is used to set the thermal
conductivity value (units \(\frac{W}{m \cdot K}\)). This is also a
required variable as there is no default value. For multi-species
simulations with constant laminar viscosity and thermal conductivity,
one should specify the laminar mass diffusivity using the laminar
Schmidt number as follows:
laminarSchmidtNumber: 0.9
This variable need not be present in the run control file if the default
value of 1.0 is desired.
Power Law Model
An option for specifying the viscosity and thermal conductivity variation with a power law dependence on temperature is available. The power law model is a simple model that is defined by the following relation.
The required run control file variables for the power law model are as follows:
Variable |
Description |
|---|---|
|
Reference temperature |
|
The exponent in the power law model |
|
Reference viscosity |
Power law transport properties for viscous flow simulations can be specified in the run control file as follows.
powerLawParam: <mu_ref=1.8e-5, T_ref=300, power=0.7>
Turbulent Transport Properties
The turbulent dynamic viscosity is computed directly from the turbulence models. Turbulent thermal conductivity and mass diffusivity are computed using turbulent Prandtl and Schmidt numbers, respectively. The default values are shown below along with the way to specify the variables in the run control file.
turbulentPrandtlNumber: 0.7
turbulentSchmidtNumber: 0.95
These variables need not be present in the run control file if the default values are desired.
Multi-Species CHEMKIN Transport Properties
For multi-species simulations, a more detailed specification of the transport properties is required.
A thermodynamic model file (.mdl) file is required and a dataset containing transport properties is required.
The methods for generation of the thermodynamic model file as well as some of the transport properties databases is
outlined here.
CHEMKIN Transport Properties
Specifying the chemkin option for the transport_model or diffusion_model run control file variables will result in
transport property data being obtained from a CHEMKIN formatted transport file (called *.tran). The method for generating the
CHEMKIN transport .tran file is outlined here.
Curve Fit Transport Properties
Specifying the transportDB option for the transport_model or diffusion_model run control file variables will result
in transport property data being obtained from a set of data files that have curve fits of viscosity, thermal conductivity,
and diffusion coefficients (*_con.dat, *_vis.dat, *_dif.dat). These files are expected to be in the same directory as the run control file,
and located in a folder named transport. The method for generating the curve fit transport data files is outlined here
, specifically the section regarding the --transport_tables flag passed to the chemkin-converter utility.
Direct Cantera YAML to transportDB Tables
For users who already have a Cantera YAML mechanism, a direct utility is available to generate
the transport/ folder expected by transport_model: transportDB and diffusion_model: transportDB.
The utility is installed with Stream as:
<StreamInstallDirPath>/bin/cantera_to_transport
Run it in your case directory where you want the transport folder created:
cantera_to_transport chem.yaml
The command writes:
transport/*_vis.dat, transport/*_con.dat, and transport/*_dif.dat
An example with explicit controls is shown below:
cantera_to_transport chem.yaml \
--output_dir transport \
--tmin 250 \
--tmax 6000 \
--n_intervals 64 \
--pressure_pa 101325 \
--species_subset species_subset.txt
Notes:
The generated files use the same
FitFunctiontable layout read by Stream transport database readers.By default, species names are uppercased (except names beginning with
_) so file names matchtransportDBlookup behavior.The diffusion tables store \(p_{ref}D_{ij}\) using the pressure given by
--pressure_pa.