Releases: cadet/CADET-Core
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.
Version 3.1.1
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
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
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
Bug fix release:
- Fix ignored number of threads setting.
- Fix ignored sensitivity output mode (WRITE_SENS_ALL).
No breaking changes.
Version 2.3.1
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
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.