Class ComponentSrkCPAMM
- All Implemented Interfaces:
Serializable, Cloneable, ComponentCPAInterface, ComponentEosInterface, ComponentInterface, ThermodynamicConstantsInterface
This class extends ComponentSrkCPA to add support for:
- Temperature-dependent ion-solvent interaction parameters
- Born radius calculations using empirical correlations
- Ion-specific parameters from the Maribo-Mogensen thesis
- Complete thermodynamic derivatives for electrolyte contributions
The ion-solvent interaction energy follows:
ΔU_iw(T) = u⁰_iw + uᵀ_iw × (T - 298.15)
- Version:
- $Id: $Id
- Author:
- Even Solbraa
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleBorn radius [Å].private static final doubleElementary charge [C].private static final doubleVacuum permittivity [F/m].private booleanFlag indicating if this component has MM ion parameters.private static final doubleBoltzmann constant [J/K].private static final doubleAvogadro's number [1/mol].private static final doubleGas constant [J/(mol·K)].private static final longSerialization version UID.private doubleIon-solvent interaction parameter at reference temperature [K].private doubleTemperature coefficient of ion-solvent interaction [K/K].Fields inherited from class ComponentEos
a, aDern, aDerT, aDerTn, aDerTT, aDiffDiffT, aDiffT, Ai, Aij, AiT, alpha, aT, b, bDern, bDerTn, Bi, Bij, dAdndn, dBdndn, delta1, delta2, logger, mFields inherited from class Component
acentricFactor, aCPA, AntoineA, AntoineASolid, AntoineB, AntoineBSolid, AntoineC, AntoineCSolid, AntoineD, AntoineE, antoineLiqVapPresType, associationEnergy, associationScheme, associationVolume, attractiveTermNumber, bCPA, calcActivity, componentName, componentNumber, criticalPressure, criticalTemperature, criticalViscosity, criticalVolume, debyeDipoleMoment, dfugdn, dfugdp, dfugdt, dfugdx, dielectricParameter, dqPuredT, dqPuredTdT, elements, epsikSAFT, fugacityCoefficient, gibbsEnergyOfFormation, heatOfVaporizationCoefs, henryCoefParameter, Hsub, idealGasAbsoluteEntropy, idealGasGibbsEnergyOfFormation, index, ionicCharge, isIon, isNormalComponent, isPlusFraction, isTBPfraction, K, lennardJonesEnergyParameter, lennardJonesMolecularDiameter, liquidConductivityParameter, liquidDensityCoefs, liquidViscosityModel, liquidViscosityParameter, matiascopemanParams, matiascopemanParamsPR, matiascopemanParamsUMRPRU, matiascopemanSolidParams, mCPA, meltingPointTemperature, molarMass, mSAFTi, normalBoilingPoint, normalLiquidDensity, numberOfAssociationSites, numberOfMoles, numberOfMolesInPhase, parachorParameter, paulingAnionicDiameter, qPure, racketZ, referencePotential, referenceStateType, schwartzentruberParams, sigmaSAFTi, solidCheck, solidDensityCoefs, sphericalCoreRadius, srkacentricFactor, standardDensity, stokesCationicDiameter, surfTensInfluenceParam, triplePointDensity, triplePointPressure, TwuCoonParams, viscosityCorrectionFactor, viscosityFrictionK, voli, x, zFields inherited from interface ThermodynamicConstantsInterface
atm, avagadroNumber, boltzmannConstant, electronCharge, faradayConstant, gravity, molarMassAir, normalStateTemperature, pi, planckConstant, referencePressure, referenceTemperature, standardStateTemperature, vacumPermittivity -
Constructor Summary
ConstructorsConstructorDescriptionComponentSrkCPAMM(String name, double moles, double molesInPhase, int compIndex, PhaseInterface phase) Constructor for ComponentSrkCPAMM. -
Method Summary
Modifier and TypeMethodDescriptionclone()clone.doubledFBorndN(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Born contribution to dF/dN_i.doubledFBorndNdN(int j, PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Composition derivative of Born contribution to dF/dN_i.doubledFBorndNdT(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Temperature derivative of Born contribution to dF/dN_i.doubledFBorndNdV(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Volume derivative of Born contribution to dF/dN_i.doubledFDebyeHuckeldN(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Debye-Hückel contribution to dF/dN_i.doubledFDebyeHuckeldNdN(int j, PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Composition derivative of Debye-Hückel contribution to dF/dN_i.doubledFDebyeHuckeldNdT(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Temperature derivative of Debye-Hückel contribution to dF/dN_i.doubledFDebyeHuckeldNdV(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Volume derivative of Debye-Hückel contribution to dF/dN_i.doubledFdN(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) dFdN.doubledFdNdN(int j, PhaseInterface phase, int numberOfComponents, double temperature, double pressure) dFdNdN.doubledFdNdT(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) dFdNdT.doubledFdNdV(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) dFdNdV.doubledFShortRangedN(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Short-range ion-solvent contribution to dF/dN_i.doubledFShortRangedNdN(int j, PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Composition derivative of short-range contribution to dF/dN_i using wij mixing rule.doubledFShortRangedNdT(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Temperature derivative of short-range contribution to dF/dN_i using wij mixing rule.doubledFShortRangedNdV(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Volume derivative of short-range contribution to dF/dN_i using wij mixing rule.doubleCalculate the Born solvation contribution for this ion.doubleGet the Born radius.doubleGet the Born radius in meters.doublegetIonSolventInteractionEnergy(double temperature) Get the ion-solvent interaction energy at a given temperature.doubleGet the temperature derivative of ion-solvent interaction energy.private PhaseElectrolyteCPAMMgetMMPhase(PhaseInterface phase) Check if phase is an electrolyte MM phase.doublegetU0_iw()Get the u⁰_iw parameter.doublegetUT_iw()Get the uᵀ_iw parameter.booleanCheck if this component has Maribo-Mogensen parameters.private voidinitMMParameters(String name) Initialize Maribo-Mogensen parameters from the ion database.voidsetBornRadius(double radius) Set the Born radius.voidsetU0_iw(double u0_iw) Set the u⁰_iw parameter.voidsetUT_iw(double uT_iw) Set the uᵀ_iw parameter.Methods inherited from class ComponentSrkCPA
calc_hCPAdn, calc_lngi, calc_lngidV, calc_lngij, calca, calcb, dFCPAdN, dFCPAdNdN, dFCPAdNdT, dFCPAdNdV, dFCPAdNdXi, dFCPAdNdXidXdV, dFCPAdVdXi, dFCPAdXi, dFCPAdXidni, dFCPAdXidXj, getSurfaceTenisionInfluenceParameter, getVolumeCorrection, getXsite, getXsitedni, getXsitedni, getXsitedT, getXsitedTdT, getXsitedV, getXsiteOld, resizeXsitedni, seta, setAttractiveTerm, setb, setXsite, setXsite, setXsitedni, setXsitedni, setXsitedT, setXsitedTdT, setXsitedV, setXsiteOld, setXsiteOldMethods inherited from class ComponentSrk
getdQpuredT, getdQpuredTdT, getQpureMethods inherited from class ComponentEos
alpha, aT, diffalphaT, diffaT, diffdiffalphaT, diffdiffaT, equals, Finit, fugcoef, geta, getAder, getaDiffDiffT, getaDiffT, getAi, getAij, getAiT, getAresnTV, getaT, getAttractiveParameter, getAttractiveTerm, getb, getBder, getBi, getBij, getChemicalPotential, getdAdndn, getdAdT, getdAdTdn, getdAdTdT, getdBdndn, getdBdndT, getdBdT, getDeltaEosParameters, getdUdndnSV, getdUdnSV, getdUdSdnV, getdUdVdnS, init, logfugcoefdN, logfugcoefdNi, logfugcoefdP, logfugcoefdT, setAder, setAttractiveParameter, setBder, setdAdndn, setdAdT, setdAdTdn, setdAdTdT, setdBdndn, setdBdndT, setdBdTdTMethods inherited from class Component
addMolesChemReac, calcActivity, createComponent, doSolidCheck, fugcoefDiffPresNumeric, fugcoefDiffTempNumeric, getAcentricFactor, getAntoineASolid, getAntoineBSolid, getAntoineCSolid, getAntoineVaporPressure, getAntoineVaporPressuredT, getAntoineVaporTemperature, getAssociationEnergy, getAssociationEnergySAFT, getAssociationScheme, getAssociationVolume, getAssociationVolumeSAFT, getAttractiveTermNumber, getCASnumber, getCCsolidVaporPressure, getCCsolidVaporPressuredT, getChemicalPotential, getChemicalPotentialdN, getChemicalPotentialdNTV, getChemicalPotentialdP, getChemicalPotentialdP, getChemicalPotentialdT, getChemicalPotentialdV, getChemicalPotentialIdealReference, getComponentName, getComponentNumber, getComponentType, getCp0, getCpA, getCpB, getCpC, getCpD, getCpE, getCriticalCompressibilityFactor, getCriticalViscosity, getCriticalVolume, getCv0, getDebyeDipoleMoment, getdfugdn, getdfugdp, getdfugdt, getdfugdx, getDiElectricConstant, getDiElectricConstantdT, getDiElectricConstantdTdT, getdrhodN, getElements, getEnthalpy, getEntropy, getEpsikSAFT, getFlowRate, getFormulae, getFugacityCoefficient, getFugacitydN, getGibbsEnergy, getGibbsEnergyOfFormation, getGresTP, getHeatOfFusion, getHeatOfVapourization, getHenryCoef, getHenryCoefdT, getHenryCoefParameter, getHID, getHresTP, getHsub, getIdealGasAbsoluteEntropy, getIdealGasEnthalpyOfFormation, getIdealGasGibbsEnergyOfFormation, getIdEntropy, getIndex, getIonicCharge, getIonicDiameter, getK, getLennardJonesEnergyParameter, getLennardJonesMolecularDiameter, getLiquidConductivityParameter, getLiquidViscosityModel, getLiquidViscosityParameter, getMatiascopemanParams, getMatiascopemanParams, getMatiascopemanParamsPR, getMatiascopemanParamsUMRPRU, getMatiascopemanSolidParams, getMeltingPointTemperature, getMolality, getMolarity, getMolarMass, getMolarMass, getmSAFTi, getName, getNormalBoilingPoint, getNormalBoilingPoint, getNormalLiquidDensity, getNormalLiquidDensity, getNumberOfAssociationSites, getNumberOfmoles, getNumberOfMolesInPhase, getOrginalNumberOfAssociationSites, getParachorParameter, getPaulingAnionicDiameter, getPC, getPC, getPureComponentCpLiquid, getPureComponentCpSolid, getPureComponentHeatOfVaporization, getPureComponentLiquidDensity, getPureComponentSolidDensity, getRacketZ, getRacketZCPA, getRate, getReferenceEnthalpy, getReferencePotential, getReferenceStateType, getSchwartzentruberParams, getSigmaSAFTi, getSolidVaporPressure, getSolidVaporPressuredT, getSphericalCoreRadius, getSresTP, getStandardDensity, getStokesCationicDiameter, getSurfTensInfluenceParam, getTC, getTC, getTotalFlowRate, getTriplePointDensity, getTriplePointPressure, getTriplePointTemperature, getTwuCoonParams, getViscosityCorrectionFactor, getViscosityFrictionK, getVoli, getVolumeCorrectionConst, getVolumeCorrectionT, getVolumeCorrectionT_CPA, getx, getz, hasVolumeCorrection, insertComponentIntoDatabase, isHydrateFormer, isHydrocarbon, isInert, isIsHydrateFormer, isIsIon, isIsNormalComponent, isIsPlusFraction, isIsTBPfraction, isWaxFormer, reducedPressure, reducedTemperature, setAcentricFactor, setAntoineASolid, setAntoineBSolid, setAntoineCSolid, setAssociationEnergy, setAssociationEnergySAFT, setAssociationScheme, setAssociationVolume, setAssociationVolumeSAFT, setCASnumber, setComponentName, setComponentNumber, setComponentType, setCpA, setCpB, setCpC, setCpD, setCpE, setCriticalCompressibilityFactor, setCriticalViscosity, setCriticalVolume, setdfugdn, setdfugdp, setdfugdt, setdfugdx, setEpsikSAFT, setFormulae, setFugacityCoefficient, setHeatOfFusion, setHenryCoefParameter, setIdealGasEnthalpyOfFormation, setIsAllTypesFalse, setIsHydrateFormer, setIsIon, setIsNormalComponent, setIsPlusFraction, setIsTBPfraction, setK, setLennardJonesEnergyParameter, setLennardJonesMolecularDiameter, setLiquidConductivityParameter, setLiquidViscosityModel, setLiquidViscosityParameter, setMatiascopemanParams, setMatiascopemanParams, setMatiascopemanParamsPR, setMatiascopemanSolidParams, setMolarMass, setMolarMass, setmSAFTi, setNormalBoilingPoint, setNormalLiquidDensity, setNumberOfAssociationSites, setNumberOfmoles, setNumberOfMolesInPhase, setParachorParameter, setPaulingAnionicDiameter, setPC, setPC, setProperties, setRacketZ, setRacketZCPA, setReferenceEnthalpy, setReferencePotential, setSchwartzentruberParams, setSigmaSAFTi, setSolidCheck, setSphericalCoreRadius, setStandardDensity, setStokesCationicDiameter, setSurfTensInfluenceParam, setTC, setTC, setTriplePointTemperature, setTwuCoonParams, setViscosityAssociationFactor, setViscosityFrictionK, setVoli, setVolumeCorrection, setVolumeCorrectionConst, setVolumeCorrectionT, setVolumeCorrectionT_CPA, setWaxFormer, setx, setzMethods inherited from class Object
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ComponentEosInterface
aT, diffaT, diffdiffaT, geta, getAder, getaDiffDiffT, getaDiffT, getAi, getAij, getAiT, getaT, getb, getBder, getBi, getBij, getdAdndn, getdAdT, getdAdTdn, getdBdndn, getdBdndT, getdBdT, getDeltaEosParameters, setAder, setBder, setdAdndn, setdAdT, setdAdTdn, setdAdTdT, setdBdndn, setdBdndT, setdBdTdTMethods inherited from interface ComponentInterface
addMoles, addMolesChemReac, addMolesChemReac, calcActivity, createComponent, doSolidCheck, Finit, fugcoef, fugcoefDiffPresNumeric, fugcoefDiffTempNumeric, getAcentricFactor, getAntoineASolid, getAntoineBSolid, getAntoineCSolid, getAntoineVaporPressure, getAntoineVaporPressuredT, getAntoineVaporTemperature, getAssociationEnergy, getAssociationEnergySAFT, getAssociationScheme, getAssociationVolume, getAssociationVolumeSAFT, getAttractiveTerm, getAttractiveTermNumber, getCASnumber, getCCsolidVaporPressure, getCCsolidVaporPressuredT, getChemicalPotential, getChemicalPotential, getChemicalPotentialdN, getChemicalPotentialdNTV, getChemicalPotentialdP, getChemicalPotentialdT, getChemicalPotentialdV, getChemicalPotentialIdealReference, getComponentName, getComponentNumber, getComponentType, getCp0, getCpA, getCpB, getCpC, getCpD, getCpE, getCriticalCompressibilityFactor, getCriticalViscosity, getCriticalVolume, getCv0, getDebyeDipoleMoment, getdfugdn, getdfugdp, getdfugdt, getdfugdx, getDiElectricConstant, getDiElectricConstantdT, getDiElectricConstantdTdT, getdrhodN, getElements, getEnthalpy, getEntropy, getEpsikSAFT, getFlowRate, getFormulae, getFugacityCoefficient, getGibbsEnergy, getGibbsEnergyOfFormation, getGresTP, getHeatOfFusion, getHeatOfVapourization, getHenryCoef, getHenryCoefdT, getHenryCoefParameter, getHID, getHresTP, getHsub, getIdealGasAbsoluteEntropy, getIdealGasEnthalpyOfFormation, getIdealGasGibbsEnergyOfFormation, getIdEntropy, getIndex, getIonicCharge, getK, getLennardJonesEnergyParameter, getLennardJonesMolecularDiameter, getLiquidConductivityParameter, getLiquidViscosityModel, getLiquidViscosityParameter, getLogFugacityCoefficient, getMatiascopemanParams, getMatiascopemanSolidParams, getMeltingPointTemperature, getMolality, getMolarity, getMolarMass, getMolarMass, getmSAFTi, getName, getNormalBoilingPoint, getNormalBoilingPoint, getNormalLiquidDensity, getNormalLiquidDensity, getNumberOfAssociationSites, getNumberOfmoles, getNumberOfMolesInPhase, getOrginalNumberOfAssociationSites, getParachorParameter, getPaulingAnionicDiameter, getPC, getPC, getPureComponentCpLiquid, getPureComponentCpSolid, getPureComponentHeatOfVaporization, getPureComponentLiquidDensity, getPureComponentSolidDensity, getRacketZ, getRacketZCPA, getRate, getReferencePotential, getReferenceStateType, getSchwartzentruberParams, getSigmaSAFTi, getSolidVaporPressure, getSolidVaporPressuredT, getSphericalCoreRadius, getSresTP, getStokesCationicDiameter, getSurfTensInfluenceParam, getTC, getTC, getTotalFlowRate, getTriplePointDensity, getTriplePointPressure, getTriplePointTemperature, getTwuCoonParams, getViscosityCorrectionFactor, getViscosityFrictionK, getVoli, getVolumeCorrectionConst, getVolumeCorrectionT, getVolumeCorrectionT_CPA, getx, getz, init, insertComponentIntoDatabase, isHydrateFormer, isHydrocarbon, isInert, isIsIon, isIsNormalComponent, isIsPlusFraction, isIsTBPfraction, isWaxFormer, logfugcoefdN, logfugcoefdNi, logfugcoefdP, logfugcoefdT, reducedPressure, reducedTemperature, setAcentricFactor, setAntoineASolid, setAntoineBSolid, setAntoineCSolid, setAssociationEnergy, setAssociationEnergySAFT, setAssociationScheme, setAssociationVolume, setAssociationVolumeSAFT, setCASnumber, setComponentName, setComponentNumber, setComponentType, setCpA, setCpB, setCpC, setCpD, setCpE, setCriticalCompressibilityFactor, setCriticalViscosity, setCriticalVolume, setdfugdn, setdfugdp, setdfugdt, setdfugdx, setEpsikSAFT, setFormulae, setFugacityCoefficient, setHeatOfFusion, setHenryCoefParameter, setIdealGasEnthalpyOfFormation, setIsHydrateFormer, setIsIon, setIsNormalComponent, setIsPlusFraction, setIsTBPfraction, setK, setLennardJonesEnergyParameter, setLennardJonesMolecularDiameter, setLiquidConductivityParameter, setLiquidViscosityModel, setLiquidViscosityParameter, setMatiascopemanParams, setMatiascopemanParams, setMolarMass, setMolarMass, setmSAFTi, setNormalBoilingPoint, setNormalLiquidDensity, setNumberOfAssociationSites, setNumberOfmoles, setNumberOfMolesInPhase, setParachorParameter, setPC, setPC, setProperties, setRacketZ, setRacketZCPA, setReferencePotential, setSchwartzentruberParams, setSigmaSAFTi, setSolidCheck, setSphericalCoreRadius, setStokesCationicDiameter, setSurfTensInfluenceParam, setTC, setTC, setTriplePointTemperature, setTwuCoonParams, setViscosityAssociationFactor, setViscosityFrictionK, setVolumeCorrection, setVolumeCorrectionConst, setVolumeCorrectionT, setVolumeCorrectionT_CPA, setWaxFormer, setx, setz
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
EPSILON_0
private static final double EPSILON_0Vacuum permittivity [F/m].- See Also:
-
E_CHARGE
private static final double E_CHARGEElementary charge [C].- See Also:
-
N_A
private static final double N_AAvogadro's number [1/mol].- See Also:
-
K_B
private static final double K_BBoltzmann constant [J/K].- See Also:
-
R
private static final double RGas constant [J/(mol·K)].- See Also:
-
u0_iw
private double u0_iwIon-solvent interaction parameter at reference temperature [K]. -
uT_iw
private double uT_iwTemperature coefficient of ion-solvent interaction [K/K]. -
bornRadius
private double bornRadiusBorn radius [Å]. -
hasMMParameters
private boolean hasMMParametersFlag indicating if this component has MM ion parameters.
-
-
Constructor Details
-
ComponentSrkCPAMM
public ComponentSrkCPAMM(String name, double moles, double molesInPhase, int compIndex, PhaseInterface phase) Constructor for ComponentSrkCPAMM.- Parameters:
name- Name of componentmoles- Total number of moles of componentmolesInPhase- Number of moles in phasecompIndex- Index number of component in phase object component arrayphase- Phase object
-
-
Method Details
-
initMMParameters
Initialize Maribo-Mogensen parameters from the ion database.For ions, the following parameters are set:
- Ion-solvent interaction energy ΔU_iw from MM thesis Table 6.11
- Born radius from empirical correlations
- Lennard-Jones diameter σ
- SRK b parameter: b = (α × σ³ + β) following Furst correlation
- SRK a parameter: set to ~0 for ions (no van der Waals attraction)
- Parameters:
name- component name
-
clone
clone.
- Specified by:
clonein interfaceComponentInterface- Overrides:
clonein classComponentSrkCPA- Returns:
- a
ComponentInterfaceobject
-
getIonSolventInteractionEnergy
public double getIonSolventInteractionEnergy(double temperature) Get the ion-solvent interaction energy at a given temperature.ΔU_iw(T) = u⁰_iw + uᵀ_iw × (T - 298.15)
- Parameters:
temperature- temperature in Kelvin- Returns:
- interaction energy in Kelvin
-
getIonSolventInteractionEnergydT
public double getIonSolventInteractionEnergydT()Get the temperature derivative of ion-solvent interaction energy.- Returns:
- dΔU_iw/dT in K/K
-
getBornRadius
public double getBornRadius()Get the Born radius.- Returns:
- Born radius in Ångströms
-
getBornRadiusMeters
public double getBornRadiusMeters()Get the Born radius in meters.- Returns:
- Born radius in meters
-
setBornRadius
public void setBornRadius(double radius) Set the Born radius.- Parameters:
radius- Born radius in Ångströms
-
getU0_iw
public double getU0_iw()Get the u⁰_iw parameter.- Returns:
- u⁰_iw in Kelvin
-
setU0_iw
public void setU0_iw(double u0_iw) Set the u⁰_iw parameter.- Parameters:
u0_iw- value in Kelvin
-
getUT_iw
public double getUT_iw()Get the uᵀ_iw parameter.- Returns:
- uᵀ_iw in K/K
-
setUT_iw
public void setUT_iw(double uT_iw) Set the uᵀ_iw parameter.- Parameters:
uT_iw- value in K/K
-
hasMMParameters
public boolean hasMMParameters()Check if this component has Maribo-Mogensen parameters.- Returns:
- true if MM parameters are available
-
getBornContribution
public double getBornContribution()Calculate the Born solvation contribution for this ion.X_Born,i = z_i² / R_Born,i
- Returns:
- Born contribution factor [1/Å]
-
getMMPhase
Check if phase is an electrolyte MM phase.- Parameters:
phase- the phase to check- Returns:
- the MM phase or null
-
dFDebyeHuckeldN
public double dFDebyeHuckeldN(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Debye-Hückel contribution to dF/dN_i.For the Debye-Hückel term: F^DH = -κ³V / (12πRT·N_A)
The full derivative at constant T, P is: dF^DH/dn_i = (∂F^DH/∂κ)(∂κ/∂n_i) + (∂F^DH/∂V)(∂V/∂n_i)
For ions: ∂κ/∂n_i has contribution from z_i² term. For all components: adding moles changes V which affects κ through the dilution effect.
- Parameters:
phase- the phasenumberOfComponents- number of componentstemperature- temperature in Kpressure- pressure in bar- Returns:
- dF^DH/dn_i contribution
-
dFBorndN
public double dFBorndN(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Born contribution to dF/dN_i.For the extensive Born term: F^Born = (N_Ae²/8πε₀RT) * (1/ε - 1) * X_Born
The complete derivative is: dF^Born/dn_i = (∂F/∂X_Born) × (∂X_Born/∂n_i) + (∂F/∂ε) × (∂ε/∂n_i)
- Parameters:
phase- the phasenumberOfComponents- number of componentstemperature- temperature in Kpressure- pressure in bar- Returns:
- dF^Born/dn_i contribution
-
dFDebyeHuckeldNdT
public double dFDebyeHuckeldNdT(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Temperature derivative of Debye-Hückel contribution to dF/dN_i.- Parameters:
phase- the phasenumberOfComponents- number of componentstemperature- temperature in Kpressure- pressure in bar- Returns:
- d²F^DH/(dn_i dT) contribution
-
dFBorndNdT
public double dFBorndNdT(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Temperature derivative of Born contribution to dF/dN_i.The full derivative d²F^Born/(dn_i dT) includes temperature derivatives of both the FBornX term and the FBornD term.
- Parameters:
phase- the phasenumberOfComponents- number of componentstemperature- temperature in Kpressure- pressure in bar- Returns:
- d²F^Born/(dn_i dT) contribution
-
dFDebyeHuckeldNdV
public double dFDebyeHuckeldNdV(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Volume derivative of Debye-Hückel contribution to dF/dN_i.- Parameters:
phase- the phasenumberOfComponents- number of componentstemperature- temperature in Kpressure- pressure in bar- Returns:
- d²F^DH/(dn_i dV) contribution
-
dFBorndNdV
public double dFBorndNdV(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Volume derivative of Born contribution to dF/dN_i.- Parameters:
phase- the phasenumberOfComponents- number of componentstemperature- temperature in Kpressure- pressure in bar- Returns:
- d²F^Born/(dn_i dV) contribution
-
dFDebyeHuckeldNdN
public double dFDebyeHuckeldNdN(int j, PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Composition derivative of Debye-Hückel contribution to dF/dN_i.- Parameters:
j- index of second componentphase- the phasenumberOfComponents- number of componentstemperature- temperature in Kpressure- pressure in bar- Returns:
- d²F^DH/(dn_i dn_j) contribution
-
dFBorndNdN
public double dFBorndNdN(int j, PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Composition derivative of Born contribution to dF/dN_i.d²F^Born/(dn_i dn_j) includes cross derivatives of FBornX and FBornD terms.
- Parameters:
j- index of second componentphase- the phasenumberOfComponents- number of componentstemperature- temperature in Kpressure- pressure in bar- Returns:
- d²F^Born/(dn_i dn_j) contribution
-
dFShortRangedN
public double dFShortRangedN(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Short-range ion-solvent contribution to dF/dN_i.F^SR = W / (R * T) where W = Σ_i Σ_j (n_i * n_j * wij * R / V)
For component k: dF^SR/dn_k = Σ_j (n_j * wij[k][j] + n_j * wij[j][k]) / (T * V) The wij mixing rule parameters are obtained from the phase's initMixingRuleWij().
- Parameters:
phase- the phasenumberOfComponents- number of componentstemperature- temperature in Kpressure- pressure in bar- Returns:
- dF^SR/dn_i contribution
-
dFShortRangedNdT
public double dFShortRangedNdT(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Temperature derivative of short-range contribution to dF/dN_i using wij mixing rule.- Parameters:
phase- the phasenumberOfComponents- number of componentstemperature- temperature in Kpressure- pressure in bar- Returns:
- d²F^SR/(dn_i dT) contribution
-
dFShortRangedNdV
public double dFShortRangedNdV(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Volume derivative of short-range contribution to dF/dN_i using wij mixing rule.- Parameters:
phase- the phasenumberOfComponents- number of componentstemperature- temperature in Kpressure- pressure in bar- Returns:
- d²F^SR/(dn_i dV) contribution
-
dFShortRangedNdN
public double dFShortRangedNdN(int j, PhaseInterface phase, int numberOfComponents, double temperature, double pressure) Composition derivative of short-range contribution to dF/dN_i using wij mixing rule.- Parameters:
j- index of second componentphase- the phasenumberOfComponents- number of componentstemperature- temperature in Kpressure- pressure in bar- Returns:
- d²F^SR/(dn_i dn_j) contribution
-
dFdN
public double dFdN(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) dFdN.
- Specified by:
dFdNin interfaceComponentEosInterface- Overrides:
dFdNin classComponentSrkCPA- Parameters:
phase- aPhaseInterfaceobjectnumberOfComponents- a inttemperature- a doublepressure- a double- Returns:
- a double
-
dFdNdT
public double dFdNdT(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) dFdNdT.
- Specified by:
dFdNdTin interfaceComponentEosInterface- Overrides:
dFdNdTin classComponentSrkCPA- Parameters:
phase- aPhaseInterfaceobjectnumberOfComponents- a inttemperature- a doublepressure- a double- Returns:
- a double
-
dFdNdV
public double dFdNdV(PhaseInterface phase, int numberOfComponents, double temperature, double pressure) dFdNdV.
- Specified by:
dFdNdVin interfaceComponentEosInterface- Overrides:
dFdNdVin classComponentSrkCPA- Parameters:
phase- aPhaseInterfaceobjectnumberOfComponents- a inttemperature- a doublepressure- a double- Returns:
- a double
-
dFdNdN
public double dFdNdN(int j, PhaseInterface phase, int numberOfComponents, double temperature, double pressure) dFdNdN.
- Specified by:
dFdNdNin interfaceComponentEosInterface- Overrides:
dFdNdNin classComponentSrkCPA- Parameters:
j- a intphase- aPhaseInterfaceobjectnumberOfComponents- a inttemperature- a doublepressure- a double- Returns:
- a double
-