CADET Process 3 Column PCC Script Not Working with Tubing Included

Expected behavior.

I am trying to model a 3 column periodic counter current chromatography setup. Have modeled just the 3 columns in PCC_functions with CADET and worded fine. However due to the amount of tubbing in the experimental setup I also need to model that. I did this by implementing 3 tubular reactors. It should work exactly like the model without tubbing but account for the delay due to the tubbing.

Actual behavior

CADET never finishes and timeouts after 10 minutes.

How to produce bug (including a minimal reproducible example)

Run as is.

File produced by conda env export > environment.yml

environment.yml (7.7 KB)

Optional link to repository (oriented around this template: GitHub - modsim/bug_report_example: Template for reporting bugs including code and data)

I’ll add this here for protocol: when we looked at this during the last Office-hours, I found no ill-configuration of the Process. So I think that the CADET-Process side of things is working fine.

We did note, however, that (given the axial dispersion of 0 for the tubing) a reduction of the diameter of the tubing from 7.5e-4 to 7.5e-5 for all three tubings resulted in functional simulations
PCC_working_d7.5e-5.h5 (851.0 KB) while a diameter of 7.5e-4
lead to a stuck simulation
PCC_not_working_d7.5e-4.h5 (271.8 KB). Alternatively a raise of the axial dispersion to 1e-4 also lead to functional simulations.
PCC_working_d7.5e-4_dAx1e-4.h5 (867.6 KB).

Axial dispersion 0 Axial dispersion 1e-4
Diameter 7.5e-4 X :heavy_check_mark:
Diameter 7.5e-5 :heavy_check_mark: :heavy_check_mark:

I have not had time to load these into a CADET-Core debugger to check where they get stuck. This would most likely benefit from an inspection by @j.breuer or @AntoniaBerger .

Edit: I can lower the dispersion down to 1e-5, but no lower, at 1e-6 it crashes.

Without a binding model, the simulations run fine with dispersions as low as 1e-10

1 Like

Hi everyone, I’m on vacation this week but hope to have a look next week.

I remember having trouble with axial dispersion of zero too, at some point.
@Daniel, are you planning on joining the next office hour? I’d be free and could have a look.

I would avoid to numerically solve a plug flow reactor with zero dispersion whenever possible. An accurate solution can require extreme fine discretization, and any physical tubing must cause some degree of dispersion due to the parabolic flow profile.

While I generally agree, I would argue that, from a modeling perspective and in line with Occam’s razor, setting the dispersion coefficient to zero is preferable when its value is not identifiable.

Also, it should still crash…