# Phase of Modifiers in CADET

**URL:** <https://forum.cadet-web.de/t/phase-of-modifiers-in-cadet/1336>\
**Category:** CADET General\
**Created:** [November 18, 2025, 9:26am UTC](https://forum.cadet-web.de/t/phase-of-modifiers-in-cadet/1336 "2025-11-18T09:26:54Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![nyousuf](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/n/4491bb/32.png) [@nyousuf](https://forum.cadet-web.de/u/nyousuf)\
**Post date:** [November 18, 2025, 9:26am UTC](https://forum.cadet-web.de/t/phase-of-modifiers-in-cadet/1336/1 "2025-11-18T09:26:54Z")

</div>

Hi All,

I have a background in CFD, but I am new to the CADET-Core modelling. I wanted to ask few questions regarding the binding kinetics implemented in CADET

1. For the SMA model ([Steric Mass Action — CADET](https://cadet.github.io/v5.1.0/modelling/binding/steric_mass_action.html#steric-mass-action-model)), how does CADET model the salt concentration c\_{p,0}? Is it modelled as a “unit operation model” (GRM, LRMP etc.) with no binding kinetics OR is it modelled some other way?
2. For the Generalised Ion Exchange model ([Generalized Ion Exchange — CADET](https://cadet.github.io/v5.1.0/modelling/binding/generalized_ion_exchange.html#generalized-ion-exchange-model)), I have read that the phase modifiers included are pH. Is it also modelled as a “unit operation model” (GRM, LRMP etc.) with no binding kinetics?

Your responses will be greatly appreciated.

Regards,

Noman Yousuf

---

<div class="post-metadata">

**Author:** ![h.lanzrath](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/h.lanzrath/32/1186_2.png) [@h.lanzrath](https://forum.cadet-web.de/u/h.lanzrath)\
**Post date:** [November 18, 2025, 10:43am UTC](https://forum.cadet-web.de/t/phase-of-modifiers-in-cadet/1336/3 "2025-11-18T10:43:03Z")

</div>

Dear Noman Yousuf,

Thanks for your post!

Please have a look at our [Binding Model Overview Documentation](https://cadet.github.io/v5.1.0/modelling/binding/index.html) and our [Binding Model Interface](https://cadet.github.io/v5.1.0/interface/binding/index.html), which should make it clear, that SMA and GIEX are considered _Binding Models_ and can be added to the selected _Unit Operation Model_ to specify its binding kinetics.

While there is the possibility to interface `CADET-Core` with `CADET-Python` directly ([Example setup of UO and binding for CADET-Python](https://cadet.github.io/v5.1.0/developer_guide/cadet_python.html)), we generally recommend using `CADET-Process` as an accessible tool for process configuration and analysis. The `CADET-Process` [Documentation](https://cadet-process.readthedocs.io/en/v0.11.1/) offers a variety of examples and case studies, where binding models are used.

Hope that already helps!

Kind regards,  
Hannah

---

<div class="post-metadata">

**Author:** ![nyousuf](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/n/4491bb/32.png) [@nyousuf](https://forum.cadet-web.de/u/nyousuf)\
**Post date:** [November 19, 2025, 10:41am UTC](https://forum.cadet-web.de/t/phase-of-modifiers-in-cadet/1336/4 "2025-11-19T10:41:28Z")

</div>

Hi Hannah,

Thank you for getting back to me. Apologies this is not the answer I was looking for. Let me try again.

Suppose we are modelling the concentration of species by solving the following set of equations (Reactive dispersive model coupled with SMA model)

 ![image](https://forum.cadet-web.de/uploads/default/original/2X/5/558470e4c387bf4889fa956ba7bcdc1f4d5a3df1.png)

In this case, the phase modifier is the salt concentration c\_{p,0}. How is this concentration evaluated? Is it evaluated via the Transport model equation as

 ![image](https://forum.cadet-web.de/uploads/default/original/2X/d/d75f3f1d4a87aa9b5cd21d2c2379075314b2400b.png)

or via any other method. The same goes for the pH modifier in the Generalised Ion Exchange method. is it modelled by a transport equation as

 ![image](https://forum.cadet-web.de/uploads/default/original/2X/2/278d3be3a465a2ac8a79034db45a5bba3dd44b68.png)

Really appreciate the response

Regards,

Noman

---

<div class="post-metadata">

**Author:** ![j.breuer](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/j.breuer/32/1139_2.png) [@j.breuer](https://forum.cadet-web.de/u/j.breuer)\
**Post date:** [November 19, 2025, 10:50am UTC](https://forum.cadet-web.de/t/phase-of-modifiers-in-cadet/1336/5 "2025-11-19T10:50:47Z")

</div>

Hi Noman,

for the SMA in CADET, the first component must be the salt, i.e. for an EDM (Lumped Rate Model without Pores in CADET) we have c^l\_{0}, c^s\_{0} as the salt liquid and solid phase.  
Both phases are subject to both the interstitial transport **and** the binding equation.  
In the EDM/LRM, that is the case for every component no matter if it models salt, protein or whatever.

Best regards,  
Jan

---

<div class="post-metadata">

**Author:** ![lieres](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/lieres/32/1238_2.png) [@lieres](https://forum.cadet-web.de/u/lieres)\
**Post date:** [November 20, 2025, 8:54am UTC](https://forum.cadet-web.de/t/phase-of-modifiers-in-cadet/1336/6 "2025-11-20T08:54:14Z")

</div>

The value of q\_0 is determined via the electroneutrality condition  
\sum\_{i=0}^N \nu\_i q\_i = \Lambda.

---

<div class="post-metadata">

**Author:** ![nyousuf](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/n/4491bb/32.png) [@nyousuf](https://forum.cadet-web.de/u/nyousuf)\
**Post date:** [November 24, 2025, 7:57am UTC](https://forum.cadet-web.de/t/phase-of-modifiers-in-cadet/1336/7 "2025-11-24T07:57:24Z")

</div>

Hi all,

Thank you for your responses. Here’s my understanding so far:

- The salt concentration c0(t), as a modifier phase, is modelled with the transport equation including the relevant binding kinetics.

- The pH, also treated as a modifier phase, is modelled with the transport equation but without binding kinetics.

Please let me know if this interpretation is correct.

Also, based on this, I’d like to confirm the following:  
Does CADET allow polynomial fitting (or a similar method) for c0(t) or pH(t) so that we can feed in the experimental time-series of salt concentration directly, _treat the salt profile as a fixed input_, and then _decouple it from the protein concentration_ to study how the protein concentration elution evolves under that imposed salt(or pH) profile?

---

<div class="post-metadata">

**Author:** ![j.breuer](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/j.breuer/32/1139_2.png) [@j.breuer](https://forum.cadet-web.de/u/j.breuer)\
**Post date:** [November 25, 2025, 9:39am UTC](https://forum.cadet-web.de/t/phase-of-modifiers-in-cadet/1336/8 "2025-11-25T09:39:11Z")

</div>

Hi Noman,

your interpretation is correct. However, there is one other option to use eg pH in your model: [external functions](https://cadet.github.io/master/modelling/binding/index.html#dependence-on-external-function).  
We do not (yet) have a true pH model in CADET, but if you have the (space+time) data of an pH profile, you can add that to the model via an external function to modify binding behavior, ie making the adsorption parameters dependent on that external pH function.

You can use time series data to specify cubic polynomials to be used as inlet concentration profiles for every component.  
I’m not completely sure if I understand you correctly, but an external function would be a way to ‘decouple’ something from the binding equation in the sense that the values are not subject to the equation, but just being used to modify the adsorption parameters.  
Or maybe you need a different binding model rather than ‘hacking’ an existing one?

Best regards,  
Jan

---

<div class="post-metadata">

**Author:** ![nyousuf](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/n/4491bb/32.png) [@nyousuf](https://forum.cadet-web.de/u/nyousuf)\
**Post date:** [November 26, 2025, 6:19am UTC](https://forum.cadet-web.de/t/phase-of-modifiers-in-cadet/1336/9 "2025-11-26T06:19:02Z")

</div>

> [@j.breuer](#):
>
> external functions

Hi Breuer,

Thank you for getting back to me.

Having implemented the pH (or temperature, whatever) as an “External function” makes sense to me at this stage.

However, I will require new binding models to be coded up in CADET, so I’ll definitely seek out your guidance in the future soon.

Thank you

Regards,

Noman Yousuf
