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.