Contents

Index

Fluid Single component properties

Clapeyron.saturation_pressureFunction
saturation_pressure(model::EoSModel, T)
saturation_pressure(model::EoSModel,T,method::SaturationMethod)
saturation_pressure(model,T,x0::Union{Tuple,Vector})

Performs a single component saturation equilibrium calculation, at the specified temperature T, of one mol of pure sustance specified by model Returns (p₀, Vₗ, Vᵥ) where p₀ is the saturation pressure (in Pa), Vₗ is the liquid saturation volume (in m³) and Vᵥ is the vapour saturation volume (in m³).

If the calculation fails, returns (NaN, NaN, NaN)

By default, it uses ChemPotVSaturation

Examples:

julia> pr = PR(["water"])
PR{BasicIdeal, PRAlpha, NoTranslation, vdW1fRule} with 1 component:
  "water"
Contains parameters: a, b, Tc, Pc, Mw

julia> p,vl,vv = saturation_pressure(pr,373.15) #default, uses Clapeyron.ChemPotVSaturation
(96099.38979351855, 2.2674781912892906e-5, 0.03201681565699426)

julia> p,vl,vv = saturation_pressure(pr,373.15,IsoFugacitySaturation()) #iso fugacity
(96099.38979351871, 2.2674781912892933e-5, 0.03201681565699359)

julia> p,vl,vv = saturation_pressure(pr,373.15,IsoFugacitySaturation(p0 = 1.0e5)) #iso fugacity, with starting point
(96099.38979351871, 2.2674781912892933e-5, 0.03201681565699547)
source
Clapeyron.saturation_temperatureFunction
saturation_temperature(model::EoSModel, p, kwargs...)
saturation_temperature(model::EoSModel, p, method::SaturationMethod)
saturation_temperature(model, p, T0::Number)

Performs a single component saturation temperature equilibrium calculation, at the specified pressure T, of one mol of pure sustance specified by model

Returns (T₀, Vₗ, Vᵥ) where p₀ is the saturation Temperature (in K), Vₗ is the liquid saturation volume (in m³) and Vᵥ is the vapour saturation volume (in m³).

If the calculation fails, returns (NaN, NaN, NaN)

By default, it uses AntoineSaturation

Examples:

julia-repl

julia> pr = PR(["water"])
PR{BasicIdeal, PRAlpha, NoTranslation, vdW1fRule} with 1 component:
  "water"
Contains parameters: a, b, Tc, Pc, Mw

julia> Ts,vl,vv = saturation_temperature(pr,1e5) # AntoineSaturation by default
(374.24014010712983, 2.269760164801948e-5, 0.030849387955737825)

julia> saturation_pressure(pr,Ts)
(100000.00004314569, 2.269760164804427e-5, 0.03084938795785433)
source
Clapeyron.enthalpy_vapFunction
enthalpy_vap(model::EoSModel, T,method = ChemPotVSaturation(x0_sat_pure(model,T)))

Calculates ΔH, the difference between saturated vapour and liquid enthalpies at temperature T, in J

source
Missing docstring.

Missing docstring for Clapeyron.crit_pure. Check Documenter's build log for details.

Clapeyron.acentric_factorFunction
acentric_factor(model::EoSModel;crit = crit_pure(model), satmethod = ChemPotVSaturation())

calculates the acentric factor using its definition:

ω = -log10(psatᵣ) -1, at Tᵣ = 0.7

To do so, it calculates the critical temperature (using crit_pure) and performs a saturation calculation (with saturation_pressure(model,0.7Tc,satmethod))

source

Solid–Fluid Single component properties

Clapeyron.melting_pressureFunction
pm,vs,vl = melting_pressure(model::CompositeModel,T;v0=x0_melting_pressure(model,T))

Calculates the melting pressure of a CompositeModel containing a solid and fluid phase EoS, at a specified pressure. You can pass a tuple of initial values for the volumes (vs0,vl0).

returns:

  • Melting Pressure [Pa]
  • melting solid volume at specified temperature []
  • melting liquid volume at specified temperature []
source
Clapeyron.melting_temperatureFunction
pm,vs,vl = melting_temperature(model::CompositeModel,T;v0=x0_melting_pressure(model,T))

Calculates the melting temperature of a CompositeModel containing a solid and fluid phase EoS, at a specified pressure. You can pass a tuple of initial values for the volumes (vs0,vl0).

returns:

  • Melting Temperature [K]
  • melting solid volume at specified pressure []
  • melting liquid volume at specified pressure []
source
Clapeyron.sublimation_pressureFunction
psub,vs,vv = sublimation_pressure(model::CompositeModel,T;v0=x0_sublimation_pressure(model,T))

