All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added
pure_records
getter in theimpl_parameter
macro. #54 - Implemented
Deref
andIntoIterator
forStateVec
for additional vector functionalities of theStateVec
. #55 - Added
StateVec.__len__
andStateVec.__getitem__
to allow indexing and iterating overStateVec
s in Python. #55 - Added
SegmentCount
trait that allows the construction of parameter sets from arbitrary chemical records. #56 - Added
ParameterHetero
trait to generically provide utility functions for parameter sets of heterosegmented Helmholtz energy models. #56
- Changed datatype for binary parameters in interfaces of the
from_records
andnew_binary
methods for parameters to take either numpy arrays off64
or a list ofBinaryRecord
as input. #54 - Modified
PhaseDiagram.to_dict
function in Python to account for pure components and mixtures. #55 - Changed
StateVec
to a tuple struct. #55 - Made
cas
field ofIdentifier
optional. #56 - Added type parameter to
FromSegments
and made itsfrom_segments
function fallible for more control over model limitations. #56 - Reverted
ChemicalRecord
back to a struct that only contains the structural information (and not segment and bond counts). #56 - Made
IdentifierOption
directly usable in Python usingPyO3
's new#[pyclass]
for fieldless enums feature. #58
- Added conversions between
ParameterError
andEosError
to improve the error messages in some cases. #40 - Added new struct
StateVec
, that gives easy access to properties of lists of states, e.g. in phase diagrams. #48 - Added
ln_symmetric_activity_coefficient
andln_phi_pure
to the list of state properties that can be calculated. #50
- Removed
State
fromEntropyScaling
trait and adjusted associated methods to use temperature, volume and moles instead of state. #36 - Replaced the outer loop iterations for the critical point of binary systems with dedicated algorithms. #34
- Renamed
VLEOptions
toSolverOptions
. #38 - Renamed methods of
StateBuilder
and the parameters in theState
constructor in python tomolar_enthalpy
,molar_entropy
, andmolar_internal_energy
. #35 - Removed
PyContributions
andPyVerbosity
in favor of a simpler implementation usingPyO3
's new#[pyclass]
for fieldless enums feature. #41 - Renamed
Contributions::Residual
toContributions::ResidualNvt
andContributions::ResidualP
toContributions::ResidualNpt
. #43 - Renamed macro
impl_vle_state!
toimpl_phase_equilibrium!
. #48 - Removed
_t
and_p
functions in favor of simpler interfaces. The kind of specification (temperature or pressure) is determined from the unit of the argument. #48PhaseEquilibrium::pure_t
,PhaseEquilibrium::pure_p
->PhaseEquilibrium::pure
PhaseEquilibrium::vle_pure_comps_t
,PhaseEquilibrium::vle_pure_comps_p
->PhaseEquilibrium::vle_pure_comps
ThePhaseEquilibria
returned by this function now have the same number of components as the (mixture) eos, that it is called with.PhaseEquilibrium::bubble_point_tx
,PhaseEquilibrium::bubble_point_px
->PhaseEquilibrium::bubble_point
PhaseEquilibrium::dew_point_tx
,PhaseEquilibrium::dew_point_px
->PhaseEquilibrium::dew_point
PhaseEquilibrium::heteroazeotrope_t
,PhaseEquilibrium::heteroazeotrope_p
->PhaseEquilibrium::heteroazeotrope
State::critical_point_binary_t
,State::critical_point_binary_p
->State::crititcal_point_binary
- Combined
PhaseDiagramPure
andPhaseDiagramBinary
into a single structPhaseDiagram
and renamed its constructors. Properties of the phase diagram are available from thevapor
andliquid
getters, that returnStateVec
s. #48PhaseDiagramPure::new
->PhaseDiagram::pure
PhaseDiagramBinary::new_txy
,PhaseDiagramBinary::new_pxy
->PhaseDiagram::binary_vle
PhaseDiagramBinary::new_txy_lle
,PhaseDiagramBinary::new_pxy_lle
->PhaseDiagram::lle
PhaseDiagramHetero::new_txy
,PhaseDiagramHetero::new_pxy
->PhaseDiagram::binary_vlle
which still returns an instance ofPhaseDiagramHetero
- Changed the internal implementation of the Peng-Robinson equation of state to use contributions like the more complex equations of state and removed the suggestion to overwrite the
evaluate_residual
function ofEquationOfState
. #51 - Moved the creation of the python module to the
build_wheel
auxilliary crate, so that only the relevant structs and macros are available for the dependents. #47
- Removed the
utils
module containingDataSet
andEstimator
in favor of a separate crate. #47
- Updated
pyo3
andnumpy
dependencies to 0.16. - Updated
num-dual
dependency to 0.5. - Updated
quantity
dependency to 0.5.
- Fixed bug in
predict
ofEstimator
. #30
- Add
pyproject.toml
. #29
- Fix state constructor for
T
,p
,V
,x_i
specification. #26
- Added method
predict
toEstimator
. #27
- Changed method for vapor pressure in
DataSet
tovapor_pressure
(waspressure
of VLE liquid phase). #27
- Added the following properties to
State
: #21dp_drho
partial derivative of pressure w.r.t. densityd2p_drho2
second partial derivative of pressure w.r.t. densityisothermal_compressibility
the isothermal compressibility
- Read a list of segment records directly from a JSON file. #22
- Changed
ChemicalRecord
to an enum that can hold either the full structural information of a molecule or only segment and bond counts and added anIdentifier
. #19 - Removed the
chemical_record
field fromPureRecord
and mademodel_record
non-optional. #19
- Added
from_multiple_json
function toParameter
trait that is able to read parameters from separate JSON files. #15
- Updated
pyo3
andnumpy
dependencies to 0.15. - Updated
quantity
dependency to 0.4. - Updated
num-dual
dependency to 0.4. - Removed
ndarray-linalg
andndarray-stats
dependencies. - Removed obsolete features for the selection of the BLAS/LAPACK library.
- Initial release