Skip to content

Releases: cadet/CADET-Core

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.

Version 3.1.1

28 Jul 19:51
Compare
Choose a tag to compare

Besides some minor fixes, the following multi-state binding models are introduced in this release:

  • Multi-state steric mass action (multi-state SMA)
  • Simplified multi-state SMA
  • Multi-component spreading

The Windows version is built with Visual Studio 2017 and CADET requires the corresponding runtime files in order to run. Almost all systems will already have these files. However, if CADET does not work on your system, your system might not have those runtime libraries. In this case, you can download them for free from Microsoft.

Version 3.1.0

28 Jul 19:55
Compare
Choose a tag to compare

CADET has been extended to support networks of unit operations. Many more changes have been made and the most important ones are listed below.
Note that the interface has changed and breaking changes had to be introduced.

Major changes:

  • Full support for strongly coupled networks of unit operations (CADET now natively simulates SMB and other multi-column processes)
  • Support for backwards flow in General Rate Model
  • Replace OpenMP parallelization by Intel Threading Building Blocks
  • Add some behavior tests using the CATCH unit testing framework
  • Extended documentation (improved manual)
  • Improved CMake build system

Version 3.0.0

01 Dec 07:10
Compare
Choose a tag to compare

CADET has been (almost fully) rewritten with a complete new OOP / code
architecture. The rewrite enables and eases the implementation of new
features in the near future and has improved stability as well as
performance of the simulation.

Major highlights:

  • Completely new code architecture
  • Increased single- and multi-core performance
  • Improved documentation (quality and quantity)
  • Improved MATLAB interface and examples
  • Preparations for upcoming features (networks of unit operations and
    support of reaction terms)
  • Consistent initialization of the DAE solver
  • Modernized CMake build system
  • Native support of joined parameters via AD

Unfortunately, the changes are breaking, that is, users have to migrate
their code to the new version.

The Windows version is built with Visual Studio 2015 and CADET requires the corresponding runtime files in order to run. Almost all systems will already have these files. However, if CADET does not work on your system, your system might not have those runtime libraries. In this case, you can download them for free from Microsoft.

Version 2.3.2

05 Mar 16:27
Compare
Choose a tag to compare

Bug fix release:

  • Fix ignored number of threads setting.
  • Fix ignored sensitivity output mode (WRITE_SENS_ALL).

No breaking changes.

Version 2.3.1

04 Mar 13:32
Compare
Choose a tag to compare

Major improvements since last release:

  • Reduced memory consumption by not saving full states for each time
    point. The appropriate data is saved depending on the requested
    output. This results in substantial memory savings if only the column
    outlet is requested.
  • Add support for weighting single data points in fitColumn.
  • Add separate initial condition for bead liquid phase c_pi.
  • Add support for batch resin uptake models by allowing a zero
    interstitial velocity.
  • Fix a bug when writing last sensitivity state.

No breaking changes.

Version 2.3.0

08 Jan 16:21
Compare
Choose a tag to compare

Major improvements since last release:

  • Add support for resuming simulations by reading and writing the full
    state vectors of main and sensitivity systems. Using a previously
    saved state vector as initial condition resumes the simulation.
  • fitColumn script now takes custom optimizer settings as argument
  • Add /meta group to file format. This group holds various data, such as
    the file format version (for backwards compatibility in the future)
    and receives meta data from the simulator (e.g., version info, git
    commit hash etc.).
  • Improve CMake scripts (e.g., git integration)
  • Minor improvements to TeX documentation
  • Bug fixes and error checks in Matlab scripts (especially in fitColumn)

No breaking changes.