Class PhaseEos

java.lang.Object
neqsim.thermo.phase.Phase
neqsim.thermo.phase.PhaseEos
All Implemented Interfaces:
Serializable, Cloneable, PhaseEosInterface, PhaseInterface, ThermodynamicConstantsInterface
Direct Known Subclasses:
PhaseAmmoniaEos, PhaseGERG2004Eos, PhaseGERG2008Eos, PhaseLeachmanEos, PhasePrEos, PhaseRK, PhaseSpanWagnerEos, PhaseSrkEos, PhaseTSTEos, PhaseVegaEos, PhaseWaterIAPWS

public abstract class PhaseEos extends Phase implements PhaseEosInterface
Abstract class PhaseEos.
Author:
Even Solbraa
See Also:
  • Field Details

    • serialVersionUID

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

      static org.apache.logging.log4j.Logger logger
      Logger object for class.
    • loc_A

      private double loc_A
    • loc_AT

      private double loc_AT
    • loc_ATT

      private double loc_ATT
    • loc_B

      private double loc_B
    • f_loc

      private double f_loc
    • g

      private double g
    • delta1

      public double delta1
    • delta2

      public double delta2
    • mixSelect

      protected EosMixingRuleHandler mixSelect
    • mixRule

      protected EosMixingRulesInterface mixRule
    • uEOS

      double uEOS
    • wEOS

      double wEOS
  • Constructor Details

    • PhaseEos

      public PhaseEos()

      Constructor for PhaseEos.

  • Method Details

    • clone

      public PhaseEos clone()

      clone.

      Specified by:
      clone in interface PhaseInterface
      Overrides:
      clone in class Phase
      Returns:
      a PhaseInterface object
    • displayInteractionCoefficients

      public void displayInteractionCoefficients(String intType)

      displayInteractionCoefficients.

      Specified by:
      displayInteractionCoefficients in interface PhaseEosInterface
      Parameters:
      intType - a String object
    • init

      public void init(double totalNumberOfMoles, int numberOfComponents, int initType, PhaseType pt, double beta)

      init.

      initType used in component.init()

      Calls component.init(initType)

      Specified by:
      init in interface PhaseInterface
      Overrides:
      init in class Phase
      Parameters:
      totalNumberOfMoles - Total number of moles in all phases of Stream.
      numberOfComponents - Number of components in system.
      initType - a int. Use 0 to init, and 1 to reset.
      pt - Type of phase.
      beta - Mole fraction of this phase in system.
    • getMixingRule

      public EosMixingRulesInterface getMixingRule()
      Get mixing rule.
      Specified by:
      getMixingRule in interface PhaseInterface
      Returns:
      a MixingRulesInterface
    • getEosMixingRule

      public EosMixingRulesInterface getEosMixingRule()

      getEosMixingRule.

      Specified by:
      getEosMixingRule in interface PhaseEosInterface
      Returns:
      a EosMixingRulesInterface object
    • setMixingRule

      public void setMixingRule(MixingRuleTypeInterface mr)

      setMixingRule.

      Specified by:
      setMixingRule in interface PhaseInterface
      Parameters:
      mr - a MixingRuleTypeInterface
    • setMixingRuleGEModel

      public void setMixingRuleGEModel(String name)

      setMixingRuleGEModel.

      Specified by:
      setMixingRuleGEModel in interface PhaseInterface
      Parameters:
      name - a String object
    • resetMixingRule

      public void resetMixingRule(MixingRuleTypeInterface mr)

      resetMixingRule.

      Specified by:
      resetMixingRule in interface PhaseInterface
      Parameters:
      mr - a int
    • molarVolume2

      public double molarVolume2(double pressure, double temperature, double A, double B, PhaseType pt) throws IsNaNException, TooManyIterationsException

      molarVolume2.

      Parameters:
      pressure - a double
      temperature - a double
      A - a double
      B - a double
      pt - the PhaseType of the phase
      Returns:
      a double
      Throws:
      IsNaNException - if any.
      TooManyIterationsException - if any.
    • molarVolumeAnalytical

      private double molarVolumeAnalytical(double pressure, double temperature, PhaseType pt) throws IsNaNException
      Analytic molar volume solver for cubic equations of state. Used as a fallback when the numerical solver does not converge.
      Parameters:
      pressure - system pressure
      temperature - system temperature
      pt - phase type (gas or liquid)
      Returns:
      molar volume [m3/mol * 1e5]
      Throws:
      IsNaNException - if no real roots are found
    • solveCubic

      private double[] solveCubic(double c2, double c1, double c0)
      Solve cubic equation z^3 + c2*z^2 + c1*z + c0 = 0 using Cardano's method.
      Parameters:
      c2 - coefficient for z^2
      c1 - coefficient for z
      c0 - constant term
      Returns:
      array containing real roots (non-real roots returned as NaN)
    • molarVolume

      public double molarVolume(double pressure, double temperature, double A, double B, PhaseType pt) throws IsNaNException, TooManyIterationsException

      molarVolume.

      Specified by:
      molarVolume in interface PhaseInterface
      Parameters:
      pressure - a double
      temperature - a double
      A - a double
      B - a double
      pt - the PhaseType of the phase
      Returns:
      a double
      Throws:
      IsNaNException - if any.
      TooManyIterationsException - if any.
    • getPressureRepulsive

      public double getPressureRepulsive()

      getPressureRepulsive.

      Specified by:
      getPressureRepulsive in interface PhaseEosInterface
      Returns:
      a double
    • getPressureAttractive

      public double getPressureAttractive()

      getPressureAttractive.

      Specified by:
      getPressureAttractive in interface PhaseEosInterface
      Returns:
      a double
    • getMixingRuleName

      public String getMixingRuleName()

      getMixingRuleName.

      Specified by:
      getMixingRuleName in interface PhaseEosInterface
      Returns:
      a String object
    • calcA

      public double calcA(PhaseInterface phase, double temperature, double pressure, int numbcomp)

      calcA.

      Specified by:
      calcA in interface PhaseInterface
      Overrides:
      calcA in class Phase
      Parameters:
      phase - a PhaseInterface object
      temperature - a double
      pressure - a double
      numbcomp - a int
      Returns:
      a double
    • calcB

      public double calcB(PhaseInterface phase, double temperature, double pressure, int numbcomp)

      calcB.

      Specified by:
      calcB in interface PhaseInterface
      Overrides:
      calcB in class Phase
      Parameters:
      phase - a PhaseInterface object
      temperature - a double
      pressure - a double
      numbcomp - a int
      Returns:
      a double
    • calcAi

      public double calcAi(int compNumb, PhaseInterface phase, double temperature, double pressure, int numbcomp)

      calcAi.

      Specified by:
      calcAi in interface PhaseInterface
      Overrides:
      calcAi in class Phase
      Parameters:
      compNumb - a int
      phase - a PhaseInterface object
      temperature - a double
      pressure - a double
      numbcomp - a int
      Returns:
      a double
    • calcAT

      public double calcAT(PhaseInterface phase, double temperature, double pressure, int numbcomp)

      calcAT.

      Parameters:
      phase - a PhaseInterface object
      temperature - a double
      pressure - a double
      numbcomp - a int
      Returns:
      a double
    • calcATT

      public double calcATT(PhaseInterface phase, double temperature, double pressure, int numbcomp)

      calcATT.

      Parameters:
      phase - a PhaseInterface object
      temperature - a double
      pressure - a double
      numbcomp - a int
      Returns:
      a double
    • calcAiT

      public double calcAiT(int compNumb, PhaseInterface phase, double temperature, double pressure, int numbcomp)

      calcAiT.

      Specified by:
      calcAiT in interface PhaseInterface
      Overrides:
      calcAiT in class Phase
      Parameters:
      compNumb - a int
      phase - a PhaseInterface object
      temperature - a double
      pressure - a double
      numbcomp - a int
      Returns:
      a double
    • calcAij

      public double calcAij(int compNumb, int j, PhaseInterface phase, double temperature, double pressure, int numbcomp)

      calcAij.

      Specified by:
      calcAij in interface PhaseInterface
      Overrides:
      calcAij in class Phase
      Parameters:
      compNumb - a int
      j - a int
      phase - a PhaseInterface object
      temperature - a double
      pressure - a double
      numbcomp - a int
      Returns:
      a double
    • calcBij

      public double calcBij(int compNumb, int j, PhaseInterface phase, double temperature, double pressure, int numbcomp)

      calcBij.

      Specified by:
      calcBij in interface PhaseInterface
      Overrides:
      calcBij in class Phase
      Parameters:
      compNumb - a int
      j - a int
      phase - a PhaseInterface object
      temperature - a double
      pressure - a double
      numbcomp - a int
      Returns:
      a double
    • calcBi

      public double calcBi(int compNumb, PhaseInterface phase, double temperature, double pressure, int numbcomp)

      calcBi.

      Specified by:
      calcBi in interface PhaseInterface
      Overrides:
      calcBi in class Phase
      Parameters:
      compNumb - a int
      phase - a PhaseInterface object
      temperature - a double
      pressure - a double
      numbcomp - a int
      Returns:
      a double
    • geta

      public double geta(PhaseInterface phase, double temperature, double pressure, int numbcomp)

      geta.

      Specified by:
      geta in interface PhaseInterface
      Overrides:
      geta in class Phase
      Parameters:
      phase - a PhaseInterface object
      temperature - a double
      pressure - a double
      numbcomp - a int
      Returns:
      a double
    • geta

      double geta()
      Get a.
      Returns:
      double
    • getA

      public double getA()

      getA.

      Specified by:
      getA in interface PhaseInterface
      Overrides:
      getA in class Phase
      Returns:
      a double
    • getb

      double getb()
      getb.
      Returns:
      double
    • getb

      public double getb(PhaseInterface phase, double temperature, double pressure, int numbcomp)

      getb.

      Specified by:
      getb in interface PhaseInterface
      Overrides:
      getb in class Phase
      Parameters:
      phase - a PhaseInterface object
      temperature - a double
      pressure - a double
      numbcomp - a int
      Returns:
      a double
    • getB

      public double getB()

      getB.

      Specified by:
      getB in interface PhaseInterface
      Overrides:
      getB in class Phase
      Returns:
      a double
    • getAT

      public double getAT()

      getAT.

      Specified by:
      getAT in interface PhaseInterface
      Overrides:
      getAT in class Phase
      Returns:
      a double
    • getATT

      public double getATT()

      getATT.

      Specified by:
      getATT in interface PhaseInterface
      Overrides:
      getATT in class Phase
      Returns:
      a double
    • getAresTV

      public double getAresTV()

      getAresTV.

      Specified by:
      getAresTV in interface PhaseEosInterface
      Returns:
      a double
    • getGresTP

      public double getGresTP()

      getGresTP.

      Specified by:
      getGresTP in interface PhaseInterface
      Overrides:
      getGresTP in class Phase
      Returns:
      a double
    • getSresTV

      public double getSresTV()

      getSresTV.

      Specified by:
      getSresTV in interface PhaseEosInterface
      Overrides:
      getSresTV in class Phase
      Returns:
      a double
    • getSresTP

      public double getSresTP()

      getSresTP.

      Specified by:
      getSresTP in interface PhaseInterface
      Overrides:
      getSresTP in class Phase
      Returns:
      a double
    • getHresTP

      public double getHresTP()

      getHresTP.

      Specified by:
      getHresTP in interface PhaseInterface
      Overrides:
      getHresTP in class Phase
      Returns:
      a double
    • getHresdP

      public double getHresdP()

      getHresdP.

      Overrides:
      getHresdP in class Phase
      Returns:
      a double
    • getCvres

      public double getCvres()

      getCvres.

      Overrides:
      getCvres in class Phase
      Returns:
      a double
    • getCpres

      public double getCpres()

      getCpres.

      Specified by:
      getCpres in interface PhaseInterface
      Overrides:
      getCpres in class Phase
      Returns:
      a double
    • getKappa

      public double getKappa()
      method to return real gas isentropic exponent (kappa = - Cp/Cv*(v/p)*dp/dv method to return heat capacity ratio/adiabatic index/Poisson constant.

      method to return real gas isentropic exponent (kappa = - Cp/Cv*(v/p)*dp/dv

      Specified by:
      getKappa in interface PhaseInterface
      Overrides:
      getKappa in class Phase
      Returns:
      kappa
    • getJouleThomsonCoefficient

      public double getJouleThomsonCoefficient()
      Get the Joule Thomson Coefficient of a phase.
      Specified by:
      getJouleThomsonCoefficient in interface PhaseInterface
      Overrides:
      getJouleThomsonCoefficient in class Phase
      Returns:
      Joule Thomson coefficient in K/bar
    • getdPdTVn

      public double getdPdTVn()

      getdPdTVn.

      Specified by:
      getdPdTVn in interface PhaseInterface
      Overrides:
      getdPdTVn in class Phase
      Returns:
      a double
    • getdPdVTn

      public double getdPdVTn()

      getdPdVTn.

      Specified by:
      getdPdVTn in interface PhaseInterface
      Overrides:
      getdPdVTn in class Phase
      Returns:
      a double
    • getdPdrho

      public double getdPdrho()

      getdPdrho.

      Specified by:
      getdPdrho in interface PhaseInterface
      Overrides:
      getdPdrho in class Phase
      Returns:
      a double
    • getdrhodP

      public double getdrhodP()

      getdrhodP.

      Specified by:
      getdrhodP in interface PhaseInterface
      Overrides:
      getdrhodP in class Phase
      Returns:
      a double
    • getdrhodT

      public double getdrhodT()

      getdrhodT.

      Specified by:
      getdrhodT in interface PhaseInterface
      Overrides:
      getdrhodT in class Phase
      Returns:
      a double
    • getdrhodN

      public double getdrhodN()

      getdrhodN.

      Specified by:
      getdrhodN in interface PhaseInterface
      Overrides:
      getdrhodN in class Phase
      Returns:
      a double
    • getdVdrho

      public double getdVdrho()

      getdVdrho.

      Returns:
      a double
    • getg

      public double getg()

      getg.

      Specified by:
      getg in interface PhaseInterface
      Overrides:
      getg in class Phase
      Returns:
      a double
    • getf_loc

      public double getf_loc()

      Getter for the field f_loc.

      Returns:
      a double
    • calcg

      public double calcg()

      calcg.

      Returns:
      a double
    • calcf

      public double calcf()

      calcf.

      Returns:
      a double
    • getF

      public double getF()

      getF.

      Returns:
      a double
    • F

      public double F()

      F.

      Specified by:
      F in interface PhaseEosInterface
      Returns:
      a double
    • Fn

      public double Fn()

      Fn.

      Specified by:
      Fn in interface PhaseInterface
      Overrides:
      Fn in class Phase
      Returns:
      a double
    • FT

      public double FT()

      FT.

      Specified by:
      FT in interface PhaseInterface
      Overrides:
      FT in class Phase
      Returns:
      a double
    • FV

      public double FV()

      FV.

      Specified by:
      FV in interface PhaseInterface
      Overrides:
      FV in class Phase
      Returns:
      a double
    • FD

      public double FD()

      FD.

      Specified by:
      FD in interface PhaseInterface
      Overrides:
      FD in class Phase
      Returns:
      a double
    • FB

      public double FB()

      FB.

      Specified by:
      FB in interface PhaseInterface
      Overrides:
      FB in class Phase
      Returns:
      a double
    • gb

      public double gb()

      gb.

      Specified by:
      gb in interface PhaseInterface
      Overrides:
      gb in class Phase
      Returns:
      a double
    • fb

      public double fb()

      fb.

      Specified by:
      fb in interface PhaseInterface
      Overrides:
      fb in class Phase
      Returns:
      a double
    • gV

      public double gV()

      gV.

      Specified by:
      gV in interface PhaseInterface
      Overrides:
      gV in class Phase
      Returns:
      a double
    • fv

      public double fv()

      fv.

      Specified by:
      fv in interface PhaseInterface
      Overrides:
      fv in class Phase
      Returns:
      a double
    • FnV

      public double FnV()

      FnV.

      Specified by:
      FnV in interface PhaseInterface
      Overrides:
      FnV in class Phase
      Returns:
      a double
    • FnB

      public double FnB()

      FnB.

      Specified by:
      FnB in interface PhaseInterface
      Overrides:
      FnB in class Phase
      Returns:
      a double
    • FTT

      public double FTT()

      FTT.

      Specified by:
      FTT in interface PhaseInterface
      Overrides:
      FTT in class Phase
      Returns:
      a double
    • FBT

      public double FBT()

      FBT.

      Specified by:
      FBT in interface PhaseInterface
      Overrides:
      FBT in class Phase
      Returns:
      a double
    • FDT

      public double FDT()

      FDT.

      Specified by:
      FDT in interface PhaseInterface
      Overrides:
      FDT in class Phase
      Returns:
      a double
    • FBV

      public double FBV()

      FBV.

      Specified by:
      FBV in interface PhaseInterface
      Overrides:
      FBV in class Phase
      Returns:
      a double
    • FBB

      public double FBB()

      FBB.

      Specified by:
      FBB in interface PhaseInterface
      Overrides:
      FBB in class Phase
      Returns:
      a double
    • FDV

      public double FDV()

      FDV.

      Specified by:
      FDV in interface PhaseInterface
      Overrides:
      FDV in class Phase
      Returns:
      a double
    • FBD

      public double FBD()

      FBD.

      Specified by:
      FBD in interface PhaseInterface
      Overrides:
      FBD in class Phase
      Returns:
      a double
    • FTV

      public double FTV()

      FTV.

      Specified by:
      FTV in interface PhaseInterface
      Overrides:
      FTV in class Phase
      Returns:
      a double
    • FVV

      public double FVV()

      FVV.

      Specified by:
      FVV in interface PhaseInterface
      Overrides:
      FVV in class Phase
      Returns:
      a double
    • FVVV

      public double FVVV()

      FVVV.

      Returns:
      a double
    • gVV

      public double gVV()

      gVV.

      Specified by:
      gVV in interface PhaseInterface
      Overrides:
      gVV in class Phase
      Returns:
      a double
    • gVVV

      public double gVVV()

      gVVV.

      Returns:
      a double
    • gBV

      public double gBV()

      gBV.

      Specified by:
      gBV in interface PhaseInterface
      Overrides:
      gBV in class Phase
      Returns:
      a double
    • gBB

      public double gBB()

      gBB.

      Specified by:
      gBB in interface PhaseInterface
      Overrides:
      gBB in class Phase
      Returns:
      a double
    • fVV

      public double fVV()

      fVV.

      Specified by:
      fVV in interface PhaseInterface
      Overrides:
      fVV in class Phase
      Returns:
      a double
    • fVVV

      public double fVVV()

      fVVV.

      Returns:
      a double
    • fBV

      public double fBV()

      fBV.

      Specified by:
      fBV in interface PhaseInterface
      Overrides:
      fBV in class Phase
      Returns:
      a double
    • fBB

      public double fBB()

      fBB.

      Specified by:
      fBB in interface PhaseInterface
      Overrides:
      fBB in class Phase
      Returns:
      a double
    • dFdT

      public double dFdT()

      Calculate derivative of F per Temperature, i.e., dF/dT.

      Specified by:
      dFdT in interface PhaseInterface
      Overrides:
      dFdT in class Phase
      Returns:
      a double
    • dFdV

      public double dFdV()

      Calculate derivative of F per Volume, i.e., dF/dV.

      Specified by:
      dFdV in interface PhaseInterface
      Overrides:
      dFdV in class Phase
      Returns:
      a double
    • dFdTdV

      public double dFdTdV()

      Calculate derivative of F per Temperature and Volume, i.e., dF/dT * 1/dV.

      Specified by:
      dFdTdV in interface PhaseInterface
      Overrides:
      dFdTdV in class Phase
      Returns:
      a double
    • dFdVdV

      public double dFdVdV()

      dFdVdV.

      Specified by:
      dFdVdV in interface PhaseInterface
      Overrides:
      dFdVdV in class Phase
      Returns:
      a double
    • dFdVdVdV

      public double dFdVdVdV()

      dFdVdVdV.

      Returns:
      a double
    • dFdTdT

      public double dFdTdT()

      dFdTdT.

      Specified by:
      dFdTdT in interface PhaseInterface
      Overrides:
      dFdTdT in class Phase
      Returns:
      a double
    • calcPressure

      public double calcPressure()

      calcPressure.

      Specified by:
      calcPressure in interface PhaseEosInterface
      Returns:
      a double
    • calcPressuredV

      public double calcPressuredV()

      calcPressuredV.

      Specified by:
      calcPressuredV in interface PhaseEosInterface
      Returns:
      a double
    • getSoundSpeed

      public double getSoundSpeed()
      Get the speed of sound of a phase note: implemented in phaseEos.
      Specified by:
      getSoundSpeed in interface PhaseInterface
      Specified by:
      getSoundSpeed in class Phase
      Returns:
      speed of sound in m/s
    • getdUdSVn

      public double getdUdSVn()

      getdUdSVn.

      Returns:
      a double
    • getdUdVSn

      public double getdUdVSn()

      getdUdVSn.

      Returns:
      a double
    • getdUdSdSVn

      public double getdUdSdSVn()

      getdUdSdSVn.

      Returns:
      a double
    • getdUdVdVSn

      public double getdUdVdVSn(PhaseInterface phase)

      getdUdVdVSn.

      Parameters:
      phase - a PhaseInterface object
      Returns:
      a double
    • getdUdSdVn

      public double getdUdSdVn(PhaseInterface phase)

      getdUdSdVn.

      Parameters:
      phase - a PhaseInterface object
      Returns:
      a double
    • getdTVndSVnJaobiMatrix

      public double[][] getdTVndSVnJaobiMatrix()

      getdTVndSVnJaobiMatrix.

      Returns:
      an array of type double
    • getGradientVector

      public double[] getGradientVector()

      getGradientVector.

      Returns:
      an array of type double
    • getUSVHessianMatrix

      public double[][] getUSVHessianMatrix()

      getUSVHessianMatrix.

      Returns:
      an array of type double
    • dFdxMatrixSimple

      public double[] dFdxMatrixSimple()

      dFdxMatrixSimple.

      Returns:
      an array of type double
    • dFdxMatrix

      public double[] dFdxMatrix()

      dFdxMatrix.

      Returns:
      an array of type double
    • dFdxdxMatrixSimple

      public double[][] dFdxdxMatrixSimple()

      dFdxdxMatrixSimple.

      Returns:
      an array of type double
    • dFdxdxMatrix

      public double[][] dFdxdxMatrix()

      dFdxdxMatrix.

      Returns:
      an array of type double
    • dFdN

      public double dFdN(int i)

      dFdN.

      Specified by:
      dFdN in interface PhaseEosInterface
      Parameters:
      i - a int
      Returns:
      a double
    • dFdNdN

      public double dFdNdN(int i, int j)

      dFdNdN.

      Specified by:
      dFdNdN in interface PhaseEosInterface
      Parameters:
      i - a int
      j - a int
      Returns:
      a double
    • dFdNdV

      public double dFdNdV(int i)

      dFdNdV.

      Specified by:
      dFdNdV in interface PhaseEosInterface
      Parameters:
      i - a int
      Returns:
      a double
    • dFdNdT

      public double dFdNdT(int i)

      dFdNdT.

      Specified by:
      dFdNdT in interface PhaseEosInterface
      Parameters:
      i - a int
      Returns:
      a double
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Phase