Class AsphalteneCharacterization
java.lang.Object
neqsim.thermo.characterization.AsphalteneCharacterization
Characterizes asphaltene content using SARA fractionation data.
SARA analysis divides crude oil into four fractions: Saturates, Aromatics, Resins, and Asphaltenes. This class uses SARA data to:
- Calculate the Colloidal Instability Index (CII)
- Estimate asphaltene pseudo-component properties
- Assign CPA parameters for thermodynamic modeling
The colloidal model treats asphaltenes as particles stabilized by resins. Precipitation occurs when the resin-to-asphaltene ratio drops below a critical value.
References:
- Yen, T.F., Chilingarian, G.V. (1994). Asphaltenes and Asphalts, Vol. 1
- Mullins, O.C. et al. (2007). Asphaltenes, Heavy Oils, and Petroleomics
- Jamaluddin, A.K.M. et al. (2002). SPE 74393
- Version:
- 1.0
- Author:
- ASMF
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleWeight fraction of aromatics (0-1).private doubleCPA association energy for asphaltene self-association (K).private doubleCPA association volume for asphaltene.private doubleWeight fraction of asphaltenes (0-1).static final doubleCritical CII value above which asphaltenes are unstable.static final doubleCII value above which severe instability is expected.private doubleDensity of C7+ fraction at standard conditions (kg/m3).private doubleEstimated molecular weight of asphaltene fraction (g/mol).private doubleMolecular weight of C7+ fraction (g/mol).private doubleEstimated molecular weight of resin fraction (g/mol).private doubleCPA association energy for asphaltene-resin cross-association (K).private doubleWeight fraction of resins (0-1).private doubleWeight fraction of saturates (0-1). -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.AsphalteneCharacterization(double saturates, double aromatics, double resins, double asphaltenes) Constructor with SARA fractions. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAsphalteneComponents(SystemInterface system, double totalC7plusMoles) Adds asphaltene and resin pseudo-components to a thermodynamic system.private voidConfigures CPA parameters for asphaltene component in the system.private voidConfigures CPA parameters for resin component in the system.doubleEstimates the molecular weight of asphaltenes based on C7+ properties.doubleEstimates the molecular weight of resins based on C7+ properties.Evaluates asphaltene stability based on CII.doubledoubledoubledoubledoubleCalculates the Colloidal Instability Index (CII).doubledoubledoubledoubleCalculates the Resin-to-Asphaltene ratio (R/A).doublevoidsetAromatics(double aromatics) voidsetAsphalteneAssociationEnergy(double energy) voidsetAsphalteneAssociationVolume(double volume) voidsetAsphaltenes(double asphaltenes) voidsetC7plusProperties(double mwC7plus, double densityC7plus) Sets C7+ fraction properties for correlation calculations.voidsetMwAsphaltene(double mwAsphaltene) voidsetMwResin(double mwResin) voidsetResins(double resins) voidsetSARAFractions(double saturates, double aromatics, double resins, double asphaltenes) Sets SARA fractions from analysis data.voidsetSaturates(double saturates) private voidValidates that SARA fractions sum to approximately 1.0.
-
Field Details
-
saturates
private double saturatesWeight fraction of saturates (0-1). -
aromatics
private double aromaticsWeight fraction of aromatics (0-1). -
resins
private double resinsWeight fraction of resins (0-1). -
asphaltenes
private double asphaltenesWeight fraction of asphaltenes (0-1). -
mwC7plus
private double mwC7plusMolecular weight of C7+ fraction (g/mol). -
densityC7plus
private double densityC7plusDensity of C7+ fraction at standard conditions (kg/m3). -
mwAsphaltene
private double mwAsphalteneEstimated molecular weight of asphaltene fraction (g/mol). -
mwResin
private double mwResinEstimated molecular weight of resin fraction (g/mol). -
asphalteneAssociationEnergy
private double asphalteneAssociationEnergyCPA association energy for asphaltene self-association (K). -
asphalteneAssociationVolume
private double asphalteneAssociationVolumeCPA association volume for asphaltene. -
resinAsphalteneAssociationEnergy
private double resinAsphalteneAssociationEnergyCPA association energy for asphaltene-resin cross-association (K). -
CII_STABLE_LIMIT
public static final double CII_STABLE_LIMITCritical CII value above which asphaltenes are unstable.- See Also:
-
CII_UNSTABLE_LIMIT
public static final double CII_UNSTABLE_LIMITCII value above which severe instability is expected.- See Also:
-
-
Constructor Details
-
AsphalteneCharacterization
public AsphalteneCharacterization()Default constructor. -
AsphalteneCharacterization
public AsphalteneCharacterization(double saturates, double aromatics, double resins, double asphaltenes) Constructor with SARA fractions.- Parameters:
saturates- weight fraction of saturates (0-1)aromatics- weight fraction of aromatics (0-1)resins- weight fraction of resins (0-1)asphaltenes- weight fraction of asphaltenes (0-1)
-
-
Method Details
-
validateSARA
private void validateSARA()Validates that SARA fractions sum to approximately 1.0.- Throws:
IllegalArgumentException- if fractions don't sum to ~1.0
-
setSARAFractions
public void setSARAFractions(double saturates, double aromatics, double resins, double asphaltenes) Sets SARA fractions from analysis data.- Parameters:
saturates- weight fraction of saturates (0-1)aromatics- weight fraction of aromatics (0-1)resins- weight fraction of resins (0-1)asphaltenes- weight fraction of asphaltenes (0-1)
-
setC7plusProperties
public void setC7plusProperties(double mwC7plus, double densityC7plus) Sets C7+ fraction properties for correlation calculations.- Parameters:
mwC7plus- molecular weight of C7+ fraction (g/mol)densityC7plus- density of C7+ at standard conditions (kg/m3)
-
getColloidalInstabilityIndex
public double getColloidalInstabilityIndex()Calculates the Colloidal Instability Index (CII).CII = (Saturates + Asphaltenes) / (Aromatics + Resins)
Interpretation:
- CII < 0.7: Stable (asphaltenes well-peptized)
- 0.7 <= CII < 0.9: Moderate risk
- CII >= 0.9: High instability risk
- Returns:
- the colloidal instability index
-
getResinToAsphalteneRatio
public double getResinToAsphalteneRatio()Calculates the Resin-to-Asphaltene ratio (R/A).Higher R/A ratios indicate better asphaltene stability. Critical R/A for stability is typically around 1.0-3.0.
- Returns:
- the resin-to-asphaltene ratio
-
estimateAsphalteneMolecularWeight
public double estimateAsphalteneMolecularWeight()Estimates the molecular weight of asphaltenes based on C7+ properties.Uses correlation from Whitson and Brule (2000).
- Returns:
- estimated asphaltene molecular weight (g/mol)
-
estimateResinMolecularWeight
public double estimateResinMolecularWeight()Estimates the molecular weight of resins based on C7+ properties.- Returns:
- estimated resin molecular weight (g/mol)
-
addAsphalteneComponents
Adds asphaltene and resin pseudo-components to a thermodynamic system.This method adds characterized asphaltene and resin components with appropriate CPA parameters for association modeling.
- Parameters:
system- the thermodynamic system to modifytotalC7plusMoles- total moles of C7+ fraction to distribute
-
configureAsphalteneParameters
Configures CPA parameters for asphaltene component in the system.- Parameters:
system- the thermodynamic system
-
configureResinParameters
Configures CPA parameters for resin component in the system.- Parameters:
system- the thermodynamic system
-
evaluateStability
Evaluates asphaltene stability based on CII.- Returns:
- stability assessment string
-
getSaturates
public double getSaturates() -
setSaturates
public void setSaturates(double saturates) -
getAromatics
public double getAromatics() -
setAromatics
public void setAromatics(double aromatics) -
getResins
public double getResins() -
setResins
public void setResins(double resins) -
getAsphaltenes
public double getAsphaltenes() -
setAsphaltenes
public void setAsphaltenes(double asphaltenes) -
getMwAsphaltene
public double getMwAsphaltene() -
setMwAsphaltene
public void setMwAsphaltene(double mwAsphaltene) -
getMwResin
public double getMwResin() -
setMwResin
public void setMwResin(double mwResin) -
getAsphalteneAssociationEnergy
public double getAsphalteneAssociationEnergy() -
setAsphalteneAssociationEnergy
public void setAsphalteneAssociationEnergy(double energy) -
getAsphalteneAssociationVolume
public double getAsphalteneAssociationVolume() -
setAsphalteneAssociationVolume
public void setAsphalteneAssociationVolume(double volume)
-