Class TBPfractionModel

java.lang.Object
neqsim.thermo.characterization.TBPfractionModel
All Implemented Interfaces:
Serializable

public class TBPfractionModel extends Object implements Serializable
TBP (True Boiling Point) Fraction Model for petroleum characterization.

This class provides multiple correlation models for estimating critical properties (Tc, Pc, ω) of petroleum pseudo-components based on molecular weight and density. These properties are essential for equation of state calculations in process simulation.

Background and Theory

Petroleum fluids contain thousands of individual hydrocarbon components that cannot all be individually characterized. Instead, heavy fractions (typically C7+) are lumped into pseudo-components. TBP models estimate the critical properties needed for equation of state calculations from easily measured properties like molecular weight (MW) and specific gravity (SG).

Available Models

Available TBP Models and Their Applications
Model Best For Key Features Reference
PedersenSRK General SRK EOS Default, automatic light/heavy switching at MW=1120 Pedersen et al. (1984)
PedersenPR General PR EOS Optimized for Peng-Robinson EOS Pedersen et al. (1984)
Lee-Kesler General purpose Uses Watson K-factor, wide applicability Kesler & Lee (1976)
RiaziDaubert Light fractions (MW < 300) Simple exponential form, falls back to Pedersen for heavy Riazi & Daubert (1980)
Twu Paraffinic fluids (Kw > 12) n-alkane reference with perturbation corrections Twu (1984)
Cavett Refining industry API gravity corrections, hybrid Lee-Kesler approach Cavett (1962)
Standing Reservoir engineering Simple power-law, quick estimates Standing (1977)

Key Correlations

Critical Temperature

Pedersen: Tc = a0·ρ + a1·ln(M) + a2·M + a3/M

Lee-Kesler: Tc = 189.8 + 450.6·SG + (0.4244 + 0.1174·SG)·Tb + (0.1441 - 1.0069·SG)·105/Tb

Riazi-Daubert: Tc = (5/9)·554.4·exp(-1.3478×10-4·M - 0.61641·SG)·M0.2998·SG1.0555

Critical Pressure

Pedersen: Pc = exp(b0 + b1·ρb4 + b2/M + b3/M²)

Lee-Kesler: ln(Pc) = 3.3864 - 0.0566/SG - f(Tb, SG)

Acentric Factor

Edmister: ω = (3/7)·log10(Pc/Pref)/(Tc/Tb - 1) - 1

Kesler-Lee (Tbr < 0.8): ω = (ln(Pbr) - 5.92714 + 6.09649/Tbr + ...)/(15.2518 - ...)

Watson Characterization Factor

Kw = (1.8·Tb)1/3/SG

Used to characterize fluid type:

  • Kw > 12.5: Paraffinic (gas condensates)
  • Kw 11.5-12.5: Mixed/intermediate
  • Kw 10.5-11.5: Naphthenic
  • Kw < 10.5: Aromatic

Model Selection Guidelines

  • Default choice: PedersenSRK (for SRK EOS) or PedersenPR (for PR EOS)
  • Gas condensates: Twu model (Kw > 12)
  • Heavy oils (MW > 500): PedersenSRKHeavyOil or PedersenPRHeavyOil
  • Light fractions (MW < 300): RiaziDaubert or Lee-Kesler
  • Reservoir engineering: Standing (simple, widely used)
  • Refining applications: Cavett (API gravity-based)

Usage Example


// Create a fluid with SRK equation of state
SystemInterface fluid = new SystemSrkEos(298.15, 50.0);

// Set the TBP model (optional, defaults to PedersenSRK for SRK EOS)
fluid.getCharacterization().setTBPModel("PedersenSRK");

// Add a TBP fraction: name, moles, MW (kg/mol), density (g/cm³)
fluid.addTBPfraction("C7", 1.0, 0.092, 0.73); // C7 fraction
fluid.addTBPfraction("C10", 0.5, 0.142, 0.78); // C10 fraction

// The model automatically calculates Tc, Pc, ω for each fraction
System.out.println("C7 Tc = " + fluid.getComponent("C7_PC").getTC() + " K");
System.out.println("C7 Pc = " + fluid.getComponent("C7_PC").getPC() + " bar");

// Get model recommendation based on fluid properties
TBPfractionModel model = new TBPfractionModel();
String recommended = model.recommendTBPModel(0.200, 0.85, "SRK");

Typical Property Ranges

