Releases: cadet/CADET-Core
Version 5.0.1
Version 5.0.0
CADET-Core v5.0.0 is the culmination of years of hard work. It contains many new features, numerous bug-fixes, improved test coverage and better documentation. All users are encouraged to upgrade to this release, as there are a large number of bug-fixes and optimizations.
Added
- Spatial DGSEM discretization: Added spatial DGSEM discretization to enhance computational performance of chromatography models (see #110 and #190 and our corresponding publication). Please refer to the updated documentation for information on optimal discretization parameters.
- Crystallization: Added crystallization models in CSTR and DPFR (see #112 and our corresponding publication)
- Radial flow chromatography: Added radial flow chromatography models (rLRM, rLRMP, rGRM) (see #120)
- New Unit Operation: Multichannel transport model: Added multichannel transport (MCT) model (see #95, the MCT documentation and our publication)
- AD Jacobians: Automatic computation of binding model Jacobians using automatic differentiation (AD), independently from other modules such as transport (see #220).
- New Reaction Model: Michaelis-Menten kinetics: Added basic Michaelis-Menten kinetics have been added, (see #180 and the added documentation)
- New C-API: Finalized a simple C interface to
libcadet
to improve simulation startup and output speeds (see #115) - Infrastructure: Added a parameter dependency system and first parameter-on-parameter dependencies (see #120)
Updated
- Improved performance: Switch from full Newton to modified Newton method in SUNDIALS. (see #196) and more (#219, #269), which further improves performance when combined with the added spatial DGSEM discretization.
- Simplified build: Streamlined build process for various platforms, including improved Windows build instructions (see #153).
- Test coverage: Unit tests for all transport and binding models
- Documentation:
- New developer guide added, with several improvements to the general documentation (see #85, #181, #141, and #193).
- Added documentation for the colloidal model and Michaelis-Menten kinetics (see #85, #255).
Changed
- Model interface: Separated model parameters from discretization parameters in the input file for cleaner configuration. Backward compatibility with the previous interface has been maintained (see #177).
- CSTR model: Enhanced the CSTR model to support variable porosity (see #211 and #245).
- Stability improvements: Add linearization to mobile phase modulator langmuir binding (see #261)
Deprecated
- MATLAB interface: The MATLAB interface has been officially deprecated.
Fixed
- #138: Fix includes when compiling tests without 2D GRM enabled.
- #150: Fix missing CSTR bulk solution export.
- #155: Fix and expand tests.
- #198: Fix timing precision.
- #199: Fix Eigen include headers and CMake include directories.
- #218: Fix CI badge.
- #243: Fix compiler error when using C++23 standard.
- #264: Fix narrowing conversion in LRMP_DG for cadet_parallelize code block.
- #267: Fix optional build of DG units.
- #286: Fix CSTR interface documentation and ensure backward compatibility.
- #294: Fix test interdependencies.
Version 4.4.0
This is a minor release bundling some recent fixes and adding LDF and HIC isotherms.
Added
- Added simple C interface to libcadet (cd32fc4)
- Added linear driving force implementations of certain isotherms (bee06f6), see docs:
- Freundlich LDF
- Multi-component-Langmuir LDF
- Multi-component-Langmuir LDF liquid phase
- Multi-component-Bi-Langmuir LDF
- Added 2 HIC Isotherms: (6e93126) (#121)
Fixed
- Fixed solution dimensions for lumped rate model with pores (#133)
- Fix consistent initial state for linear isotherm (b62b890) (#106)
- Fix issue with consistent initialization of LRM (f40f239) (#107)
- Fixed return config validation in SolutionRecorder (8070044)
- Fixed binding model tests that use external funcs (761d9cd)
- Fixed compiling issues with C API on Mac OS (3efce73)
- Fixed HDF5 writer when using blocks (which sometimes just wrote zeros to the h5 file) (43424e2)
- Fixed build error for non-Windows systems (8fd1f23)
- Fixed reaction Jacobian in models without bound phase (bab4763)
- Fixed bugs in solution exporter implementation (4eeeed5)
Changed
- Changed writing output from pull to push model (c32c426)
- Removed Kumar-Langmuir Binding Model from documentation, which is a special case of Mobile Phase Modulator Langmuir Model (Kumar is still available). (7ca2328) (#119)
Updated
Version 4.3.0
This is a minor release to bundle some recent fixes and prepare for publication on conda-forge.
Added
- Added flag to save last state of each unit separately. (#23) (fc4bc2d)
- Write solution when time integration fails. (35d7aac)
- Added signal handling to cadet-cli. Handles
CTRL+C
, orSIGINT
incadet-cli
. (1a1c60a)
Fixed
- Fixed handling of column flow direction in combination with dynamic flow rates. (#96) (2e0af62)
- Fixed missing
include <iterator>
for VS2017 Windows conda build. (c63f1dd) - Fix problem with negative
NTHREADS
values. (#83) (c832f68)
Changed
- Improved handling of
INIT_STATE_Y
&INIT_STATE_YDOT
. (435c79e) - Complete overhaul of documentation (see https://cadet.github.io). This (almost) removes the need for the separate CADET-Website repository which is now only used as proxy for triggering workflows until CI is fully updated. This update also automatically builds the documentation for each release of CADET and includes links to the documentation of subprojects such as CADET-Match. Deprecates old LaTeX documentation. (#66)
Version 4.2.0
Minor changes:
- Inlet concentration now returns the actual inlet concentration instead of the concentration in the first axial cell.
- Outlet and inlet concentrations of a unit operation are assigned with respect to flow direction.
- Add a colloidal binding model developed by the group of Lenhoff at University of Delaware
- Pore and surface diffusion coefficients may depend on concentration (i.e., support for nonlinear pore and surface diffusion)
- Generalized ion exchange binding model now uses separate normalization concentrations for the pH dependent terms
- Make ADSORPTION_MODEL optional in unit operations (defaults to NONE)
- Many bugfixes
Major internal changes:
- Add SUNDIALS 3.2.1 to distribution and optionally support external SUNDIALS code
- Fix many compiler warnings on Linux and MacOS
- Require a C++17 compiler
- Support binary distribution of Intel oneTBB
Version 4.1.0
Major changes:
- Dynamic flow rates: Flow rates can depend on time (cubic polynomial)
- Performance optimization for acyclic systems of unit operations: Force serial or parallel mode by setting
LINEAR_SOLUTION_MODE
- Particle geometries: Add support for cylinders and slabs
Minor changes:
- Fix convergence order problem for rapid-equilibrium binding with surface diffusion
- Parallelize consistent initialization on system level
- Extended mobile phase modulators binding model with linear binding for selected components
- Fix ParameterFit Matlab class
- Fix reactions in CSTR
- Fix reactions in DPFR / non-binding LRM
Non-breaking changes in the file format:
- Allows
CONNECTIONS
list to have 3 additional columns for flow rate polynomial coefficients ifCONNECTIONS_INCLUDE_DYNAMIC_FLOW
is enabled.
Major internal changes:
- Improved CMake build system
- Remove ADOL-C from distribution
- Fix Travis and AppVeyor CI
- Split ModelSystemImpl.cpp into multiple files
Version 4.0.1
Major changes:
- Fix backwards incompatible file format change (addition of PORT_XYZ
to dataset names) - Fix Matlab interface bugs (ports, StirredTankModel)
Minor changes:
- Fix Windows build problems
- Update build instructions
- Fix bug when using equidistant particle discretization and core-shell
beads - Minor fixes and improvements
Version 4.0.0
Major changes:
- Added dynamic reaction terms to all unit operation models.
IS_KINETIC
field of binding models can now be set on per-bound-state basis.
Minor changes:
- Added radial column position to external function interface.
- Added progress bar to cadet-cli. The bar is enabled by calling
cadet-cli --progress
.
Non-breaking changes in the file format:
- Allows
CONNECTIONS
list to have 5 columns (port indices are omitted) in case of missing multi-port unit operations. A 7 column list can be used ifCONNECTIONS_INCLUDE_PORTS
is enabled.
Major internal changes:
- Modernized CMake build system.
- Refactored scratch memory interface and added thread local storage.
- Simplified AD library.
- Removed timeFactor and time transformation.
- Moved consistent initialization from binding models to unit operations.
Version 3.2.0
Major changes:
- Add 2D general rate model variant.
- Add support for multiple ports in unit operations.
- Parameter multiplexing for initial conditions and particle-type dependent parameters (including binding models). This allows, for example, to specify just one value for all particle types.
Minor changes:
- Make axial dispersion coefficient component-dependent in all column models.
Breaking changes in the file format:
CONNECTIONS
list is now 7 columns wide (2 additional columns for source and destination ports).SOLUTION_OUTLET
,SOLUTION_INLET
,SOLDOT_OUTLET
,SOLDOT_INLET
,SENS_OUTLET
,SENS_INLET
,SENSDOT_OUTLET
,SENSDOT_INLET
now return the solution for all unit operation ports. WhenSPLIT_PORTS_DATA
andSPLIT_COMPONENTS_DATA
are both disabled, a 3d array is returned. WhenSPLIT_PORTS_DATA
is enabled, the usual 2d arrays (SPLIT_COMPONENTS_DATA
disabled) or many 1d arrays (SPLIT_COMPONENTS_DATA
enabled) are returned as usual.
Non-breaking changes in the file format:
- Add support for returning discretization node coordinates (useful for plotting) in
/output/coordinates
. This is enabled by setting/input/return/unit_XXX/WRITE_COORDINATES
to 1. - Add several options to control parameter multiplexing for breaking ties or correcting automatic inference.
Major internal changes:
- Refactoring of convection dispersion operator code.
- Add compressed sparse matrix and support for sparse direct solvers (SuperLU, UMFPACK). The Matlab MEX interface automatically uses Matlab's UMFPACK library.
- Added and fixed bugs in tests.
- Refactoring of some function signatures by grouping common parameters into structs.
Version 3.1.4
Major changes:
- Add multiple particle type support to LRMP and CSTR unit operations
- Allow particle volume fractions to depend on the axial coordinate in LRMP and GRM models.
Internal changes:
- Added more tests (e.g., for flux part of Jacobian)