Skip to content

Releases: cadet/CADET-Core

Version 5.0.1

14 Nov 12:19
Compare
Choose a tag to compare

CADET-Core v5.0.1 is a bug-fix release to remedy two bugs introduced in v5.0.0 and update the documentation.

Fixed

  • #310: Fix time-derivative Jacobian of the CSTR.
  • #311: Fix backwards compatibility of the CSTR.
  • #312 and more: Fix several typos and extend the documentation.

Version 5.0.0

25 Oct 09:31
7635e2f
Compare
Choose a tag to compare

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:

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

24 Jul 15:37
Compare
Choose a tag to compare

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)
    • Water on Hydrophobic Surfaces (#116), see.
    • HIC based on Constant Water Activity (#118), see.

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

Updated

  • Updated installation instructions (a454522)
  • Updated documentation: (commits 8747d94, 783a3d0, a3c2677)
    • Improved documentation of discretization (783a3d0)
    • Update docs on linear solution mode heuristic (a3c2677)

Version 4.3.0

13 Oct 11:10
Compare
Choose a tag to compare

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, or SIGINT in cadet-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

08 Jun 11:14
Compare
Choose a tag to compare

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

12 Oct 13:14
Compare
Choose a tag to compare

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 if CONNECTIONS_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

06 May 13:49
Compare
Choose a tag to compare

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

16 Mar 15:10
Compare
Choose a tag to compare

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 if CONNECTIONS_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

16 Mar 15:13
Compare
Choose a tag to compare

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. When SPLIT_PORTS_DATA and SPLIT_COMPONENTS_DATA are both disabled, a 3d array is returned. When SPLIT_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

16 Mar 15:14
Compare
Choose a tag to compare

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)