CADET-Process v0.12.0

v0.12.0

CADET-Process v0.12.0 is the culmination of 11 months of dedicated development and collaboration.
This release introduces significant new features, critical bug fixes, enhanced test coverage, and improved documentation.
We strongly encourage all users to upgrade to this version for better performance and new functionalities.

This release requires Python 3.10+.

Highlights and new features of this release

General improvements

  • #330: Improve plotting module: The entire plotting module was overhauled and now offers consistent styling, sizing etc. across all figures.

CADETProcess.processModel improvements

  • #252: Add HIC Unified binding model
  • #292: Add ACT isotherm
  • #331: Add k_eq to selected binding models
  • #289: Account for bound states in SolutionSolid

CADETProcess.modelBuilder improvements

  • #302: Add model builders for BatchElution, Flip-Flop, CLR, SSR, and LWE processes
  • #328: Add SerialColumns builder
  • #368: Model builder improvements: consistent event naming, avoid unnecessary column copies, add own_binding_model option

CADETProcess.comparison improvements

  • #288: Update pearson / shape computation

CADETProcess.fractionation improvements

  • #364: Fractionation improvements
  • #369: Add ProcessMeta dataclass for safe override of process metadata in fractionation

CADETProcess.optimization improvements

  • #153: Add COBYQA optimizer
  • #342: Add heuristic for automatic scaling of pop_size, n_max_gen, and n_ref_dirs
  • #349: Add MassBalance criterion for asserting stationarity
  • #323: Improve Yamamoto method

Other improvements

  • #294: Upload coverage to codecov

Deprecations / Breaking changes

  • In the SimulatorBase class, the run method, which defined an interface for subclasses, is no longer available.
    Users should instead utilize the SimulatorBase.simulate method, which includes additional pre- and post-processing steps.
    The SimulatorBase._run method has been made private.
  • In the OptimizerBase class, the run method, which defined an interface for subclasses, is no longer available.
    Users should instead utilize the OptimizerBase.optimize method, which includes additional pre- and post-processing steps.
    The OptimizerBase._run method has been made private.
  • Height was removed fromShape. (#221)
    Users should instead explicitly add a Height metric to the Comparator.
  • The valve_dead_volume attribute has been removed from the ZoneBaseClass class.
    Instead of using valve_dead_volume, users can now pass valve_parameters.
    This parameter should include a unit_type (which can be either Cstr or TubularReactor) along with the corresponding parameters specific to the unit type.
    For detailed guidance on setting up the valve parameters, refer to the method {meth}ZoneBaseClass._setup_valve.
  • f_min/m_min have been renamed to f_minimized/m_minimized in optimization results to avoid ambiguity.
  • The show option has been removed from all plotting methods.
    Responsibility for managing figures now lies with the user.
  • evaluation_objects has been removed from the set_variables signature.

Fixed bugs

  • #305: Fix indices for aggregator optimization variables
  • #353: Fix optimization variables for fractionation with multiple outlets
  • #354: Fix updating flow rate TimeLine of SolutionIO
  • #367: Manually run callbacks at the end of each optimization for COBYLA
  • #370: Fix buffer capacity improvements
  • #371: Minor fixes
  • #377: Fix stationarity evaluator

Full Changelog: Compare v0.11.1 to v0.12.0

4 Likes