Releases: cadet/CADET-Core
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)
Version 3.1.3
Major changes:
- Add a command line tool to convert input files between formats (JSON, HDF5, XML).
- Make initial conditions true parameters which can be used for sensitivities.
- Improve file format documentation layout.
- Fix problems when using externally dependent binding models with multithreading.
- Add support for multiple particle types in the GRM.
- Add support for core shell particles in GRM.
Non-breaking changes in the file format:
- Additional field
PAR_CORERADIUS
for core shell particle support. - Additional field
PAR_TYPE_VOLFRAC
and groupsadsorption_XYZ
for multiple particle type support.
Major internal changes:
- Add support for SUNDIALS v3.0.0 and above.
- Update CATCH to CATCH2.
- Add continuous integration (Travis CI and AppVeyor CI).
- Unify file IO.
- Fix a lot of bugs (e.g., memory related, consistent initialization).
- Binding models use a custom template processor pre-build step to save boilerplate code.
Version 3.1.2
Major changes:
- Add variable volume continuous stirred-tank reactor model (supports binding for batch uptake experiments).
- Add lumped rate model without pores (e.g., equilibrium dispersive model, DPFR, PFR).
- Add lumped rate model with pores.
- Add support for size exclusion chromatography (models can be run without binding model,
PORE_ACCESSIBILITY
provides component dependent porosities). - Add a lot of tests for various vital parts (Jacobians, parameter sensitivities).
- Add row equilibration to consistent initialization (nonlinear solvers, linear systems) for improved precision.
- Fix a lot of bugs.
- Add JSON as input file format to cadet-cli.
- Improve documentation.
Breaking changes in the file format:
- In output datasets:
SOLUTION_PARTICLE
no longer contains mobile and solid phase, but only the mobile phase. The same holds forSOLDOT_PARTICLE
,SENS_PARTICLE
,SENSDOT_PARTICLE
. - Added
SOLUTION_SOLID
(SOLDOT_SOLID
,SENS_SOLID
,SENSDOT_SOLID
) output dataset which stores the solid phase. - Added
WRITE_XYZ_SOLID
field to/input/return/unit_ABC
for configuring whether the solid phase is returned. - In return configuration rename
WRITE_XYZ_COLUMN_ABC
toWRITE_XYZ_ABC
(e.g.,WRITE_SOLUTION_COLUMN_INLET
->WRITE_SOLUTION_INLET
). Note that the old return configuration fields are still supported for compatibility, but this may change at any time. - In output datasets rename
XYZ_COLUMN_ABC
toXYZ_ABC
(e.g.,SENSDOT_COLUMN_OUTLET
->SENSDOT_OUTLET
). - In
/meta
changeFILE_FORMAT
version field from string to int. Versions of the type Major.Minor.Patch are assumed to have only two digits for each part. This number is encoded in an int by concatenating the parts (e.g., „02.12.78" -> 21278). - In return configuration rename
WRITE_XYZ_COLUMN
toWRITE_XYZ_BULK
(e.g.,WRITE_SENS_COLUMN
->WRITE_SENS_BULK
). - In output datasets rename
XYZ_COLUMN
toXYZ_BULK
(e.g.,SOLDOT_COLUMN
->SOLDOT_BULK
). - In
/meta
renameSIMTIME
toTIME_SIM
.
Non-breaking changes in the file format:
- In return configuration add
WRITE_XYZ_VOLUME
(e.g.,WRITE_SOLUTION_VOLUME
) to indicate that the volume should be returned if it is available (e.g., CSTR). - In output datasets add
XYZ_VOLUME
datasets (e.g.,SOLUTION_VOLUME
). - Expose some time integrator (IDAS) settings to the user (e.g., number of Newton iterations, sensitivity error test).
Major internal changes:
- Change state ordering from component-major to cell-major in the bulk block of the GRM.
- Reduce duplicated and boilerplate code (especially in binding models).
- Changes in some internal interfaces necessitated by CSTR implementation.