Fuel Property Prediction Model
FuelLib utilizes the group contribution method (GCM), as developed by Constantinou and Gani[1] [2] in the mid-1990s, to provide a systematic approach for estimating the thermodynamic properties of pure organic compounds. The GCM decomposes molecules into structural groups, each contributing to a target property based on predefined group values. By summing these contributions, the GCM accurately predicts essential properties, including the acentric factor, normal boiling point, liquid molar volume at standard conditions (298 K) and more. This predictive capability is particularly useful for complex mixtures such as synthetic aviation turbine fuels (SATFs), where experimental thermodynamic data is limited. FuelLib provides SATF developers with a means to estimate these critical properties without extensive physical testing, thereby aiding in the identification of promising fuel compositions before committing to large-scale production.
FuelLib builds on Pavan B. Govindaraju’s Matlab implementation, and includes gas chromatography data (GC x GC) for various jet fuels from the National Jet Fuel Combustion Program[3] (NJFCP) Air Force Research Laboratory[4] [5] (AFRL) and Vozka et al.[6]. Additionally, FuelLib includes correlations for the thermodynamic properties of mixture such as density, viscosity, vapor pressure, surface tension, and thermal conductivity. Table of GCM properties outlines the properties for the i-th compound in a mixture, which depends on the k-th first-order and j-th second-order group contributions.
Table of GCM properties
Property |
Units |
Group Contributions |
Units |
Description |
---|---|---|---|---|
\(M_{w,i}\) |
kg/mol |
\(m_{w1k}\) |
g/mol |
Molecular weight. |
\(T_{c,i}\) |
K |
\(t_{c1k}\), \(t_{c2j}\) |
1 |
Critical temperature[1]. |
\(p_{c,i}\) |
Pa |
\(p_{c1k}\), \(p_{c2j}\) |
bar-0.5 |
Critical pressure[1]. |
\(V_{c,i}\) |
m3/mol |
\(v_{c1k}\), \(v_{c2j}\) |
m3/kmol |
Critical volume[1]. |
\(T_{b,i}\) |
K |
\(t_{b1k}\), \(t_{b2j}\) |
1 |
Normal boiling point[1]. |
\(T_{m,i}\) |
K |
\(t_{m1k}\), \(t_{m2j}\) |
1 |
Normal melting point[1]. |
\(\Delta H_{f,i}\) |
J/mol |
\(h_{f1k}\), \(h_{f2j}\) |
kJ/mol |
Enthalpy of formation at 298 K[1]. |
\(\Delta G_{f,i}\) |
J/mol |
\(g_{f1k}\), \(g_{f2j}\) |
kJ/mol |
Standard Gibbs free energy at 298 K[1]. |
\(\Delta H_{v,\textit{stp},i}\) |
J/mol |
\(h_{v1k}\), \(h_{v2j}\) |
kJ/mol |
Enthalpy of vaporization at 298 K[1]. |
\(\omega_i\) |
1 |
\(\omega_{1k}\), \(\omega_{2j}\) |
1 |
Acentric factor[2]. |
\(V_{m,\textit{stp},i}\) |
m3/mol |
\(v_{m1k}\), \(v_{m2j}\) |
m3/kmol |
Liquid molar volume at 298 K[2]. |
\(C_{p,i}\) |
J/mol/K |
\(C_{pA1_k}\), \(C_{pA2_k}\),… |
J/mol/K |
Equations for GCM properties
The properties of each compound in a mixture can be calculated as the sum of contributions from the first- and second-order groups that make up the compound. For a given mixture, let \(\mathbf{N}\) be an \(N_c \times N_{g_1}\) matrix that represents the number of first-order groups in each compound, where \(N_c\) is the number of compounds in the mixture and \(N_{g_1}\) is the total number of first-order groups as defined by Constantinou and Gani[1][2]. Similarly, let \(\mathbf{M}\) be an \(N_c \times N_{g_2}\) matrix that specifies the number of second-order groups in each compound, where \(N_{g_2}\) is the total number of second-order groups. The total number of groups \(N_g = N_{g_1} + N_{g_2} = 121\). The GCM properties for the i-th compound in the mixture are calculated as follows[1] [2] [8]:
Equations for individual compound correlations
This section presents correlations for physical properties that leverage the individual compound properties defined in Equations for GCM properties. These correlations make it possible to evaluate physical properties at non-standard temperatures and pressures, given that group contribution properties are only defined at standard conditions. Unless noted otherwise in the individual correlation, all units are assumed to be SI: length (m), mass (kg), time (s), temperature (K), mole (mol). The Reduced temperature quantities are used throughout this section for each compound i, provided \(T\) in K unless noted otherwise.
Property |
Units |
Description |
---|---|---|
\(\nu_i\) |
m2/s |
Kinematic viscosity[9]. |
\(L_{v,\textit{stp},i}\) |
J/kg |
Latent heat of vaporization at 298 K[10]. |
\(L_{v,i}\) |
J/kg |
Temperature-adjusted latent heat of vaporization at 298 K[10]. |
\(V_{m,i}\) |
m3/mol |
|
\(\rho_i\) |
kg/m3 |
Density |
\(C_{\ell,i}\) |
J/kg/K |
Liquid specific heat capacity[10]. |
\(p_{sat,i}\) |
Pa |
|
\(\sigma_i\) |
N/m |
Surface tension[15]. |
\(\lambda_i\) |
W/m/K |
Thermal conductivity[8]. |
Symbol |
Definition |
Description |
---|---|---|
\(T_{r,i}\) |
\(\frac{T}{T_{c,i}}\) |
Reduced temperature. |
\(T_{r,b,i}\) |
\(\frac{T_{b,i}}{T_{c,i}}\) |
Reduced boiling point temperature. |
\(T_{r,\textit{stp},i}\) |
\(\frac{298 \text{ (K)}}{T_{c,i}}\) |
Reduced standard temperature. |
Kinematic viscosity
- fuel.viscosity_kinematic(T)
Calculate the viscosity using Dutt’s equation.
- Parameters:
T (float) – Temperature in Kelvin.
- Returns:
Viscosity of each component in m^2/s.
- Return type:
np.ndarray
The kinematic viscosity of the i-th compound of the fuel,
is calculated from Dutt’s equation (Eq. 4.23 in Viscosity of Liquids[9]) provided \(T\) in \(^{\circ}\) C:
Latent heat of vaporization
- fuel.latent_heat_vaporization(T)
Calculate latent heat of vaporization adjusted for temperature.
- Parameters:
T (float) – Temperature in Kelvin.
- Returns:
Latent heat of vaporization in J/kg.
- Return type:
np.ndarray
The latent heat of vaporization for each compound at standard pressure and temperature is calculated from the enthalpy of vaporization as:
The heat of vaporization for each compound is then adjusted for variations in temperature[10]:
Liquid molar volume
- fuel.molar_liquid_vol(T)
Compute molar liquid volume with temperature correction.
- Parameters:
T (float) – Temperature in Kelvin.
- Returns:
Molar liquid volume in m^3/mol.
- Return type:
np.ndarray
The liquid molar volume is calculated at a specific temperature \(T\) using the generalized Rackett equation[11] [12] with an updated \(\phi_i\) parameter[10]:
where
Density
- fuel.density(T)
Calculate the density of each component at temperature T.
- Parameters:
T (float) – Temperature of the mixture in Kelvin.
- Returns:
Density of each compound in kg/m^3.
- Return type:
np.ndarray
The density of the i-th compound is given by
Liquid specific heat capacity
- fuel.Cl(T)
Compute liquid specific heat capacity in J/kg/K at a given temperature.
- Parameters:
T (float) – Temperature in Kelvin.
- Returns:
Specific heat capacity in J/kg/K.
- Return type:
np.ndarray
The liquid specific heat capacity for each compound at standard pressure temperature is calculated from the specific heat capacity as:
Saturated vapor pressure
- fuel.psat(T, correlation='Lee-Kesler')
Compute saturated vapor pressure.
- Parameters:
T (float) – Temperature in Kelvin.
correlation (str, optional) – Correlation method (“Ambrose-Walton” or “Lee-Kesler”).
- Returns:
Saturated vapor pressure in Pa.
- Return type:
np.ndarray
The saturated vapor pressure for each compound is calculated as a function of temperature using either the Lee–Kesler method[13] or the Ambrose-Walton method[14]. Both methods solve
for the reduced saturated vapor pressure for each compound, \(p_{r,\text{sat},i} = p_{\text{sat},i}/p_{c,i}\). The default method in FuelLib is the Lee-Kesler method, as it is more stable at higher temperatures. The Lee-Kesler[13] method defines
The Ambrose-Walton[14] correlation sets:
with \(\tau_i = 1 - T_{r,i}\).
Surface tension
- fuel.surface_tension(T, correlation='Brock-Bird')
Calculate surface tension of each compound at a given temperature.
- Parameters:
T (float) – Temperature in Kelvin.
correlation (str, optional) – Correlation method (“Brock-Bird” or “Pitzer”).
- Returns:
Surface tension in N/m.
- Return type:
np.ndarray
Surface tension for each compound is approximated using the relation:
provided \(p_{c,i}\) in bar. The \(Q_i\) term is defined by Brock and Bird[15] (default in FuelLib) as
or by Curl and Pitzer[8] [16] [17] as
Thermal conductivity
- fuel.thermal_conductivity(T)
Calculate thermal conductivity at a given temperature.
- Parameters:
T (float) – Temperature in Kelvin.
- Returns:
Thermal conductivity in W/m/K.
- Return type:
np.ndarray
Thermal conductivity for each compound is computed according to the method of Latini et al. as summarized in Poling’s[8] book:
The constant \(A_i\) is defined by:
provided \(M_{w,i}\) in g/mol. The exponents vary depending on the family of the compound as defined in Thermal conductivity relation parameters. It is assumed that:
aromatics have contain aromatic group contributions (e.g. ACCH)
cycloparaffins contain a ring (e.g. 5-membered ring) and do not contain aromatic groups
olefins contain one or more pairs of carbon atoms linked by a double bond and do not contain aromatic groups or rings
all other compounds are assumed to be saturated hydrocarbons.
Identifier |
Family |
\(A^\ast\) |
\(\alpha\) |
\(\beta\) |
\(\gamma\) |
---|---|---|---|---|---|
0 |
Saturated hydrocarbons |
0.00350 |
1.2 |
0.5 |
0.167 |
1 |
Aromatics |
0.0346 |
1.2 |
1.0 |
0.167 |
2 |
Cycloparaffins |
0.0310 |
1.2 |
1.0 |
0.167 |
3 |
Olefins |
0.0361 |
1.2 |
1.0 |
0.167 |
Equations for mixture properties from GCM
This section contains correlations for estimating physical properties of the mixture from the individual compound and physical properties defined in Equations for GCM properties and Equations for individual compound correlations. These correlations make it possible to evaluate physical properties at non-standard temperatures and pressures, as the group contribution properties are only defined at standard conditions. The Mixture properties available in FuelLib are listed in table below. Mass and mole fractions defined in Table Mass and mole fractions are used throughout this section.
Symbol |
Units |
Description |
---|---|---|
\(\rho\) |
kg/m3 |
Density |
\(\nu\) |
m2/s |
Kinematic viscosity |
\(p_v\) |
Pa |
Vapor pressure |
\(\sigma\) |
N/m |
Surface tension |
\(\lambda\) |
W/m/K |
Thermal conductivity |
Symbol |
Definition |
Description |
---|---|---|
\(Y_i\) |
\(\frac{m_i}{\sum_{k=1}^{N_c} m_k}\) |
Mass fraction of compound i. \(m_i\) is the mass of compound i. |
\(X_i\) |
\(\frac{n_i}{\sum_{k=1}^{N_c} n_k}\) |
Mole fraction of compound i. \(n_i\) is the number of moles compound i. |
Conventional mixing rules
- FuelLib.mixing_rule(var_n, X, pseudo_prop='arithmetic')
Mixing rules for computing mixture properties.
- Parameters:
var_n (np.ndarray) – Individual compound properties.
X (np.ndarray) – Mole fractions of the compounds.
pseudo_prop (str, optional) – Type of mean (“arithmetic” or “geometric”).
- Returns:
Mixture property value.
- Return type:
float
While many of the mixture properties in FuelLib have a unique mixing rule, FuelLib’s mixing_rule function provides a general mixing rule based on the suggestions of Harstad et al[18]. For a given property \(Q\)
where the pseudo-property for the couple of components, \(Q_{ij}\) is computed using an arithmetic,
or a geometric mean,
where \(Q_i\) is the property of the i-th compound of the multicomponent mixture.
Mixture density
- fuel.mixture_density(Yi, T)
Calculate mixture density at a given temperature.
- Parameters:
Yi (np.ndarray) – Mass fractions of each compound.
T (float) – Temperature in Kelvin.
- Returns:
Mixture density in kg/m^3.
- Return type:
float
The mixture’s density is calculated as:
Mixture kinematic viscosity
- fuel.mixture_kinematic_viscosity(Yi, T, correlation='Kendall-Monroe')
Calculate kinematic viscosity of the mixture.
- Parameters:
Yi (np.ndarray) – Mass fractions of each compound.
T (float) – Temperature in Kelvin.
correlation (str, optional) – Mixing model (“Kendall-Monroe” or “Arrhenius”).
- Returns:
Mixture kinematic viscosity in m^2/s.
- Return type:
float
The kinematic viscosity of the mixture is computed using the Kendall-Monroe[19] mixing rule, with an option to use the Arrhenius[20] mixing rule. The viscosity of each component. After evaluating thirty mixing rules, Hernandez et al.[21] found that both Kendall-Monroe and Arrhenius were among the most effective without relying on additional data or parameter fitting. The Kendall-Monroe rule is:
The Arrhenius rule is:
Mixture vapor pressure
- fuel.mixture_vapor_pressure(Yi, T, correlation='Lee-Kesler')
Calculate vapor pressure of the mixture.
- Parameters:
Yi (np.ndarray) – Mass fractions of each compound in the mixture.
T (float) – Temperature in Kelvin.
correlation (str, optional) – Correlation method (“Ambrose-Walton” or “Lee-Kesler”).
- Returns:
Mixture vapor pressure in Pa.
- Return type:
float
The vapor pressure of the mixture is calculated according to Raoult’s law:
- fuel.mixture_vapor_pressure_antoine_coeffs(Yi, Tvals, units='mks', correlation='Lee-Kesler')
Estimate Antoine coefficients for vapor pressure of the mixture.
- Parameters:
Yi (np.ndarray) – Mass fractions of each compound in the mixture.
Tvals (np.ndarray) – Temperature range or nodes for Antoine fit in Kelvin.
units – Units for pressure in fit (“mks”, “cgs”, “bar”, “atm”)
correlation (str, optional) – Correlation method (“Ambrose-Walton” or “Lee-Kesler”).
- Returns:
Coefficients A, B, C, D
- Return type:
float
Users also have the option to return the coefficients from an Antoine fit based on the mixture vapor pressure calculated from Raoult’s law above. Antoine’s equation is:
where \(D\) is a conversion factor for converting \(p_v\) to units of bar or dyne/cm 2 from Pa. This feature was added to provide Pele users an option for estimating these coefficients for use in CFD simulations with spray. See the PelePhysics documentation for additional information.
Mixture surface tension
- fuel.mixture_surface_tension(Yi, T, correlation='Brock-Bird')
Calculate surface tension of the mixture.
- Parameters:
Yi (np.ndarray) – Mass fractions of each compound in the mixture.
T (float) – Temperature in Kelvin.
correlation (str, optional) – Correlation method (“Pitzer” or “Brock-Bird”).
- Returns:
Mixture surface tension in N/m.
- Return type:
float
The surface tension of the mixture is calculated using the Conventional mixing rules with an arithmetic mean for the pseudo-property \(\sigma_{i,j}\) as recommended by Hugill and van Welsenes[22]:
Mixture thermal conductivity
- fuel.mixture_thermal_conductivity(Yi, T)
Calculate thermal conductivity of the mixture.
- Parameters:
Yi (np.ndarray) – Mass fractions of each compound in the mixture.
T (float) – Temperature in Kelvin.
- Returns:
Thermal conductivity in W/m/K.
- Return type:
float
The thermal conductivity of the mixture is calculated using the power law method of Vredeveld as described in Poling[8]:
Validation
Single Component Fuels

Fig. 1 Properties of heptane, decane, and dodecane against predictive data from NIST Chemistry WebBook.
Multi-Component Fuels

Fig. 2 Properties of conventional jet fuels JP-8 (POSF10264), Jet A (POSF10325), and JP-5 (POSF10289) against data from the Air Force Research Laboratory[5]. Note that the data sets for thermal conductivity are very inconsistent, but they typically show linear decreases in thermal conductivity with temperature.
Fuel Blends

Fig. 3 Properties of three HEFA fuels produced from different feedstocks (camelina, tallow, and mixed fat) blended with Jet-A. Measurement and GCxGC data from Vozka et al.[6].