Skip to content

Releases: modsim/CADET

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)

Version 3.1.3

16 Mar 15:15
Compare
Choose a tag to compare

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 groups adsorption_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

02 Apr 13:35
Compare
Choose a tag to compare

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 for SOLDOT_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 to WRITE_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 to XYZ_ABC (e.g., SENSDOT_COLUMN_OUTLET -> SENSDOT_OUTLET).
  • In /meta change FILE_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 to WRITE_XYZ_BULK (e.g., WRITE_SENS_COLUMN -> WRITE_SENS_BULK).
  • In output datasets rename XYZ_COLUMN to XYZ_BULK (e.g., SOLDOT_COLUMN -> SOLDOT_BULK).
  • In /meta rename SIMTIME to TIME_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.