Class TBPfractionModel
- All Implemented Interfaces:
Serializable
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
| 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
| 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
- Pedersen, K.S., Thomassen, P., Fredenslund, A. (1984). "Thermodynamics of Petroleum Mixtures Containing Heavy Hydrocarbons." Ind. Eng. Chem. Process Des. Dev., 23, 566-573.
- Kesler, M.G., Lee, B.I. (1976). "Improve Prediction of Enthalpy of Fractions." Hydrocarbon Processing, 55(3), 153-158.
- Riazi, M.R., Daubert, T.E. (1980). "Simplify Property Predictions." Hydrocarbon Processing, 59(3), 115-116.
- Twu, C.H. (1984). "An Internally Consistent Correlation for Predicting the Critical Properties..." Fluid Phase Equilibria, 16, 137-150.
- Cavett, R.H. (1962). "Physical Data for Distillation Calculations." Proc. 27th API Meeting, San Francisco.
- Standing, M.B. (1977). "Volumetric and Phase Behavior of Oil Field Hydrocarbon Systems." SPE, Dallas.
- Version:
- $Id: $Id
- Author:
- ESOL
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassCavett (1962) property estimation method with Lee-Kesler enhancements.classLee-Kesler property estimation method.classclassclassclassPedersen TBP Model for SRK equation of state.classclassRiazi-Daubert (1980) property estimation method.classStanding (1977) property estimation method.classAbstract base class for TBP property estimation models.classTwu (1984) property estimation method. -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static org.apache.logging.log4j.LoggerLogger object for class.(package private) Stringprivate static final longSerialization version UID. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic doublecalcAPIGravity(double specificGravity) Calculate API gravity from specific gravity.static doublecalcSpecificGravity(double apiGravity) Calculate specific gravity from API gravity.doublecalcWatsonKFactor(double molarMass, double density) Calculate Watson characterization factor (Kw) from molecular weight and density.static String[]Get list of all available TBP model names.Get a TBP model instance by name.recommendTBPModel(double avgMW, double avgDensity, String eosType) Recommend the most appropriate TBP model based on fluid properties and EOS type.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
logger
static org.apache.logging.log4j.Logger loggerLogger 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/moldensity- density in g/cm³ (specific gravity)- Returns:
- Watson characterization factor (dimensionless)
-
recommendTBPModel
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/molavgDensity- average density/specific gravity in g/cm³eosType- equation of state type: "SRK" or "PR"- Returns:
- recommended model name as a String
-
getAvailableModels
Get list of all available TBP model names.- Returns:
- array of available model names
-
getModel
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
-