Clapeyron.jl Versions Save

Clapeyron provides a framework for the development and use of fluid-thermodynamic models, including SAFT, cubic, activity, multi-parameter, and COSMO-SAC.

v0.5.1

9 months ago

Clapeyron v0.5.1

Diff since v0.5.0

Merged pull requests:

  • Solid solubility (#194) (@pw0908)
  • (not) Measurements ext (#196) (@pw0908)

v0.5.0

10 months ago

New Features

  • rework of @newmodel, @newmodelgc and newmodelsingle macros. Now they also define the outer constructor. for a simple EoS that does not require transformation of parameters, you can now do:
@newmodel MyModel EoSModel MyModelParam
#define locations for your model, relative to the current database location
Clapeyron.default_locations(::Type{MyModel}) = ["models/mymodel"]
#define references
Clapeyron.default_references(::Type{MyModel}) = ["TODO"]
  • new macro @newmodelsingleton, that defines "singleton" EoSModels.
  • Rework of MultiParameter EoS. there are two new EoSModels that represent Empiric, Multiparameter EoS:
    • SingleFluid: for single component fluids
    • MultiFluid: for multicomponent fluids, with specific mixing and departure rules SingleFluid and MultiFluid constructors are capable of parsing CoolProp JSON single component files. furthermore, you can use the available CoolProp single fluid library by just importing CoolProp into the current working enviroment (using CoolProp).
  • Cubic models that have an alpha dependent of the acentric factor, can be built by passing acentricfactor directly to userlocations, instead of alpha_userlocations (#188)
  • New Function: RGas(model) and Rgas(), that gives the value of the gas constant used by the model. defaults to Clapeyron.R̄ = 8.31446261815324
  • New model: HelmAct, to use multiparameter EoS + activity coefficient models as the departure.
  • New model: XiangDeiters
  • New model: TholLJ (used in LJRef)
  • New model: EmpiricIdeal, the ideal part of a multiparameter model, to be used in conjuction with other EoS
  • New model: AlyLeeIdeal
  • New model: CPLNGEstIdeal (http://dx.doi.org/10.1016/j.jngse.2014.04.011)
  • CSVs allow defining a sep keyword in the inline CSV options:
Clapeyron Database File
my parameters [csvtype = like, sep = ;]
species,Mw
1,3,5,7-CYCLOOCTATETRAENE;156.22368

Breaking changes

  • IAPWS95, PropaneRef, Ammonia2023 are now of type SingleFluid{EmpiricAncillary}.
  • GERG2008, EOS-LNG are now of type MultiFluid{EmpiricAncillary,AsymmetricMixing,EmpiricDeparture}
  • @newmodel macros don't require defining external constructors anymore.
  • SpecialComp (used by pharmaPCSAFT) is now a ClapeyronParam instead of an EoSModel

v0.4.13

11 months ago

Clapeyron v0.4.13

Diff since v0.4.12

Merged pull requests:

  • Add Symbolics extension. (#187) (@longemen3000)

v0.4.12

11 months ago

Clapeyron v0.4.12

Diff since v0.4.11

Merged pull requests:

  • Fix detection of real cubic roots (#185) (@Liozou)

v0.4.11

1 year ago

Clapeyron v0.4.11

Diff since v0.4.10

v0.4.10

1 year ago

Clapeyron v0.4.10

Diff since v0.4.9

Closed issues:

  • Help - trying to make LLE with UNIFAC (Not an issue) (#144)
  • Specific heat capacity of water (#149)
  • BoundsError in example/mixing_functions notebook (#171)
  • SRK not reading critical temperature (Tc) (#175)

Merged pull requests:

  • TP-Flash with activity models (#164) (@longemen3000)
  • Bump actions/cache from 1 to 3 (#166) (@dependabot[bot])
  • Bump actions/checkout from 2 to 3 (#167) (@dependabot[bot])
  • Bump codecov/codecov-action from 1 to 3 (#168) (@dependabot[bot])
  • Bump JuliaRegistries/TagBot from 1.10 to 1.14 (#169) (@dependabot[bot])
  • Update CI (#170) (@longemen3000)
  • revamp kwarg and dispatch handling for methods (NFC) (#174) (@longemen3000)
  • Add PPCSAFT implementation (#176) (@pw0908)
  • Fix typo and add Julia version requirement (#177) (@tkeskita)

v0.4.9

1 year ago

Clapeyron v0.4.9

Diff since v0.4.8

Closed issues:

  • Module reference in @registermodel (#157)

Merged pull requests:

  • Add experimental data points to heat capacity plot (#163) (@tkeskita)

v0.4.8

1 year ago

New Features

  • you can pass a named tuple to userlocations and its variants to build a model directly from those parameters (#156). for example, with PCSAFT:
julia> model = PCSAFT(["a1"],userlocations = (;
        Mw = [1.],
        epsilon = [2.],
        sigma = [3.],
        segment = [4.],
        k = [0.0;;], #matrix
        n_H = [1],
        n_e = [1],
        epsilon_assoc = Dict((("a1","e"),("a1","H")) => 1000.),
        bondvol = Dict((("a1","e"),("a1","H")) => 0.001)))
PCSAFT{BasicIdeal} with 1 component:
 "a1"
Contains parameters: Mw, segment, sigma, epsilon, epsilon_assoc, bondvol
  • The dense option in AssocOptions is deprecated and it will be removed on 0.5.0. the sparse solver is not used anymore, the dense solver has performance advantages in all cases.

Bug Fixes

  • bug in @registermodel (#157)

Diff since v0.4.7

Closed issues:

  • Missing type when adding custom model (#154)
  • Module reference in @registermodel (#157)

Merged pull requests:

  • allow passing a NamedTuple to userlocations kwarg (#156) (@longemen3000)
  • Some docs for the u and w vectors for Gauss-Laguerre (#159) (@ianhbell)

v0.4.7

1 year ago

bug fixes

  • @newmodel,@newmodelsimple and@newmodelgc macros had a bug where some structs and types didn't have the proper namespace (#154)

v0.4.6

1 year ago

Bug fixes

fixed bug on Michelsen TP flash introduced in the last release.