Class TBPfractionModel.CavettModel

java.lang.Object
neqsim.thermo.characterization.TBPfractionModel.TBPBaseModel
neqsim.thermo.characterization.TBPfractionModel.CavettModel
All Implemented Interfaces:
Serializable, Cloneable, TBPModelInterface
Enclosing class:
TBPfractionModel

public class TBPfractionModel.CavettModel extends TBPfractionModel.TBPBaseModel
Cavett (1962) property estimation method with Lee-Kesler enhancements.

This implementation combines the Cavett API gravity corrections with the more robust Lee-Kesler correlations for improved accuracy across a wider range of petroleum fractions. The original Cavett correlations are known to have issues with light fractions (C7-C10), so this hybrid approach uses Lee-Kesler as the base with API gravity adjustments.

Key Features:

  • Hybrid Lee-Kesler/Cavett approach for robustness
  • API gravity corrections for heavy fractions (API < 30°)
  • Riazi-Daubert boiling point correlation
  • Edmister acentric factor with bounds checking

Correlations:

Critical Temperature (Lee-Kesler base with API correction):

Tc = [189.8 + 450.6·SG + (0.4244 + 0.1174·SG)·Tb + (0.1441 - 1.0069·SG)·105/Tb] × f(API)

where f(API) = 1 + 0.002·(30 - API) for API < 30°, otherwise f(API) = 1

Critical Pressure (Lee-Kesler base with API correction):

ln(Pc) = 3.3864 - 0.0566/SG - g(Tb, SG) with API correction

Acentric Factor (Edmister):

ω = (3/7) × log10(Pc/Pref) / (Tc/Tb - 1) - 1

Bounded to range [0.0, 1.5] for physical validity

API Gravity Relationship:

API = 141.5/SG - 131.5

  • API > 31.1°: Light crude (SG < 0.87)
  • API 22.3-31.1°: Medium crude
  • API < 22.3°: Heavy crude (SG > 0.92)

Recommended Applications:

  • Refining industry calculations
  • Heavy oil characterization (API < 30°)
  • When API gravity data is available and important

Reference: Cavett, R.H. (1962). "Physical Data for Distillation Calculations, Vapor-Liquid Equilibria." Proc. 27th API Meeting, San Francisco.

Version:
$Id: $Id
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

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

    • CavettModel

      public CavettModel()
  • Method Details

    • calcAPI

      private double calcAPI(double sg)
      Calculate API gravity from specific gravity.
      Parameters:
      sg - specific gravity (water = 1.0)
      Returns:
      API gravity in degrees
    • calcTB

      public double calcTB(double molarMass, double density)
      Calculate boiling point using Riazi-Daubert correlation.
      Specified by:
      calcTB in interface TBPModelInterface
      Overrides:
      calcTB in class TBPfractionModel.TBPBaseModel
      Parameters:
      molarMass - molar mass in g/mol
      density - specific gravity (g/cm³)
      Returns:
      boiling point in Kelvin
    • calcTC

      public double calcTC(double molarMass, double density)
      Calculate critical temperature using Lee-Kesler correlation with API correction.
      Parameters:
      molarMass - molar mass in g/mol
      density - specific gravity (g/cm³)
      Returns:
      critical temperature in Kelvin
    • calcPC

      public double calcPC(double molarMass, double density)
      Calculate critical pressure using Lee-Kesler correlation with API correction.
      Parameters:
      molarMass - molar mass in g/mol
      density - specific gravity (g/cm³)
      Returns:
      critical pressure in bar
    • calcAcentricFactor

      public double calcAcentricFactor(double molarMass, double density)
      Calculate acentric factor using Edmister correlation.
      Specified by:
      calcAcentricFactor in interface TBPModelInterface
      Overrides:
      calcAcentricFactor in class TBPfractionModel.TBPBaseModel
      Parameters:
      molarMass - molar mass in g/mol
      density - specific gravity (g/cm³)
      Returns:
      acentric factor (dimensionless)
    • calcRacketZ

      public double calcRacketZ(SystemInterface thermoSystem, double molarMass, double density)

      calcRacketZ.

      Specified by:
      calcRacketZ in interface TBPModelInterface
      Overrides:
      calcRacketZ in class TBPfractionModel.TBPBaseModel
      Parameters:
      thermoSystem - a SystemInterface object
      molarMass - a double
      density - a double
      Returns:
      a double