# v0.8.0

**CADET-Process** v0.8.0 is the culmination of the last 6 months of development.
All users are encouraged to upgrade to this release.
This release requires Python 3.9+


## Highlights of this release
- Overhaul of parameter descriptors: Cleaner structure, new validation methods and improved testing.
- Improved indexing for multidimensional parameters for events and optimization variables.
- Improved parallelization: Selector for backend allows more flexibility when running optimization on multiple cores.
- Overhaul of `reactions` module: Individual reaction parameters can now be accessed using the standard `parameters` interface (required for optimization).
- Improved handling of variable transforms for optimization problems with linear constraints.

## Breaking changes

### Adsorption rates and reference concentrations
The parameter behavior for adsorption rates in CADET-Core and CADET-Process has been a point of discussion.
This parameter can represent either the "real" $k_a$ or the transformed $\tilde{k}_{a}$, depending on whether a reference concentration is used in binding models such as SMA.

To clarify this, CADET-Process initially introduced the `adsorption_rate` parameter to always signify the "real" $k_a$.
An additional internal property, `adsorption_rate_transformed`, was introduced to handle the transformation automatically before passing the value to CADET-Core.
This aimed to simplify the transfer of values to different reference concentrations or adsorption models.

Despite these efforts, this inconsistency between CADET-Core and CADET-Process lead to some confusion among users.

Starting from CADET-Process v0.8.0, a more harmonized approach has been adopted.
Now, `adsorption_rate` and `desorption_rate` in the SMA model (and similar models) directly map to $k_a$/$k_d$ of CADET-Core, thus representing the transformed parameters.
For users who still need access to the "real" parameter values, for example, when transferring parameters between different systems, the attributes `adsorption_rate_untransformed` and `desorption_rate_untransformed` have been introduced into CADET-Process binding model classes.

## Pull requests for 0.8.0
- [38](https://github.com/fau-advanced-separations/CADET-Process/pull/38): Fix parallelization error `Cadet` object has no attribute `_is_file_class`
- [40](https://github.com/fau-advanced-separations/CADET-Process/pull/40): Add selector for parallelization backend
- [46](https://github.com/fau-advanced-separations/CADET-Process/pull/46): Fix linear constraints error in Scipy
- [54](https://github.com/fau-advanced-separations/CADET-Process/pull/54): Fix indexing for Events and OptimizationVariables
- [55](https://github.com/fau-advanced-separations/CADET-Process/pull/55): Rework interface regarding reference concentrations
- [59](https://github.com/fau-advanced-separations/CADET-Process/pull/59): Fix/change addict version
