Class AsphalteneCharacterization

java.lang.Object
neqsim.thermo.characterization.AsphalteneCharacterization

public class AsphalteneCharacterization extends Object
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 Details

    • saturates

      private double saturates
      Weight fraction of saturates (0-1).
    • aromatics

      private double aromatics
      Weight fraction of aromatics (0-1).
    • resins

      private double resins
      Weight fraction of resins (0-1).
    • asphaltenes

      private double asphaltenes
      Weight fraction of asphaltenes (0-1).
    • mwC7plus

      private double mwC7plus
      Molecular weight of C7+ fraction (g/mol).
    • densityC7plus

      private double densityC7plus
      Density of C7+ fraction at standard conditions (kg/m3).
    • mwAsphaltene

      private double mwAsphaltene
      Estimated molecular weight of asphaltene fraction (g/mol).
    • mwResin

      private double mwResin
      Estimated molecular weight of resin fraction (g/mol).
    • asphalteneAssociationEnergy

      private double asphalteneAssociationEnergy
      CPA association energy for asphaltene self-association (K).
    • asphalteneAssociationVolume

      private double asphalteneAssociationVolume
      CPA association volume for asphaltene.
    • resinAsphalteneAssociationEnergy

      private double resinAsphalteneAssociationEnergy
      CPA association energy for asphaltene-resin cross-association (K).
    • CII_STABLE_LIMIT

      public static final double CII_STABLE_LIMIT
      Critical CII value above which asphaltenes are unstable.
      See Also:
    • CII_UNSTABLE_LIMIT

      public static final double CII_UNSTABLE_LIMIT
      CII 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

      public void addAsphalteneComponents(SystemInterface system, double totalC7plusMoles)
      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 modify
      totalC7plusMoles - total moles of C7+ fraction to distribute
    • configureAsphalteneParameters

      private void configureAsphalteneParameters(SystemInterface system)
      Configures CPA parameters for asphaltene component in the system.
      Parameters:
      system - the thermodynamic system
    • configureResinParameters

      private void configureResinParameters(SystemInterface system)
      Configures CPA parameters for resin component in the system.
      Parameters:
      system - the thermodynamic system
    • evaluateStability

      public String 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)