Class PhaseAmmoniaEos

All Implemented Interfaces:
Serializable, Cloneable, PhaseEosInterface, PhaseInterface, ThermodynamicConstantsInterface

public class PhaseAmmoniaEos extends PhaseEos
Phase implementation for the Ammonia2023 reference equation of state based on a multiparameter Helmholtz energy formulation. Thermodynamic properties are evaluated from ideal and residual Helmholtz energy derivatives provided by Ammonia2023.
Author:
esol
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • ammoniaUtil

      private transient Ammonia2023 ammoniaUtil
    • enthalpy

      private double enthalpy
    • entropy

      private double entropy
    • gibbsEnergy

      private double gibbsEnergy
    • Cp

      private double Cp
    • Cv

      private double Cv
    • internalEnergy

      private double internalEnergy
    • JTcoef

      private double JTcoef
    • kappa

      private double kappa
    • W

      private double W
    • a0

      private org.netlib.util.doubleW[] a0
    • ar

      private org.netlib.util.doubleW[][] ar
  • Constructor Details

    • PhaseAmmoniaEos

      public PhaseAmmoniaEos()

      Constructor for PhaseAmmoniaEos.

  • Method Details

    • clone

      public PhaseAmmoniaEos clone()

      clone.

      Specified by:
      clone in interface PhaseInterface
      Overrides:
      clone in class PhaseEos
      Returns:
      a PhaseInterface object
    • addComponent

      public void addComponent(String name, double moles, double molesInPhase, int compNumber)

      Add component to component array and update moles variables.

      Parameters:
      name - Name of component.
      moles - Total number of moles of component.
      molesInPhase - Number of moles in phase.
      compNumber - Index number of component in phase object component array.
    • 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 PhaseEos
      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.
    • getGibbsEnergy

      public double getGibbsEnergy()

      getGibbsEnergy.

      Specified by:
      getGibbsEnergy in interface PhaseInterface
      Overrides:
      getGibbsEnergy in class Phase
      Returns:
      a double
    • getJouleThomsonCoefficient

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

      public double getEnthalpy()
      method to return enthalpy of a phase in unit Joule.
      Specified by:
      getEnthalpy in interface PhaseInterface
      Overrides:
      getEnthalpy in class Phase
      Returns:
      a double
    • getEntropy

      public double getEntropy()
      method to return entropy of the phase.
      Specified by:
      getEntropy in interface PhaseInterface
      Overrides:
      getEntropy in class Phase
      Returns:
      a double
    • getInternalEnergy

      public double getInternalEnergy()

      getInternalEnergy.

      Specified by:
      getInternalEnergy in interface PhaseInterface
      Overrides:
      getInternalEnergy in class Phase
      Returns:
      a double
    • getCp

      public double getCp()
      method to return specific heat capacity (Cp).
      Specified by:
      getCp in interface PhaseInterface
      Overrides:
      getCp in class Phase
      Returns:
      Cp in unit J/K
    • getCv

      public double getCv()
      method to return specific heat capacity (Cv).
      Specified by:
      getCv in interface PhaseInterface
      Overrides:
      getCv in class Phase
      Returns:
      Cv in unit J/K
    • getViscosity

      public double getViscosity()
      method to return viscosity of the phase.
      Specified by:
      getViscosity in interface PhaseInterface
      Overrides:
      getViscosity in class Phase
      Returns:
      viscosity in unit kg/msec
    • getThermalConductivity

      public double getThermalConductivity()
      method to return conductivity of a phase.
      Specified by:
      getThermalConductivity in interface PhaseInterface
      Overrides:
      getThermalConductivity in class Phase
      Returns:
      conductivity in unit W/m*K
    • molarVolume

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

      molarVolume.

      Specified by:
      molarVolume in interface PhaseInterface
      Overrides:
      molarVolume in class PhaseEos
      Parameters:
      pressure - a double
      temperature - a double
      A - a double
      B - a double
      pt - the PhaseType of the phase
      Returns:
      a double
    • calcPressure

      public double calcPressure()

      calcPressure.

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

      public double calcPressuredV()

      calcPressuredV.

      Specified by:
      calcPressuredV in interface PhaseEosInterface
      Overrides:
      calcPressuredV in class PhaseEos
      Returns:
      a double
    • dFdN

      public double dFdN(int i)

      dFdN.

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

      public double dFdNdN(int i, int j)

      dFdNdN.

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

      public double dFdNdV(int i)

      dFdNdV.

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

      public double dFdNdT(int i)

      dFdNdT.

      Specified by:
      dFdNdT in interface PhaseEosInterface
      Overrides:
      dFdNdT in class PhaseEos
      Parameters:
      i - a int
      Returns:
      a double
    • getDensity

      public double getDensity()
      Get density of a phase note: does not use Peneloux volume correction.
      Specified by:
      getDensity in interface PhaseInterface
      Overrides:
      getDensity in class Phase
      Returns:
      density with unit kg/m3
    • getAlpha0

      public org.netlib.util.doubleW[] getAlpha0()

      getAlpha0.

      Returns:
      an array of doubleW objects
    • getAlphares

      public org.netlib.util.doubleW[][] getAlphares()

      getAlphares.

      Returns:
      an array of doubleW objects
    • getHresTP

      public double getHresTP()

      getHresTP.

      Specified by:
      getHresTP in interface PhaseInterface
      Overrides:
      getHresTP in class PhaseEos
      Returns:
      a double
    • getdPdTVn

      public double getdPdTVn()

      getdPdTVn.

      Specified by:
      getdPdTVn in interface PhaseInterface
      Overrides:
      getdPdTVn in class PhaseEos
      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
      Overrides:
      getSoundSpeed in class PhaseEos
      Returns:
      speed of sound in m/s
    • getIsothermalCompressibility

      public double getIsothermalCompressibility()
      Return the isothermal compressibility in 1/Pa as evaluated by the Ammonia2023 helper.
      Specified by:
      getIsothermalCompressibility in interface PhaseInterface
      Overrides:
      getIsothermalCompressibility in class Phase
      Returns:
      isothermal compressibility (1/Pa)