CADET-Process v0.11.0 is the culmination of 6 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
- Added Contributor’s guide. (#112)
- Split optional dependencies and dependency groups. (#266)
- Migrated from unittest to pytest for a more flexible and expressive testing framework, simplifying test discovery and fixtures.
- Added Dependabot for automated dependency monitoring and updates, helping to catch outdated or vulnerable packages early. (#231)
- Adopted the XDG Base Directory specification to standardize the location of temporary files and cache directories, improving compatibility with user environments.
- Introduced Ruff for linting and formatting, ensuring consistent code style, enforcing docstrings, and maintaining type annotations across the codebase. (#259)
CADETProcess.processModel
improvements
- Add/component names when adding reactions by @AntoniaBerger in Add/component names when adding reactions by AntoniaBerger · Pull Request #223 · fau-advanced-separations/CADET-Process · GitHub
- Make axial dispersion component dependent by @schmoelder in Make axial dispersion component dependent by schmoelder · Pull Request #239 · fau-advanced-separations/CADET-Process · GitHub
- Add method to calculate Bodenstein number by @schmoelder in Add method to calculate Bodenstein number by schmoelder · Pull Request #234 · fau-advanced-separations/CADET-Process · GitHub
- Improve interpolation of concentration profiles by @schmoelder in Improve interpolation of concentration profiles by schmoelder · Pull Request #218 · fau-advanced-separations/CADET-Process · GitHub
- Normalize profiles before fitting piecewise polynomial by @schmoelder in Normalize profiles before fitting piecewise polynomial by schmoelder · Pull Request #205 · fau-advanced-separations/CADET-Process · GitHub
CADETProcess.comparison
improvements
- Add ShapeFront difference metric by @schmoelder in Add ShapeFront difference metric by schmoelder · Pull Request #242 · fau-advanced-separations/CADET-Process · GitHub
CADETProcess.fractionation
improvements
- Add/use component names when adding fractions by @AntoniaBerger in Add/use component names when adding fractions by AntoniaBerger · Pull Request #244 · fau-advanced-separations/CADET-Process · GitHub
- Use last point fulfilling purity constraints for initial values by @schmoelder in Use last point fulfilling purity constraints for initial values by schmoelder · Pull Request #254 · fau-advanced-separations/CADET-Process · GitHub
CADETProcess.simulator
improvements
- Add version property to Cadet by @schmoelder in Add version property to Cadet by schmoelder · Pull Request #255 · fau-advanced-separations/CADET-Process · GitHub
- Add warning to simulator when setting n_cycles_max below n_cycles_min by @ronald-jaepel in Add warning to simulator when setting n_cycles_max below n_cycles_min by ronald-jaepel · Pull Request #213 · fau-advanced-separations/CADET-Process · GitHub
- Adapt to CADET-Python’s new run interface by @ronald-jaepel in Adapt to CADET-Python's new run interface by ronald-jaepel · Pull Request #245 · fau-advanced-separations/CADET-Process · GitHub
CADETProcess.optimization
improvements
- Expose option to set precision for variables by @schmoelder in Expose option to set precision for variables by schmoelder · Pull Request #103 · fau-advanced-separations/CADET-Process · GitHub
- Add pairwise plot by @schmoelder in Add pairwise plot by schmoelder · Pull Request #246 · fau-advanced-separations/CADET-Process · GitHub
- Update hopsy methods by @schmoelder in Update hopsy methods by schmoelder · Pull Request #240 · fau-advanced-separations/CADET-Process · GitHub
Other improvements
- Make run methods private by @schmoelder in Make run methods private by schmoelder · Pull Request #211 · fau-advanced-separations/CADET-Process · GitHub
- Fix syntax warnings for invalid escape sequence in docstrings by @schmoelder in Fix syntax warnings for invalid escape sequence in docstrings by schmoelder · Pull Request #241 · fau-advanced-separations/CADET-Process · GitHub
- Pin sqlite version to avoid crashes by @schmoelder in Pin sqlite version to avoid crashes by schmoelder · Pull Request #233 · fau-advanced-separations/CADET-Process · GitHub
Deprecations / Breaking changes
- In the
SimulatorBase
class, therun
method, which defined an interface for subclasses, is no longer available. Users should instead utilize theSimulatorBase.simulate
method, which includes additional pre- and post-processing steps. TheSimulatorBase._run
method has been made private. - In the
OptimizerBase
class, therun
method, which defined an interface for subclasses, is no longer available. Users should instead utilize theOptimizerBase.optimize
method, which includes additional pre- and post-processing steps. TheOptimizerBase._run
method has been made private. - Height was removed from
Shape
. (#221)
Users should instead explicitly add aHeight
metric to theComparator
. - The
valve_dead_volume
attribute has been removed from theZoneBaseClass
class.
Instead of usingvalve_dead_volume
, users can now passvalve_parameters
. This parameter should include aunit_type
(which can be eitherCstr
orTubularReactor
) along with the corresponding parameters specific to the unit type. For detailed guidance on setting up the valve parameters, refer to the methodZoneBaseClass._setup_valve
.
It’s important to note that the current implementation of valve parameters is a temporary workaround to address a limitation in CADET-Core, which does not support zero-volume mixer/splitter unit operations and is not meant to model system dead volume. Hopefully, future updates will include support for this feature, eliminating the need for this workaround.
Fixed bugs:
- Do not round hopsy problem when computing chebyshev center by @schmoelder in Do not round hopsy problem when computing chebyshev center by schmoelder · Pull Request #256 · fau-advanced-separations/CADET-Process · GitHub
- Fix storage of surface_diffusion in parameters dict by @schmoelder in Fix storage of surface_diffusion in parameters dict by schmoelder · Pull Request #277 · fau-advanced-separations/CADET-Process · GitHub
- Transfer output state when building flow sheet from CarouselBuilder by @schmoelder in Transfer output state when building flow sheet from CarouselBuilder by schmoelder · Pull Request #274 · fau-advanced-separations/CADET-Process · GitHub
- Add concentration to parameters by @schmoelder in Add concentration to parameters by schmoelder · Pull Request #238 · fau-advanced-separations/CADET-Process · GitHub
- Call super().init() for Simulator by @schmoelder in Call super().__init__() for Simulator by schmoelder · Pull Request #212 · fau-advanced-separations/CADET-Process · GitHub
- Fix Aggregator setter by @schmoelder in Fix Aggregator setter by schmoelder · Pull Request #216 · fau-advanced-separations/CADET-Process · GitHub
- Fix ProxyList by @schmoelder in Fix ProxyList by schmoelder · Pull Request #225 · fau-advanced-separations/CADET-Process · GitHub
- Handle nan’s in round_to_significant_digits by @ronald-jaepel in Handle nan's in round_to_significant_digits by ronald-jaepel · Pull Request #235 · fau-advanced-separations/CADET-Process · GitHub
- Extend MPMLangmuir gamma range by @ronald-jaepel in Extend MPMLangmuir gamma range by ronald-jaepel · Pull Request #210 · fau-advanced-separations/CADET-Process · GitHub
Full Changelog: Compare v0.10.1 to v0.11.0