Class PhaseSpanWagnerEos
java.lang.Object
neqsim.thermo.phase.Phase
neqsim.thermo.phase.PhaseEos
neqsim.thermo.phase.PhaseSpanWagnerEos
- All Implemented Interfaces:
Serializable, Cloneable, PhaseEosInterface, PhaseInterface, ThermodynamicConstantsInterface
Phase implementation using the Span-Wagner reference equation for CO2.
- Author:
- esol
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate booleanprivate static final longprivate doubleFields inherited from class Phase
beta, calcMolarVolume, chemSyst, componentArray, diElectricConstant, mixingRuleType, molarVolume, numberOfComponents, numberOfMolesInPhase, phaseVolume, physicalPropertyHandler, pressure, pt, refPhase, temperature, thermoPropertyModelName, useVolumeCorrection, ZFields inherited from interface ThermodynamicConstantsInterface
atm, avagadroNumber, boltzmannConstant, electronCharge, faradayConstant, gravity, molarMassAir, normalStateTemperature, pi, planckConstant, R, referencePressure, referenceTemperature, standardStateTemperature, vacumPermittivity -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddComponent(String name, double moles, double molesInPhase, int compNumber) Add component to component array and update moles variables.private voidCache the current thermodynamic state for change detection.clone()clone.doublegetCp()method to return specific heat capacity (Cp).doublegetCv()method to return specific heat capacity (Cv).doubleGet density of a phase note: does not use Peneloux volume correction.doublegetDensity(String unit) Get density of a fluid note: with Peneloux volume correction.doublemethod to return enthalpy of a phase in unit Joule.doublemethod to return entropy of the phase.doublegetGibbsEnergy.doublegetInternalEnergy.doubleGet the Joule Thomson Coefficient of a phase.doubleGet the speed of sound of a phase note: implemented in phaseEos.doublegetZ()getZ.private booleanCheck if the thermodynamic state (T, P) has changed since last calculation.voidinit.voidInvalidate the cached state, forcing recalculation on next init.doublemolarVolume(double pressure, double temperature, double A, double B, PhaseType pt) molarVolume.Methods inherited from class PhaseEos
calcA, calcAi, calcAij, calcAiT, calcAT, calcATT, calcB, calcBi, calcBij, calcf, calcg, calcPressure, calcPressuredV, dFdN, dFdNdN, dFdNdT, dFdNdV, dFdT, dFdTdT, dFdTdV, dFdV, dFdVdV, dFdVdVdV, dFdxdxMatrix, dFdxdxMatrixSimple, dFdxMatrix, dFdxMatrixSimple, displayInteractionCoefficients, equals, F, fb, FB, fBB, FBB, FBD, FBT, fBV, FBV, FD, FDT, FDV, Fn, FnB, FnV, FT, FTT, FTV, fv, FV, fVV, FVV, fVVV, FVVV, gb, gBB, gBV, geta, geta, getA, getAresTV, getAT, getATT, getb, getb, getB, getCpres, getCvres, getdPdrho, getdPdTVn, getdPdVTn, getdrhodN, getdrhodP, getdrhodT, getdTVndSVnJaobiMatrix, getdUdSdSVn, getdUdSdVn, getdUdSVn, getdUdVdVSn, getdUdVSn, getdVdrho, getEosMixingRule, getF, getf_loc, getg, getGradientVector, getGresTP, getHresdP, getHresTP, getKappa, getMixingRule, getMixingRuleName, getPressureAttractive, getPressureRepulsive, getSresTP, getSresTV, getUSVHessianMatrix, gV, gVV, gVVV, molarVolume2, resetMixingRule, setMixingRule, setMixingRuleGEModelMethods inherited from class Phase
addComponent, addMoles, addMolesChemReac, calcA, calcAT, calcDiElectricConstant, calcDiElectricConstantdT, calcDiElectricConstantdTdT, calcMolarVolume, calcR, getActivityCoefficient, getActivityCoefficient, getActivityCoefficient, getActivityCoefficientSymetric, getActivityCoefficientUnSymetric, getAiT, getAlpha0_EOSCG, getAlpha0_GERG2008, getAlpha0_Leachman, getAlpha0_Leachman, getAlpha0_Vega, getAlphares_EOSCG, getAlphares_GERG2008, getAlphares_Leachman, getAlphares_Leachman, getAlphares_Vega, getAntoineVaporPressure, getBeta, getBi, getComponent, getComponent, getcomponentArray, getComponentNames, getComponents, getComponentWithIndex, getComposition, getCompressibilityX, getCompressibilityY, getCorrectedVolume, getCp, getCp0, getCv, getDensity_AGA8, getDensity_EOSCG, getDensity_GERG2008, getDensity_Leachman, getDensity_Leachman, getDensity_Vega, getDiElectricConstant, getEnthalpy, getEnthalpydP, getEnthalpydT, getEntropy, getEntropydP, getEntropydT, getExcessGibbsEnergy, getExcessGibbsEnergySymetric, getFlowRate, getFugacity, getFugacity, getGamma, getHelmholtzEnergy, getHID, getInfiniteDiluteFugacity, getInfiniteDiluteFugacity, getInitType, getInternalEnergy, getIsobaricThermalExpansivity, getIsothermalCompressibility, getJouleThomsonCoefficient, getLogActivityCoefficient, getLogInfiniteDiluteFugacity, getLogInfiniteDiluteFugacity, getLogPureComponentFugacity, getLogPureComponentFugacity, getMass, getMeanIonicActivity, getMixGibbsEnergy, getMixingRuleType, getModelName, getMolalMeanIonicActivity, getMolarComposition, getMolarMass, getMolarMass, getMolarVolume, getMolarVolume, getMoleFraction, getNumberOfComponents, getNumberOfIonicComponents, getNumberOfMolecularComponents, getNumberOfMolesInPhase, getOsmoticCoefficient, getOsmoticCoefficientOfWater, getOsmoticCoefficientOfWaterMolality, getpH, getpH, getPhase, getPhysicalProperties, getPhysicalPropertyModel, getPressure, getPressure, getProperties_EOSCG, getProperties_GERG2008, getProperties_Leachman, getProperties_Leachman, getProperties_Vega, getPseudoCriticalPressure, getPseudoCriticalTemperature, getPureComponentFugacity, getPureComponentFugacity, getRefPhase, getRefPhase, getSoundSpeed, getTemperature, getTemperature, getThermalConductivity, getThermalConductivity, getThermoPropertyModelName, getTotalVolume, getType, getViscosity, getViscosity, getVolume, getVolume, getWaterDensity, getWtFrac, getWtFrac, getWtFraction, getWtFractionOfWaxFormingComponents, getZvolcorr, groupTBPfractions, hasComponent, hasPlusFraction, hasTBPFraction, initPhysicalProperties, initPhysicalProperties, initRefPhases, initRefPhases, isConstantPhaseVolume, isMixingRuleDefined, normalize, removeComponent, resetPhysicalProperties, setAttractiveTerm, setBeta, setComponentArray, setConstantPhaseVolume, setEmptyFluid, setInitType, setMolarVolume, setMoleFractions, setNumberOfComponents, setParams, setPhysicalProperties, setPhysicalPropertyModel, setPpm, setPressure, setProperties, setRefPhase, setRefPhase, setTemperature, setTotalVolume, setType, useVolumeCorrection, useVolumeCorrectionMethods inherited from class Object
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface PhaseEosInterface
getMolarVolumeMethods inherited from interface PhaseInterface
addMoles, addMolesChemReac, addMolesChemReac, calcAT, calcMolarVolume, calcR, getActivityCoefficient, getActivityCoefficient, getActivityCoefficient, getActivityCoefficientSymetric, getActivityCoefficientUnSymetric, getAlpha0_EOSCG, getAlpha0_GERG2008, getAlpha0_Leachman, getAlpha0_Leachman, getAlpha0_Vega, getAlphares_EOSCG, getAlphares_GERG2008, getAlphares_Leachman, getAlphares_Leachman, getAlphares_Vega, getAntoineVaporPressure, getBeta, getComponent, getComponent, getcomponentArray, getComponentNames, getComponents, getComponentWithIndex, getComposition, getCompressibilityX, getCompressibilityY, getCorrectedVolume, getCp, getCp0, getCv, getDensity_AGA8, getDensity_EOSCG, getDensity_GERG2008, getDensity_Leachman, getDensity_Leachman, getDensity_Vega, getEnthalpy, getEnthalpydP, getEnthalpydT, getEntropy, getEntropydP, getEntropydT, getExcessGibbsEnergy, getExcessGibbsEnergySymetric, getFlowRate, getFugacity, getFugacity, getGamma, getGamma2, getHelmholtzEnergy, getInfiniteDiluteFugacity, getInitType, getInternalEnergy, getIsobaricThermalExpansivity, getIsothermalCompressibility, getJouleThomsonCoefficient, getLogActivityCoefficient, getLogInfiniteDiluteFugacity, getLogInfiniteDiluteFugacity, getLogPureComponentFugacity, getMass, getMeanIonicActivity, getMixGibbsEnergy, getMixingRuleType, getModelName, getMolalMeanIonicActivity, getMolarComposition, getMolarMass, getMolarMass, getMolarVolume, getMoleFraction, getNumberOfComponents, getNumberOfIonicComponents, getNumberOfMolecularComponents, getNumberOfMolesInPhase, getOsmoticCoefficient, getOsmoticCoefficientOfWater, getOsmoticCoefficientOfWaterMolality, getpH, getpH, getPhase, getPhaseFraction, getPhaseTypeName, getPhysicalProperties, getPhysicalPropertyModel, getPressure, getPressure, getProperties_EOSCG, getProperties_GERG2008, getProperties_Leachman, getProperties_Leachman, getProperties_Vega, getPseudoCriticalPressure, getPseudoCriticalTemperature, getPureComponentFugacity, getPureComponentFugacity, getRefPhase, getRefPhase, getSoundSpeed, getTemperature, getTemperature, getThermalConductivity, getThermalConductivity, getTotalVolume, getType, getViscosity, getViscosity, getVolume, getVolume, getWaterDensity, getWtFrac, getWtFrac, getWtFraction, getWtFractionOfWaxFormingComponents, getZvolcorr, hasComponent, hasComponent, hasIons, hasPlusFraction, hasTBPFraction, init, init, initPhysicalProperties, initPhysicalProperties, initPhysicalProperties, initRefPhases, isAsphalteneRich, isConstantPhaseVolume, isMixingRuleDefined, normalize, removeComponent, resetPhysicalProperties, setAttractiveTerm, setBeta, setComponentArray, setConstantPhaseVolume, setEmptyFluid, setInitType, setMixingRule, setMolarVolume, setMoleFractions, setNumberOfComponents, setParams, setPhaseTypeName, setPhysicalProperties, setPhysicalProperties, setPhysicalPropertyModel, setPpm, setPressure, setProperties, setRefPhase, setRefPhase, setTemperature, setTotalVolume, setType, useVolumeCorrection, useVolumeCorrection
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
enthalpy
private double enthalpy -
entropy
private double entropy -
gibbsEnergy
private double gibbsEnergy -
cp
private double cp -
cv
private double cv -
internalEnergy
private double internalEnergy -
soundSpeed
private double soundSpeed -
molarDensity
private double molarDensity -
jouleThomson
private double jouleThomson -
cachedTemperature
private transient double cachedTemperature -
cachedPressure
private transient double cachedPressure -
propertiesCalculated
private transient boolean propertiesCalculated
-
-
Constructor Details
-
PhaseSpanWagnerEos
public PhaseSpanWagnerEos()Constructor for PhaseSpanWagnerEos.
-
-
Method Details
-
clone
clone.
- Specified by:
clonein interfacePhaseInterface- Overrides:
clonein classPhaseEos- Returns:
- a
PhaseInterfaceobject
-
addComponent
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:
initin interfacePhaseInterface- Overrides:
initin classPhaseEos- 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.
-
hasStateChanged
private boolean hasStateChanged()Check if the thermodynamic state (T, P) has changed since last calculation.- Returns:
- true if state has changed, false if unchanged
-
cacheCurrentState
private void cacheCurrentState()Cache the current thermodynamic state for change detection. -
invalidateCache
public void invalidateCache()Invalidate the cached state, forcing recalculation on next init. -
getGibbsEnergy
public double getGibbsEnergy()getGibbsEnergy.
- Specified by:
getGibbsEnergyin interfacePhaseInterface- Overrides:
getGibbsEnergyin classPhase- Returns:
- a double
-
getZ
public double getZ()getZ.
- Specified by:
getZin interfacePhaseInterface- Overrides:
getZin classPhase- Returns:
- a double
-
getEnthalpy
public double getEnthalpy()method to return enthalpy of a phase in unit Joule.- Specified by:
getEnthalpyin interfacePhaseInterface- Overrides:
getEnthalpyin classPhase- Returns:
- a double
-
getEntropy
public double getEntropy()method to return entropy of the phase.- Specified by:
getEntropyin interfacePhaseInterface- Overrides:
getEntropyin classPhase- Returns:
- a double
-
getInternalEnergy
public double getInternalEnergy()getInternalEnergy.
- Specified by:
getInternalEnergyin interfacePhaseInterface- Overrides:
getInternalEnergyin classPhase- Returns:
- a double
-
getCp
public double getCp()method to return specific heat capacity (Cp).- Specified by:
getCpin interfacePhaseInterface- Overrides:
getCpin classPhase- Returns:
- Cp in unit J/K
-
getCv
public double getCv()method to return specific heat capacity (Cv).- Specified by:
getCvin interfacePhaseInterface- Overrides:
getCvin classPhase- Returns:
- Cv in unit J/K
-
getSoundSpeed
public double getSoundSpeed()Get the speed of sound of a phase note: implemented in phaseEos.- Specified by:
getSoundSpeedin interfacePhaseInterface- Overrides:
getSoundSpeedin classPhaseEos- Returns:
- speed of sound in m/s
-
getJouleThomsonCoefficient
public double getJouleThomsonCoefficient()Get the Joule Thomson Coefficient of a phase.- Specified by:
getJouleThomsonCoefficientin interfacePhaseInterface- Overrides:
getJouleThomsonCoefficientin classPhaseEos- Returns:
- Joule Thomson coefficient in K/bar
-
getDensity
public double getDensity()Get density of a phase note: does not use Peneloux volume correction.- Specified by:
getDensityin interfacePhaseInterface- Overrides:
getDensityin classPhase- Returns:
- density with unit kg/m3
-
getDensity
Get density of a fluid note: with Peneloux volume correction.Returns the density calculated directly from Span-Wagner equation of state.
- Specified by:
getDensityin interfacePhaseInterface- Overrides:
getDensityin classPhase- Parameters:
unit- Supported units are kg/m3, mol/m3- Returns:
- density in specified unit
-
molarVolume
Description copied from class:PhaseEosmolarVolume.
- Specified by:
molarVolumein interfacePhaseInterface- Overrides:
molarVolumein classPhaseEos- Parameters:
pressure- a doubletemperature- a doubleA- a doubleB- a doublept- the PhaseType of the phase- Returns:
- a double
-