Class TBPfractionModel.CavettModel
- All Implemented Interfaces:
Serializable, Cloneable, TBPModelInterface
- Enclosing class:
TBPfractionModel
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 Summary
FieldsModifier and TypeFieldDescriptionprivate static final longSerialization version UID.Fields inherited from class TBPfractionModel.TBPBaseModel
calcm -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondoublecalcAcentricFactor(double molarMass, double density) Calculate acentric factor using Edmister correlation.private doublecalcAPI(double sg) Calculate API gravity from specific gravity.doublecalcPC(double molarMass, double density) Calculate critical pressure using Lee-Kesler correlation with API correction.doublecalcRacketZ(SystemInterface thermoSystem, double molarMass, double density) calcRacketZ.doublecalcTB(double molarMass, double density) Calculate boiling point using Riazi-Daubert correlation.doublecalcTC(double molarMass, double density) Calculate critical temperature using Lee-Kesler correlation with API correction.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization 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:
calcTBin interfaceTBPModelInterface- Overrides:
calcTBin classTBPfractionModel.TBPBaseModel- Parameters:
molarMass- molar mass in g/moldensity- 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/moldensity- 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/moldensity- 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:
calcAcentricFactorin interfaceTBPModelInterface- Overrides:
calcAcentricFactorin classTBPfractionModel.TBPBaseModel- Parameters:
molarMass- molar mass in g/moldensity- specific gravity (g/cm³)- Returns:
- acentric factor (dimensionless)
-
calcRacketZ
calcRacketZ.
- Specified by:
calcRacketZin interfaceTBPModelInterface- Overrides:
calcRacketZin classTBPfractionModel.TBPBaseModel- Parameters:
thermoSystem- aSystemInterfaceobjectmolarMass- a doubledensity- a double- Returns:
- a double
-