diff --git a/docs/theory/eos/properties.md b/docs/theory/eos/properties.md index 5826c5db6..29f0332d2 100644 --- a/docs/theory/eos/properties.md +++ b/docs/theory/eos/properties.md @@ -92,6 +92,9 @@ The table below lists all properties that are available in $\text{FeO}_\text{s}$ | Joule Thomson coefficient $\mu_\mathrm{JT}$ | $\left(\frac{\partial T}{\partial p}\right)_{H,n_i}$ | no | | Isentropic compressibility $\kappa_s$ | $-\frac{1}{V}\left(\frac{\partial V}{\partial p}\right)_{S,n_i}$ | no | | Isothermal compressibility $\kappa_T$ | $-\frac{1}{V}\left(\frac{\partial V}{\partial p}\right)_{T,n_i}$ | no | +| Isenthalpic compressibility $\kappa_h$ | $-\frac{1}{V}\left(\frac{\partial V}{\partial p}\right)_{H,n_i}$ | no | +| Thermal expansivity $\alpha_p$ | $-\frac{1}{V}\left(\frac{\partial V}{\partial T}\right)_{p,n_i}$ | no | +| Grüneisen parameter $\phi$ | $V\left(\frac{\partial p}{\partial U}\right)_{V,n_i}=\frac{v}{c_v}\left(\frac{\partial p}{\partial T}\right)_{v,n_i}=\frac{\rho}{T}\left(\frac{\partial T}{\partial \rho}\right)_{s, n_i}$ | no | | (Static) structure factor $S(0)$ | $RT\left(\frac{\partial\rho}{\partial p}\right)_{T,n_i}$ | no | ## Additional properties for fluids with known molar weights diff --git a/feos-core/CHANGELOG.md b/feos-core/CHANGELOG.md index b0e933596..b8275ec9a 100644 --- a/feos-core/CHANGELOG.md +++ b/feos-core/CHANGELOG.md @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## Unreleased +### Added +- Added new functions `isenthalpic_compressibility`, `thermal_expansivity` and `grueneisen_parameter` to `State`. [#154](https://github.com/feos-org/feos/pull/154) ## [0.4.2] - 2023-04-03 ### Fixed diff --git a/feos-core/src/python/state.rs b/feos-core/src/python/state.rs index 9e0045cea..dbc1bd330 100644 --- a/feos-core/src/python/state.rs +++ b/feos-core/src/python/state.rs @@ -903,6 +903,33 @@ macro_rules! impl_state { PySINumber::from(self.0.isothermal_compressibility()) } + /// Return isenthalpic compressibility coefficient. + /// + /// Returns + /// ------- + /// SINumber + fn isenthalpic_compressibility(&self) -> PySINumber { + PySINumber::from(self.0.isenthalpic_compressibility()) + } + + /// Return thermal expansivity coefficient. + /// + /// Returns + /// ------- + /// SINumber + fn thermal_expansivity(&self) -> PySINumber { + PySINumber::from(self.0.thermal_expansivity()) + } + + /// Return Grueneisen parameter. + /// + /// Returns + /// ------- + /// float + fn grueneisen_parameter(&self) -> f64 { + self.0.grueneisen_parameter() + } + /// Return structure factor. /// /// Returns diff --git a/feos-core/src/state/properties.rs b/feos-core/src/state/properties.rs index baf749718..773028d6e 100644 --- a/feos-core/src/state/properties.rs +++ b/feos-core/src/state/properties.rs @@ -510,6 +510,25 @@ impl State { -1.0 / (self.dp_dv(c) * self.volume) } + /// Isenthalpic compressibility: $\kappa_H=-\frac{1}{V}\left(\frac{\partial V}{\partial p}\right)_{H,N_i}$ + pub fn isenthalpic_compressibility(&self) -> SINumber { + self.isentropic_compressibility() * (1.0 + self.grueneisen_parameter()) + } + + /// Thermal expansivity: $\alpha_p=-\frac{1}{V}\left(\frac{\partial V}{\partial T}\right)_{p,N_i}$ + pub fn thermal_expansivity(&self) -> SINumber { + let c = Contributions::Total; + -self.dp_dt(c) / self.dp_dv(c) / self.volume + } + + /// Grueneisen parameter: $\phi=V\left(\frac{\partial p}{\partial U}\right)_{V,n_i}=\frac{v}{c_v}\left(\frac{\partial p}{\partial T}\right)_{v,n_i}=\frac{\rho}{T}\left(\frac{\partial T}{\partial \rho}\right)_{s, n_i}$ + pub fn grueneisen_parameter(&self) -> f64 { + let c = Contributions::Total; + (self.volume / (self.total_moles * self.c_v(c)) * self.dp_dt(c)) + .into_value() + .unwrap() + } + /// Structure factor: $S(0)=k_BT\left(\frac{\partial\rho}{\partial p}\right)_{T,N_i}$ pub fn structure_factor(&self) -> f64 { -(SIUnit::gas_constant() * self.temperature * self.density) diff --git a/parameters/pcsaft/literature.bib b/parameters/pcsaft/literature.bib index 4501905d6..58b9f7e22 100644 --- a/parameters/pcsaft/literature.bib +++ b/parameters/pcsaft/literature.bib @@ -78,16 +78,16 @@ @article{loetgeringlin2015 } @article{loetgeringlin2018, - author = {Lötgering-Lin, Oliver and Gross, Joachim}, - title = {Group Contribution Method for Viscosities Based on Entropy Scaling Using the Perturbed-Chain Polar Statistical Associating Fluid Theory}, + author = {Lötgering-Lin, Oliver and Fischer, Matthias and Hopp, Madlen and Gross, Joachim}, + title = {Pure Substance and Mixture Viscosities Based on Entropy Scaling and an Analytic Equation of State}, journal = {Industrial \& Engineering Chemistry Research}, - volume = {54}, - number = {32}, - pages = {7942-7952}, - year = {2015}, - doi = {10.1021/acs.iecr.5b01698}, - url = {https://doi.org/10.1021/acs.iecr.5b01698}, - eprint = {https://doi.org/10.1021/acs.iecr.5b01698} + volume = {57}, + number = {11}, + pages = {4095-4114}, + year = {2018}, + doi = {10.1021/acs.iecr.7b04871}, + url = {https://doi.org/10.1021/acs.iecr.7b04871}, + eprint = {https://doi.org/10.1021/acs.iecr.7b04871} } @article{rehner2020,