Class PhaseBWRSEos
java.lang.Object
neqsim.thermo.phase.Phase
neqsim.thermo.phase.PhaseEos
neqsim.thermo.phase.PhaseSrkEos
neqsim.thermo.phase.PhaseBWRSEos
- All Implemented Interfaces:
Serializable, Cloneable, PhaseEosInterface, PhaseInterface, ThermodynamicConstantsInterface
PhaseBWRSEos class.
- Version:
- $Id: $Id
- Author:
- Even Solbraa
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static org.apache.logging.log4j.LoggerLogger object for class.private static final doubleUnit conversion factor for MBWR-32 parameters.private double[]Mole-fraction-weighted exponential MBWR coefficients for the mixture.private double[]Mole-fraction-weighted exponential temperature derivatives for the mixture.private double[]Mole-fraction-weighted exponential second temperature derivatives for the mixture.private double[]Mole-fraction-weighted polynomial MBWR coefficients for the mixture.private double[]Mole-fraction-weighted polynomial temperature derivatives for the mixture.private double[]Mole-fraction-weighted polynomial second temperature derivatives for the mixture.private doubleMixed gamma parameter = 1/rhoc_mix^2 for one-fluid mixing.(package private) int(package private) intprivate static final longSerialization version UID.Fields 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.doublecalcPressure2.voidcalcPVT()calcPVT.clone()clone.private voidComputes mole-fraction-weighted MBWR parameters for the one-fluid mixture.doubledFdT()Calculate derivative of F per Temperature, i.e., dF/dT.doubledFdTdT()dFdTdT.doubledFdTdV()Calculate derivative of F per Temperature and Volume, i.e., dF/dT * 1/dV.doubledFdV()Calculate derivative of F per Volume, i.e., dF/dV.doubledFdVdV()dFdVdV.doubledFdVdVdV()dFdVdVdV.doublegetdFdN(int compNumb) Numerical dF/dn_i at constant T, V.doublegetdFdNdN(int compI, int compJ) Numerical d2F/(dn_i dn_j) at constant T, V.doublegetdFdNdT(int compNumb) Numerical d2F/(dn_i dT) at constant V, n.doublegetdFdNdV(int compNumb) Numerical d2F/(dn_i dV) at constant T, n.doublegetdRhodV.doublegetdRhodVdV.doublegetdRhodVdVdV.doublegetEL()getEL.doublegetELdRho.doubleSecond derivative of the exponential EL term with respect to molar density.doubleThird derivative of the exponential EL term with respect to molar density.doublegetF()getF.doublegetFdRho()Total derivative of F with respect to molar density.doublegetFexp()getFexp.private doubleFirst derivative of Fexp with respect to molar density.private doubleSecond derivative of Fexp with respect to molar density.private doubleThird derivative of Fexp with respect to molar density.doublegetFexpdT.private doubleCross derivative of Fexp with respect to temperature and molar density.private doubleSecond derivative of Fexp with respect to temperature.private doubleCross derivative of Fexp with respect to temperature and molar volume.doubleFirst derivative of Fexp with respect to molar volume.doubleSecond derivative of Fexp with respect to molar volume.doubleThird derivative of Fexp with respect to molar volume.doublegetFpol()getFpol.doubleDerivative of the polynomial F-term with respect to molar density.doublegetFpoldT.private doubleCross derivative of the polynomial F-term with respect to temperature and molar density.private doubleSecond derivative of the polynomial F-term with respect to temperature.private doubleCross derivative of the polynomial F-term with respect to temperature and molar volume.doublegetFpoldV.doublegetFpoldVdV.doublegetFpoldVdVdV.doublegetGammadRho.doubleGet the Joule Thomson Coefficient of a phase.doublegetMolarDensity.voidinit.doublemolarVolume2(double pressure, double temperature, double A, double B, PhaseType pt) molarVolume2.private voidLightweight recomputation for numerical derivatives.Methods inherited from class PhaseEos
calcA, calcAi, calcAij, calcAiT, calcAT, calcATT, calcB, calcBi, calcBij, calcf, calcg, calcPressure, calcPressuredV, dFdN, dFdNdN, dFdNdT, dFdNdV, 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_loc, getg, getGradientVector, getGresTP, getHresdP, getHresTP, getKappa, getMixingRule, getMixingRuleName, getPressureAttractive, getPressureRepulsive, getSoundSpeed, getSresTP, getSresTV, getUSVHessianMatrix, gV, gVV, gVVV, molarVolume, 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, getCp, getCp0, getCv, getCv, getDensity, getDensity, getDensity_AGA8, getDensity_EOSCG, getDensity_GERG2008, getDensity_Leachman, getDensity_Leachman, getDensity_Vega, getDielectricConstant, getEnthalpy, getEnthalpy, getEnthalpydP, getEnthalpydT, getEntropy, getEntropy, getEntropydP, getEntropydT, getExcessGibbsEnergy, getExcessGibbsEnergySymetric, getFlowRate, getFugacity, getFugacity, getGamma, getGibbsEnergy, getHelmholtzEnergy, getHID, getInfiniteDiluteFugacity, getInfiniteDiluteFugacity, getInitType, getInternalEnergy, 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, getZ, 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, getCp, getCp0, getCv, getCv, getDensity, getDensity, getDensity_AGA8, getDensity_EOSCG, getDensity_GERG2008, getDensity_Leachman, getDensity_Leachman, getDensity_Vega, getEnthalpy, getEnthalpy, getEnthalpydP, getEnthalpydT, getEntropy, getEntropy, getEntropydP, getEntropydT, getExcessGibbsEnergy, getExcessGibbsEnergySymetric, getFlowRate, getFugacity, getFugacity, getGamma, getGamma2, getGibbsEnergy, getHelmholtzEnergy, getInfiniteDiluteFugacity, getInitType, getInternalEnergy, 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, getZ, 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 serialVersionUIDSerialization version UID.- See Also:
-
logger
static org.apache.logging.log4j.Logger loggerLogger object for class. -
MBWR_UNIT_FACTOR
private static final double MBWR_UNIT_FACTORUnit conversion factor for MBWR-32 parameters. The database coefficients are calibrated in MPa-based units (density in mol/L, pressure in MPa), using R_MPa = 0.008314 L·MPa/(mol·K). The framework uses R_SI = 8.3144621 J/(mol·K). Since getFpol() divides by R_SI·T, the resulting Helmholtz function is 1000× too small (R_SI / R_MPa = 1000). This factor compensates.- See Also:
-
OP
int OP -
OE
int OE -
mixBP
private double[] mixBPMole-fraction-weighted polynomial MBWR coefficients for the mixture. -
mixBE
private double[] mixBEMole-fraction-weighted exponential MBWR coefficients for the mixture. -
mixBPdT
private double[] mixBPdTMole-fraction-weighted polynomial temperature derivatives for the mixture. -
mixBEdT
private double[] mixBEdTMole-fraction-weighted exponential temperature derivatives for the mixture. -
mixBPdTdT
private double[] mixBPdTdTMole-fraction-weighted polynomial second temperature derivatives for the mixture. -
mixBEdTdT
private double[] mixBEdTdTMole-fraction-weighted exponential second temperature derivatives for the mixture. -
mixGamma
private double mixGammaMixed gamma parameter = 1/rhoc_mix^2 for one-fluid mixing.
-
-
Constructor Details
-
PhaseBWRSEos
public PhaseBWRSEos()Constructor for PhaseBWRSEos.
-
-
Method Details
-
clone
clone.
- Specified by:
clonein interfacePhaseInterface- Overrides:
clonein classPhaseSrkEos- Returns:
- a
PhaseInterfaceobject
-
computeMixedParameters
private void computeMixedParameters()Computes mole-fraction-weighted MBWR parameters for the one-fluid mixture. Linear mixing: mixBP[i] = sum_j x_j * BP_j[i], similarly for BE, BPdT, BEdT. For gamma (critical density), rhoc_mix = sum_j x_j * rhoc_j, then mixGamma = 1/rhoc_mix^2. -
recomputeLight
private void recomputeLight()Lightweight recomputation for numerical derivatives. Updates mole fractions and mixed BWRS parameters without triggering a full init/Finit cycle. -
addComponent
Add component to component array and update moles variables.
- Specified by:
addComponentin interfacePhaseInterface- Overrides:
addComponentin classPhaseSrkEos- 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.
-
getMolarDensity
public double getMolarDensity()getMolarDensity.
- Returns:
- a double
-
getdRhodV
public double getdRhodV()getdRhodV.
- Returns:
- a double
-
getdRhodVdV
public double getdRhodVdV()getdRhodVdV.
- Returns:
- a double
-
getdRhodVdVdV
public double getdRhodVdVdV()getdRhodVdVdV.
- Returns:
- a double
-
getGammadRho
public double getGammadRho()getGammadRho.
- Returns:
- a double
-
getFpol
public double getFpol()getFpol.
- Returns:
- a double
-
getFpoldV
public double getFpoldV()getFpoldV.
- Returns:
- a double
-
getFpoldRho
public double getFpoldRho()Derivative of the polynomial F-term with respect to molar density.- Returns:
- dFpol/dρ
-
getFpoldVdV
public double getFpoldVdV()getFpoldVdV.
- Returns:
- a double
-
getFpoldVdVdV
public double getFpoldVdVdV()getFpoldVdVdV.
- Returns:
- a double
-
getFpoldT
public double getFpoldT()getFpoldT.
- Returns:
- a double
-
getFpoldTdRho
private double getFpoldTdRho()Cross derivative of the polynomial F-term with respect to temperature and molar density.- Returns:
- d2Fpol/dT dρ
-
getFpoldTdV
private double getFpoldTdV()Cross derivative of the polynomial F-term with respect to temperature and molar volume.- Returns:
- d2Fpol/dT dV
-
getFpoldTdT
private double getFpoldTdT()Second derivative of the polynomial F-term with respect to temperature.- Returns:
- d2Fpol/dT2
-
getFdRho
public double getFdRho()Total derivative of F with respect to molar density.- Returns:
- dF/dρ
-
getEL
public double getEL()getEL.
- Returns:
- a double
-
getELdRho
public double getELdRho()getELdRho.
- Returns:
- a double
-
getELdRhodedRho
public double getELdRhodedRho()Second derivative of the exponential EL term with respect to molar density.- Returns:
- d2EL/dρ2
-
getELdRhodedRhodedRho
public double getELdRhodedRhodedRho()Third derivative of the exponential EL term with respect to molar density.- Returns:
- d3EL/dρ3
-
getFexp
public double getFexp()getFexp.
- Returns:
- a double
-
getFexpdRho
private double getFexpdRho()First derivative of Fexp with respect to molar density.- Returns:
- dFexp/dρ
-
getFexpdRhodRho
private double getFexpdRhodRho()Second derivative of Fexp with respect to molar density.- Returns:
- d2Fexp/dρ2
-
getFexpdRhodRhodRho
private double getFexpdRhodRhodRho()Third derivative of Fexp with respect to molar density.- Returns:
- d3Fexp/dρ3
-
getFexpdV
public double getFexpdV()First derivative of Fexp with respect to molar volume.- Returns:
- dFexp/dV
-
getFexpdVdV
public double getFexpdVdV()Second derivative of Fexp with respect to molar volume.- Returns:
- d2Fexp/dV2
-
getFexpdVdVdV
public double getFexpdVdVdV()Third derivative of Fexp with respect to molar volume.- Returns:
- d3Fexp/dV3
-
getFexpdTdRho
private double getFexpdTdRho()Cross derivative of Fexp with respect to temperature and molar density.- Returns:
- d2Fexp/dT dρ
-
getFexpdTdV
private double getFexpdTdV()Cross derivative of Fexp with respect to temperature and molar volume.- Returns:
- d2Fexp/dT dV
-
getFexpdT
public double getFexpdT()getFexpdT.
- Returns:
- a double
-
getFexpdTdT
private double getFexpdTdT()Second derivative of Fexp with respect to temperature.- Returns:
- d2Fexp/dT2
-
calcPressure2
public double calcPressure2()calcPressure2.
- Returns:
- a double
-
calcPVT
public void calcPVT()calcPVT.
-
getF
-
getdFdN
public double getdFdN(int compNumb) Numerical dF/dn_i at constant T, V. Perturbs component moles, adjusts molar volume to keep total volume constant, recomputes mix parameters, and evaluates F.- Parameters:
compNumb- component index to perturb- Returns:
- numerical dF/dn_i
-
getdFdNdV
public double getdFdNdV(int compNumb) Numerical d2F/(dn_i dV) at constant T, n.- Parameters:
compNumb- component index- Returns:
- numerical d2F/(dn_i dV)
-
getdFdNdT
public double getdFdNdT(int compNumb) Numerical d2F/(dn_i dT) at constant V, n.- Parameters:
compNumb- component index- Returns:
- numerical d2F/(dn_i dT)
-
getdFdNdN
public double getdFdNdN(int compI, int compJ) Numerical d2F/(dn_i dn_j) at constant T, V.- Parameters:
compI- component i indexcompJ- component j index- Returns:
- numerical d2F/(dn_i dn_j)
-
dFdT
public double dFdT()Calculate derivative of F per Temperature, i.e., dF/dT.
- Specified by:
dFdTin interfacePhaseInterface- Overrides:
dFdTin classPhaseEos- Returns:
- a double
-
dFdTdT
public double dFdTdT()dFdTdT.
- Specified by:
dFdTdTin interfacePhaseInterface- Overrides:
dFdTdTin classPhaseEos- Returns:
- a double
-
dFdTdV
public double dFdTdV()Calculate derivative of F per Temperature and Volume, i.e., dF/dT * 1/dV.
- Specified by:
dFdTdVin interfacePhaseInterface- Overrides:
dFdTdVin classPhaseEos- Returns:
- a double
-
dFdV
public double dFdV()Calculate derivative of F per Volume, i.e., dF/dV.
- Specified by:
dFdVin interfacePhaseInterface- Overrides:
dFdVin classPhaseEos- Returns:
- a double
-
dFdVdV
public double dFdVdV()dFdVdV.
- Specified by:
dFdVdVin interfacePhaseInterface- Overrides:
dFdVdVin classPhaseEos- Returns:
- a double
-
dFdVdVdV
-
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
-
molarVolume2
public double molarVolume2(double pressure, double temperature, double A, double B, PhaseType pt) throws IsNaNException, TooManyIterationsException molarVolume2.
- Overrides:
molarVolume2in classPhaseEos- Parameters:
pressure- a doubletemperature- a doubleA- a doubleB- a doublept- the PhaseType of the phase- Returns:
- a double
- Throws:
IsNaNException- if any.TooManyIterationsException- if any.
-