Calculates the sublimation pressure of a CompositeModel containing a solid and fluid phase EoS, at a specified pressure. You can pass a tuple of initial values for the volumes (vs0,vv0).

returns:

  • Sublimation Pressure [Pa]
  • Sublimation solid volume at specified temperature []
  • Sublimation vapour volume at specified temperature []
source
Clapeyron.sublimation_temperatureFunction
pm,vs,vl = sublimation_temperature(model::CompositeModel,T;v0=x0_sublimation_pressure(model,T))

Calculates the sublimation temperature of a CompositeModel containing a solid and fluid phase EoS, at a specified pressure. You can pass a tuple of initial values for the volumes (vs0,vl0).

returns:

  • Sublimation Temperature [K]
  • sublimation solid volume at specified pressure []
  • sublimation vapour volume at specified pressure []
source
Clapeyron.triple_pointFunction
Tt,pt,vs,vl,vv = triple_point(model::CompositeModel;v0 = x0_triple_point(model))

Calculates the triple point of a CompositeModel containing solid and fluid phase EoS.

returns:

  • Triple point Temperature [K]
  • Triple point Pressure [Pa]
  • solid volume at Triple Point []
  • liquid volume at Triple Point []
  • vapour volume at Triple Point []
source

Saturation methods

Clapeyron.ChemPotVSaturationType
ChemPotVSaturation <: SaturationMethod
ChemPotVSaturation(V0)
ChemPotVSaturation(;vl = nothing,
                    vv = nothing,
                    crit = nothing,
                    crit_retry = true
                    f_limit = 0.0,
                    atol = 1e-8,
                    rtol = 1e-12,
                    max_iters = 10^4)

Default saturation_pressure Saturation method used by Clapeyron.jl. It uses equality of Chemical Potentials with a volume basis. If no volumes are provided, it will use x0_sat_pure. If those initial guesses fail and the specification is near critical point, it will try one more time, using Corresponding States instead. when crit_retry is true, if the initial solve fail, it will try to obtain a better estimate by calculating the critical point. f_limit, atol, rtol, max_iters are passed to the non linear system solver.

source
Clapeyron.ChemPotDensitySaturationType
ChemPotDensitySaturation <: SaturationMethod
ChemPotDensitySaturation(;vl = nothing,
                        vv = nothing,
                        crit = nothing,
                        f_limit = 0.0,
                        atol = 1e-8,
                        rtol = 1e-12,
                        max_iters = 10^4)

Saturation method for saturation_pressure. It uses equality of Chemical Potentials with a density basis. If no volumes are provided, it will use x0_sat_pure. vl and vl are initial guesses for the liquid and vapour volumes. f_limit, atol, rtol, max_iters are passed to the non linear system solver.

source
Clapeyron.IsoFugacitySaturationType
IsoFugacitySaturation <: SaturationMethod
IsoFugacitySaturation(;p0 = nothing,
    vl = nothing,
    vv = nothing,
    crit = nothing,
    max_iters = 20,
    p_tol = sqrt(eps(Float64)))

Saturation method for saturation_pressure. Uses the isofugacity criteria. Ideal for Cubics or other EoS where the volume calculations are cheap. If p0 is not provided, it will be calculated via x0_psat.

source
Clapeyron.ClapeyronSaturationType
ClapeyronSaturation <: SaturationMethod
ClapeyronSaturation(T0 = nothing, crit = nothing, satmethod = ChemPotVSaturation())

Saturation method for saturation_temperature. It solves iteratively saturation_temperature(model,Ti,satmethod) until convergence, by using the Clapeyron equation:

dp/dT = ΔS/ΔV

It descends from the critical point (or T0, if provided). Reliable, but slow.

It is recommended that T0 > Tsat, as the temperature decrease iteration series is more stable. Default method for saturation_temperature until Clapeyron 0.3.7

source
Clapeyron.AntoineSaturationType
AntoineSaturation <: SaturationMethod
AntoineSaturation(;T0 = nothing,
                    vl = nothing,
                    vv = nothing,
                    f_limit = 0.0,
                    atol = 1e-8,
                    rtol = 1e-12,
                    max_iters = 10^4,
                    crit = nothing,
                    crit_retry = false)

Saturation method for saturation_temperature .Default method for saturation temperature from Clapeyron 0.3.7. It solves the Volume-Temperature system of equations for the saturation condition.

If only T0 is provided, vl and vv are obtained via x0_sat_pure. If T0 is not provided, it will be obtained via x0_saturation_temperature. It is recommended to overload x0_saturation_temperature, as the default starting point calls crit_pure, resulting in slower than ideal times. f_limit, atol, rtol, max_iters are passed to the non linear system solver.

source