Class ComponentPR

All Implemented Interfaces:
Serializable, Cloneable, ComponentEosInterface, ComponentInterface, ThermodynamicConstantsInterface
Direct Known Subclasses:
ComponentBNS, ComponentPrCPA, ComponentPRvolcor, ComponentSoreideWhitson, ComponentUMRCPA

public class ComponentPR extends ComponentEos

ComponentPR class.

Version:
$Id: $Id
Author:
Even Solbraa
See Also:
  • Field Details

    • serialVersionUID

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

      private static final double CACHADINA_N
      Universal exponent from 3D Ising model critical exponent beta = 0.326. n = 8 * beta - 3 = -0.392. Used in Cachadina et al. (2024) correlation.
      See Also:
    • CACHADINA_M0_CONST

      private static final double CACHADINA_M0_CONST
      Constant model coefficient m0 in mol^(2/3). From Cachadina et al. (2024) Table 3.
      See Also:
    • CACHADINA_M1_CONST

      private static final double CACHADINA_M1_CONST
      Constant model coefficient m1 in mol^(2/3). From Cachadina et al. (2024) Table 3.
      See Also:
    • CACHADINA_M2_CONST

      private static final double CACHADINA_M2_CONST
      Constant model coefficient m2 in mol^(2/3). From Cachadina et al. (2024) Table 3.
      See Also:
    • influenceParameterModel

      private int influenceParameterModel
      Influence parameter model type for gradient theory surface tension. 0 = Linear Zuo-Stenby (default), 1 = Cachadina et al. (2024) three-coefficient model.
    • cachadinaCoeff

      private double[] cachadinaCoeff
      Per-fluid Cachadina influence parameter coefficients [m0, m1, m2]. Units: mol^(2/3). When null, the general constant model is used.
  • Constructor Details

    • ComponentPR

      public ComponentPR(String name, double moles, double molesInPhase, int compIndex)

      Constructor for ComponentPR.

      Parameters:
      name - Name of component.
      moles - Total number of moles of component.
      molesInPhase - Number of moles in phase.
      compIndex - Index number of component in phase object component array.
    • ComponentPR

      public ComponentPR(int number, double TC, double PC, double M, double a, double moles)

      Constructor for ComponentPR.

      Parameters:
      number - a int. Not used.
      TC - Critical temperature [K]
      PC - Critical pressure [bara]
      M - Molar mass
      a - Acentric factor
      moles - Total number of moles of component.
  • Method Details

    • clone

      public ComponentPR clone()

      clone.

      Specified by:
      clone in interface ComponentInterface
      Overrides:
      clone in class ComponentEos
      Returns:
      a ComponentInterface object
    • calca

      public double calca()

      calca.

      Specified by:
      calca in interface ComponentEosInterface
      Specified by:
      calca in class ComponentEos
      Returns:
      a double
    • calcb

      public double calcb()

      calcb.

      Specified by:
      calcb in interface ComponentEosInterface
      Specified by:
      calcb in class ComponentEos
      Returns:
      a double
    • getVolumeCorrection

      public double getVolumeCorrection()

      getVolumeCorrection.

      Specified by:
      getVolumeCorrection in interface ComponentInterface
      Overrides:
      getVolumeCorrection in class Component
      Returns:
      a double
    • getQpure

      public double getQpure(double temperature)

      getQpure.

      Parameters:
      temperature - a double
      Returns:
      a double
    • getdQpuredT

      public double getdQpuredT(double temperature)

      getdQpuredT.

      Parameters:
      temperature - a double
      Returns:
      a double
    • getdQpuredTdT

      public double getdQpuredTdT(double temperature)

      getdQpuredTdT.

      Parameters:
      temperature - a double
      Returns:
      a double
    • getSurfaceTenisionInfluenceParameter

      public double getSurfaceTenisionInfluenceParameter(double temperature)

      getSurfaceTenisionInfluenceParameter.

      Specified by:
      getSurfaceTenisionInfluenceParameter in interface ComponentInterface
      Overrides:
      getSurfaceTenisionInfluenceParameter in class ComponentEos
      Parameters:
      temperature - a double
      Returns:
      a double
    • calcCachadinaInfluenceParameter

      private double calcCachadinaInfluenceParameter(double temperature)
      Calculates the influence parameter using the Cachadina et al. (2024) three-coefficient correlation with universal exponent from the 3D Ising model.

      The reduced influence parameter c* is calculated using Eq. 20: c*(t) = m0*(t^n - 1) + m1 + (m2 - n*m0)*(t-1) - 0.5*n*(n-1)*m0*(t-1)^2 where t = (Tc - T)/(Tc - Tt) is the reduced temperature and n = -0.392.

      Reference: Cachadina, I.; Maghari, A.; Generino, J.; Mulero, A. (2024). "New Correlations for the Influence Parameter and the Calculation of the Surface Tension of Normal Alkanes Using Gradient Theory with PR78." Molecules 29, 5643.

      Parameters:
      temperature - temperature in Kelvin
      Returns:
      influence parameter c in J*m^5/mol^2 (SI derived units)
    • setInfluenceParameterModel

      public void setInfluenceParameterModel(int model)
      Sets the influence parameter model type for gradient theory surface tension calculations.
      Parameters:
      model - 0 for linear Zuo-Stenby (default), 1 for Cachadina et al. (2024) three-coefficient model
    • getInfluenceParameterModel

      public int getInfluenceParameterModel()
      Gets the influence parameter model type.
      Returns:
      0 for linear Zuo-Stenby, 1 for Cachadina et al. (2024)
    • setCachadinaInfluenceParameters

      public void setCachadinaInfluenceParameters(double m0, double m1, double m2)
      Sets per-fluid Cachadina influence parameter coefficients. When set, these override the general constant model in the Cachadina (2024) correlation.
      Parameters:
      m0 - coefficient m0 in mol^(2/3), controls non-linear behavior near critical point
      m1 - coefficient m1 in mol^(2/3), value at triple point
      m2 - coefficient m2 in mol^(2/3), linear slope correction
    • getCachadinaInfluenceParameters

      public double[] getCachadinaInfluenceParameters()
      Gets the per-fluid Cachadina influence parameter coefficients.
      Returns:
      array [m0, m1, m2] in mol^(2/3), or null if using default constant model