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.
- Implemented
HelmholtzEnergyFunctionalforEquationOfStateto be able to use functionals as equations of state. #158
HelmholtzEnergyFunctional: addedComponentstrait as trait bound and removedideal_gasmethod. #158DFT<F>now implementsResidualand furthermoreIdealGasifFimplementsIdealGas. #158- What properties (and contributions) of
DFTProfileare available now depends on whether an ideal gas model is provided or not. #158
- Removed
DefaultIdealGasContribution#158 - Removed getters for
chemical_potential(for profiles) andmolar_gibbs_energy(forAdsorption1DandAdsorption3D) from Python interface. #158
- Updated
num-dualdependency to 0.7. #137
- Added new methods
drho_dmu,drho_dpanddrho_dtthat calculate partial derivatives of density profiles to every DFT profile. Also includes direct access to the integrated derivativesdn_dmu,dn_dpanddn_dt. #134 - Added
enthalpy_of_adsoprtionandpartial_molar_enthalpy_of_adsorptiongetters to pores and adsorption isotherms. #135
PlanarInterfacenow has methods for the calculation of the 90-10 interface thickness (PlanarInterface::interfacial_thickness), interfacial enrichtment (PlanarInterface::interfacial_enrichment), and relative adsorption (PlanarInterface::relative_adsorption). #64- Added a matrix-free Newton DFT solver that uses GMRES for the linear subproblem. #75
- Solver metrics like execution time and the residuals are automatically logged during every computation. The results can be accessed via the
solver_logfield ofDFTProfile. #75
- Added
SendandSyncas supertraits toHelmholtzEnergyFunctionaland all related traits. #57 - Renamed the
3d_dftfeature torayonin accordance to the other feos crates. #62 - internally rewrote the implementation of the Euler-Lagrange equation to use a bulk density instead of the chemical potential as variable. #60
- Renamed the parameter
betaof the Picard iteration and Anderson mixing solvers todamping_coefficient. #75 - Removed generics for units in all structs and traits in favor of static SI units. #115
- Fixed the sign of vector weighted densities in Cartesian and cylindrical geometries. The wrong sign had no effects on the Helmholtz energy and thus on density profiles. #120
- Updated
pyo3andnumpydependencies to 0.18. #119 - Updated
quantitydependency to 0.6. #119 - Updated
num-dualdependency to 0.6. #119
- The 3D DFT functionalities (3D pores, solvation free energy, free-energy-averaged potentials) are hidden behind the new
3d_dftfeature. For the Python package, the feature is always enabled. #51
Adsorption::equilibrium_isotherm,Adsorption::adsorption_isotherm, andAdsorption::desorption_isothermonly acceptSIArray1s as input for the pressure discretization. #50- For the calculation of desorption isotherms and the filled branches of equilibrium isotherms, the density profiles are initialized using a liquid bulk density. #50
- Added getters for the fields of
Pore1Din Python. #30 - Added Steele potential with custom combining rules. #29
- Made FMT functional more flexible w.r.t. the shape of the weight functions. #31
- Changed interface of
PairCorrelationFunctionto facilitate the calculation of pair correlation functions in mixtures. #29
- Moved the implementation of fundamental measure theory to the
feoscrate. #27
- Added
grand_potential_densitygetter for DFT profiles in Python. #22
- Renamed
AxisGeometrytoGeometry. #19 - Removed
PyGeometryandPyFMTVersionin favor of a simpler implementation usingPyO3's new#[pyclass]for fieldless enums feature. #19 DFTSolvernow usesVerbosityinstead of aboolto control its output. #19SurfaceTensionDiagramnow uses the newStateVecstruct to access properties of the bulk phases. #19Pore1D::initializeandPore3D::initializenow accept initial values for the density profiles as optional arguments. #24- Internally restructured the
DFTstructure to avoid redundant data. #24 - Removed the
mfunction inFluidParameters, it is instead inferred fromHelmholtzEnergyFunctionalwhich is now a supertrait ofFluidParameters. #24 - Added optional field
cutoff_radiustoExternalPotential::FreeEnergyAveraged. #25
- Updated
pyo3andnumpydependencies to 0.16. - Updated
quantitydependency to 0.5. - Updated
num-dualdependency to 0.5. - Updated
feos-coredependency to 0.2. - Updated
angdependency to 0.6. - Removed
logdependency.
- The pore volume for
Pore3Dis now also accesible from Python. #16
- The pore volume using Helium at 298 K as reference is now directly accesible from
Pore1DandPore3D. #13
- Removed the
unsendabletag from python classes wherever possible. #14
HelmholtzEnergyFunctionals can now overwrite theideal_gasmethod to provide a non-default ideal gas contribution that is accounted for in the calculation of the entropy, the internal energy and other properties. #10
- Removed the
functionalfield inPore1DandPore3D. #9
- Fixed the units of default values for adsorption isotherms. #8
- Updated
rustdctdependency to 0.7.
- Initial release