CADET-Match simulation error & suggestions

Dear CADET community,

I am trying to use Cadet-Match to perform parameter estimations on my experiment data.
The experiment is set with a column length of 0.18m, a superficial velocity of 2.7m/h and a constant injection concentration of 4.762g/L. I have attached my experiment data here:
u=2.7.csv|attachment (30.3 KB)

For Cadet-match, I have constructed a LRM (Lumped kinetic model without pores) with langmuir binding, with converting the superficial velocity to interstitial velocity using u = v/e. The parameters required to be estimated are: col_dispersion, col_porosity, ka, kd and qmax

After following the steps shown in the tutorial, I started the simulation and got the following error message:
2023-04-10 15:55:56,941 write 10 boolean index did not match indexed array along dimension 1; dimension is 2 but corresponding boolean dimension is 5

I have attached the jupyter notebook here. Would you please share some insights about what I have done incorrectly?
Cadet match on experiment result.ipynb (29.2 KB)

In addition I have the following questions:

  1. The parameter values I set in the reference models are the initial values for Cadet-match. Will set different initial values result in different estimations?
  2. For my experiment data, would you please share some insights about how to transform ka and kd? Should I use keq?
  3. For the feature part, since I could not find the complete list for problem names, would you please suggest the appropriate settings for my experiment data?
  4. Let’s say if changing the feature type results in different estimations, like the scenario in Tutorial8_02_Exercise, changing “SSE” to “Shape” returns different values for ka, kd and qmax, which one should be the correct estimation?

Thank you for taking time to consider my problem and questions! Any help or suggestion is deeply appreciated.


I figured that the code has no problem at all. As soon as I move both notebook and experiment data from the tutorial directory to a new directory it works fine.

Please ignore the problem related to coding :slight_smile:
Meanwhile I still need help / insights about the questions, feel free to share your thoughts and suggestions. Thank you!

One issue I see is that the concentration used in g/L and it should be mol/m^3. I highly recommend that all of your units are base SI units (m, kg, s, etc.) to avoid strange issues. You can find everything in the interface for CADET defined here Interface specifications — CADET

The initial point you choose is only used so that CADET-Match can verify that the system runs and gather a bit of information on how long a typical simulation takes to run. It doesn’t impact the population generates or the results obtained.

For anything with ka and kd I normally use the auto_keq transform that you can find here Transform — CADET-Match

For your match configuration settings I would suggest

match_config.population = 100
match_config.stallGenerations = 20

That should be sufficient for most problems.

This one is hard to answer. Basically, the model is not perfect and so it can’t perfectly explain the experimental data. Different scores will result in different tradeoffs and that will result in different parameters. There is really no way to say that one is more correct than another. Shape priorities the chromatogram shape matching more than the position being correct because the shape is where the physics is and chromatography columns tend to have small pump delays which can cause signal offets. SSE will prioritize the chromatogram position being correct more than the shape.