Typical Property Ranges for Petroleum Fractions
Component MW (g/mol) SG Tc (K) Pc (bar) ω
C7 96-100 0.72-0.74 540-560 27-30 0.30-0.35
C10 134-142 0.76-0.79 600-640 20-25 0.45-0.55
C20 275-285 0.85-0.87 750-800 12-15 0.85-0.95

References

  1. Pedersen, K.S., Thomassen, P., Fredenslund, A. (1984). "Thermodynamics of Petroleum Mixtures Containing Heavy Hydrocarbons." Ind. Eng. Chem. Process Des. Dev., 23, 566-573.
  2. Kesler, M.G., Lee, B.I. (1976). "Improve Prediction of Enthalpy of Fractions." Hydrocarbon Processing, 55(3), 153-158.
  3. Riazi, M.R., Daubert, T.E. (1980). "Simplify Property Predictions." Hydrocarbon Processing, 59(3), 115-116.
  4. Twu, C.H. (1984). "An Internally Consistent Correlation for Predicting the Critical Properties..." Fluid Phase Equilibria, 16, 137-150.
  5. Cavett, R.H. (1962). "Physical Data for Distillation Calculations." Proc. 27th API Meeting, San Francisco.
  6. Standing, M.B. (1977). "Volumetric and Phase Behavior of Oil Field Hydrocarbon Systems." SPE, Dallas.
Version:
$Id: $Id
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • logger

      static org.apache.logging.log4j.Logger logger
      Logger object for class.
    • name

      String name
  • Constructor Details

    • TBPfractionModel

      public TBPfractionModel()

      Constructor for TBPfractionModel.

  • Method Details

    • calcAPIGravity

      public static double calcAPIGravity(double specificGravity)
      Calculate API gravity from specific gravity.

      API gravity is a measure of how heavy or light a petroleum liquid is compared to water. API gravity greater than 10 means the liquid is lighter than water and will float.

      Parameters:
      specificGravity - specific gravity relative to water (g/cm³)
      Returns:
      API gravity in degrees
    • calcSpecificGravity

      public static double calcSpecificGravity(double apiGravity)
      Calculate specific gravity from API gravity.
      Parameters:
      apiGravity - API gravity in degrees
      Returns:
      specific gravity relative to water (g/cm³)
    • calcWatsonKFactor

      public double calcWatsonKFactor(double molarMass, double density)
      Calculate Watson characterization factor (Kw) from molecular weight and density.

      The Watson K-factor is used to characterize petroleum fractions:

      • Kw > 12.5: Paraffinic (gas condensates)
      • Kw 11.5-12.5: Mixed/intermediate
      • Kw 10.5-11.5: Naphthenic
      • Kw < 10.5: Aromatic
      Parameters:
      molarMass - molar mass in kg/mol
      density - density in g/cm³ (specific gravity)
      Returns:
      Watson characterization factor (dimensionless)
    • recommendTBPModel

      public String recommendTBPModel(double avgMW, double avgDensity, String eosType)
      Recommend the most appropriate TBP model based on fluid properties and EOS type.

      This method analyzes the plus fraction properties (molecular weight, density, Watson K-factor) and recommends the most suitable TBP correlation model. The recommendation considers:

      • Fluid type (paraffinic, naphthenic, aromatic)
      • Molecular weight range (light vs heavy)
      • Equation of state being used (SRK vs PR)
      Parameters:
      avgMW - average molecular weight of plus fraction in kg/mol
      avgDensity - average density/specific gravity in g/cm³
      eosType - equation of state type: "SRK" or "PR"
      Returns:
      recommended model name as a String
    • getAvailableModels

      public static String[] getAvailableModels()
      Get list of all available TBP model names.
      Returns:
      array of available model names
    • getModel

      public TBPModelInterface getModel(String name)
      Get a TBP model instance by name.

      Available models and their recommended use cases:

      • PedersenSRK: General purpose for SRK EOS, default choice
      • PedersenSRKHeavyOil: SRK EOS for heavy oils (MW > 500 g/mol)
      • PedersenPR: General purpose for PR EOS
      • PedersenPR2: PR EOS with Søreide boiling point correlation
      • PedersenPRHeavyOil: PR EOS for heavy oils
      • RiaziDaubert: Light to medium petroleum fractions (MW < 300 g/mol)
      • Lee-Kesler: General purpose, uses Watson K-factor
      • Twu: Paraffinic fluids, based on n-alkane reference
      • Cavett: Refining industry, API gravity based
      • Standing: Simple power-law, reservoir engineering
      Parameters:
      name - model name (case-sensitive)
      Returns:
      TBPModelInterface instance, defaults to PedersenSRK if name not recognized