# CADET isotherm model

**URL:** <https://forum.cadet-web.de/t/cadet-isotherm-model/517>\
**Category:** CADET Troubleshooting\
**Tags:** modeling, application\
**Created:** [July 14, 2022, 8:35pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517 "2022-07-14T20:35:14Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![yiran.wang](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/y/97f17d/32.png) [@yiran.wang](https://forum.cadet-web.de/u/yiran.wang)\
**Post date:** [July 14, 2022, 8:35pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/1 "2022-07-14T20:35:14Z")

</div>

I was exploring CADET different isotherm models. Currently, there is no HIC model or any pH-related model on the list here. Am I right? [Binding models — CADET](https://cadet.github.io/v4.3.0/modelling/binding/index.html#equilibrium-constants)

However, there is an example in the CADET-Python model named as HICWang. I assume this is a HIC model associated with his paper in 2016. The code doesn’t work well on my end (SMAmodel does work) . I don’t know if the adsorption model is not correct since HICWANG is not listed in the binding model list or if anything else is broken.

root.input.model.unit\_001.adsorption\_model = ‘HICWANG’’

Is there a way that we can include more isotherm models or work together on that? I do recall seeing publications using CADET with a different model not listed in the summary table.

Thanks ahead for your help.

Best,  
Yiran

---

<div class="post-metadata">

**Author:** ![j.schmoelder](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/j.schmoelder/32/93_2.png) [@j.schmoelder](https://forum.cadet-web.de/u/j.schmoelder)\
**Post date:** [July 15, 2022, 7:03am UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/2 "2022-07-15T07:03:23Z")

</div>

Hi Yiran,

to my knowledge there is currently no HIC model. I assume the example in the CADET-Python package was some custom model. Maybe @w.heymann can comment on this?

In case you’re interested, the implementation of binding models in the source code lives [here](https://github.com/modsim/CADET/tree/master/src/libcadet/model/binding).  
We’re always happy to assist if you’re interested in implementing a new model. In fact, @j.hassan is currently working on a “How-to” guide for this exact purpose. Maybe you’d be willing to test the guide and provide some feedback?

Best

Johannes

---

<div class="post-metadata">

**Author:** ![ronald.jaepel](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/ronald.jaepel/32/986_2.png) [@ronald.jaepel](https://forum.cadet-web.de/u/ronald.jaepel)\
**Post date:** [July 15, 2022, 6:22pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/3 "2022-07-15T18:22:25Z")

</div>

Hey,

I’ve put the HICWANG code (written by @w.heymann & edited by me) into a pull request on github.

Best wishes,  
Ron

---

<div class="post-metadata">

**Author:** ![ronald.jaepel](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/ronald.jaepel/32/986_2.png) [@ronald.jaepel](https://forum.cadet-web.de/u/ronald.jaepel)\
**Post date:** [July 15, 2022, 6:25pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/4 "2022-07-15T18:25:49Z")

</div>

Also, I think I should add that the reason the Wang Isotherm wasn’t added yet is that it shows unrealistic behavior. We have two alternative versions queued for publication and I can update you once they are available.

---

<div class="post-metadata">

**Author:** ![w.heymann](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/w.heymann/32/37_2.png) [@w.heymann](https://forum.cadet-web.de/u/w.heymann)\
**Post date:** [July 15, 2022, 6:28pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/5 "2022-07-15T18:28:42Z")

</div>

Not only was it unrealistic the units on the equation didn’t even work out. 🙂

---

<div class="post-metadata">

**Author:** ![yiran.wang](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/y/97f17d/32.png) [@yiran.wang](https://forum.cadet-web.de/u/yiran.wang)\
**Post date:** [April 27, 2023, 8:37pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/6 "2023-04-27T20:37:57Z")

</div>

Hi Ron, just want to follow up about the HIC isotherm model 🙂

---

<div class="post-metadata">

**Author:** ![ronald.jaepel](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/ronald.jaepel/32/986_2.png) [@ronald.jaepel](https://forum.cadet-web.de/u/ronald.jaepel)\
**Post date:** [April 28, 2023, 9:54am UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/7 "2023-04-28T09:54:40Z")

</div>

There are, as of this morning, two HIC models in the main branch of CADET. Do you know how to compile CADET from source?

The first isotherm is the one published by Gang Wang et al. in “Water on Hydrophobic Surfaces” (2016) and is called HIC\_WHS based on the paper title. As mentioned above, this one exhibits a few unexpected behaviors.

The second is a simplification of the WHS isotherm that solves the unexpected behaviors and is called HIC\_CWA for “Constant Water Activity”.

---

<div class="post-metadata">

**Author:** ![alters](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/alters/32/294_2.png) [@alters](https://forum.cadet-web.de/u/alters)\
**Post date:** [April 28, 2023, 2:19pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/8 "2023-04-28T14:19:46Z")

</div>

It might be worth looking into the HIC model used by J.M. Mollerup, T.B. Hansen, S. Kidal, A. Staby: Quality by design-Thermodynamic modelling of chromatographic separation of proteins. In this paper, the isotherm is only written in its equilibrium form, so I have expressed this in the kinetic form shown below

\frac{\partial q\_i}{\partial t}=k\_{a, i} \left(1-\sum\_{j=1}^N \frac{q\_j}{q\_{\max , j}}\right)^{n\_i} \tilde{\gamma}\_i c\_{p, i}-k\_{d, i}q\_i

This has been employed in several publications and includes the asymmetric activity coefficient

\tilde{\gamma}\_i=\frac{\gamma\_i}{\gamma^{\infty, \omega}} \approx \exp \left(K\_{p, i} c\_{p, i}+K\_{s, i} c\_s\right)

which is a very powerful term—see our recent paper in JChromA on isotherm models in multimodal chromatography, not HIC but I think the takeaways on modeling hydrophobic interactions are relevant here—and does not include the \beta\_i, which is redundant with K\_{s,i} in its dependence on salt concentration c\_s and comparatively a less useful term.

The one thing I don’t like about this formulation is that it does not include ligand density, but I think for now it is sufficient—especially because ligand density for HIC resins is very rarely measured or provided by the manufacturer. If this is included, it should come along with the steric factor for hydrophobic interactions s\_i, which could be pH-dependent. Lastly, pH could be included here by adding the dependence for k\_{a,i} and/or k\_{d,i}

k\_{a,i} = k\_{a,i,0} \exp \left(k\_{a,i,1}\mathrm{pH} + k\_{a,i,2}\mathrm{pH}^2 \right)

to the adsorption term in the \frac{\partial q\_i}{\partial t} formulation. The asymmetric activity coefficient has been shown by Mollerup to be pH-dependent, but this need not be included as to avoid redundancy with the aforementioned pH-dependent affinity term.

The pH-dependent parameters and activity coefficient terms can be included in the k\_{d,i} term for generality, but I think actually using these would most certainly lead to overparameterization of the isotherm. Actually, I always set k\_{d,i} to unity such that k\_{a,i} is equivalent to the equilibrium constant.

The stoichiometric term for hydrophobic interactions n\_i can also be pH dependent and can be expressed analogously to \nu\_i in the GIEX model.

n\_i = n\_{i,0} + n\_{i,1}\mathrm{pH} + n\_{i,2}\mathrm{pH}^2

If I could make a feature request, I think this would be a useful one. This model can be used for HIC or for multimodal in the pure HIC regime—when binding affinity and capacity are strictly increasing (electrostatic interactions are negligible) with respect to salt concentration, such as multimodal anion exchange for mAbs with pH \<\< pI. Otherwise, the GIEX model can be employed for multimodal and, of course, for IEC. This way, we have two isotherms in CADET that are powerful and particularly general in their scope. We could call this one the generalized hydrophobic interaction (GHI) isotherm or something like that.

Thoughts?

---

<div class="post-metadata">

**Author:** ![yiran.wang](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/y/97f17d/32.png) [@yiran.wang](https://forum.cadet-web.de/u/yiran.wang)\
**Post date:** [April 28, 2023, 8:49pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/9 "2023-04-28T20:49:46Z")

</div>

Thank you so much for the update! I would love to try it out!

Compiling from source is kind of tricky. I have tried in the past following the instruction without success.

---

<div class="post-metadata">

**Author:** ![ronald.jaepel](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/ronald.jaepel/32/986_2.png) [@ronald.jaepel](https://forum.cadet-web.de/u/ronald.jaepel)\
**Post date:** [April 28, 2023, 9:34pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/10 "2023-04-28T21:34:50Z")

</div>

Alright, which platform (Windows/Linux/etc.) do you need binaries for?

---

<div class="post-metadata">

**Author:** ![ronald.jaepel](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/ronald.jaepel/32/986_2.png) [@ronald.jaepel](https://forum.cadet-web.de/u/ronald.jaepel)\
**Post date:** [April 28, 2023, 9:37pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/11 "2023-04-28T21:37:16Z")

</div>

I want to put a paper on HIC isotherms together and will see if I can add this isotherm to the mix.

---

<div class="post-metadata">

**Author:** ![yiran.wang](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/y/97f17d/32.png) [@yiran.wang](https://forum.cadet-web.de/u/yiran.wang)\
**Post date:** [May 1, 2023, 3:02pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/12 "2023-05-01T15:02:22Z")

</div>

I use Windows. Thanks!!!

---

<div class="post-metadata">

**Author:** ![ronald.jaepel](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/ronald.jaepel/32/986_2.png) [@ronald.jaepel](https://forum.cadet-web.de/u/ronald.jaepel)\
**Post date:** [May 2, 2023, 10:59am UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/13 "2023-05-02T10:59:22Z")

</div>

[CADET-commit 4eeeed5-win-x64.zip](https://forum.cadet-web.de/uploads/short-url/ecpICJoNxbd6bQ9DY0g7VCJzzmx.zip) (3.9 MB)  
Let me know if you run into any problems.

---

<div class="post-metadata">

**Author:** ![yiran.wang](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/y/97f17d/32.png) [@yiran.wang](https://forum.cadet-web.de/u/yiran.wang)\
**Post date:** [May 8, 2023, 2:11pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/14 "2023-05-08T14:11:42Z")

</div>

I got this error message.

conda install -c conda-forge hdf5=1.12.2 doesn’t work. It said it conflicted with multiple current packages.

CompletedProcess(args=[‘C:\Users\wangy282\OneDrive - Bristol Myers Squibb\Documents\CADETYW\CADET-commit 4eeeed5-win-x64\bin\cadet-cli’, ‘model.h5’], returncode=3221226505, stdout=b’', stderr=b"Warning! _ **HDF5 library version mismatched error** _\r\nThe HDF5 header files used to compile this application do not match\r\nthe version used by the HDF5 library to which this application is linked.\r\nData corruption or segmentation faults may occur if the application continues.\r\nThis can happen when an application was compiled by one version of HDF5 but\r\nlinked with a different version of static or shared HDF5 library.\r\nYou should recompile the application or check your shared library related\r\nsettings such as ‘LD\_LIBRARY\_PATH’.\r\nYou can, at your own risk, disable this warning by setting the environment\r\nvariable ‘HDF5\_DISABLE\_VERSION\_CHECK’ to a value of ‘1’.\r\nSetting it to 2 or higher will suppress the warning messages totally.\r\nHeaders are 1.12.2, library is 1.10.6\r\n SUMMARY OF THE HDF5 CONFIGURATION\r\n =================================\r\n\r\nGeneral Information:\r\n-------------------\r\n HDF5 Version: 1.10.6\r\n Configured on: 2022-06-14\r\n Configured by: NMake Makefiles\r\n Host system: Windows-10.0.17763\r\n Uname information: Windows\r\n Byte sex: little-endian\r\n Installation point: C:/ci/hdf5\_1655187604574/\_h\_env/Library\r\n\r\nCompiling Options:\r\n------------------\r\n Build Mode: RELEASE\r\n Debugging Symbols: OFF\r\n Asserts: OFF\r\n Profiling: OFF\r\n Optimization Level: OFF\r\n\r\nLinking Options:\r\n----------------\r\n Libraries: \r\n Statically Linked Executables: OFF\r\n LDFLAGS: /machine:x64\r\n H5\_LDFLAGS: \r\n AM\_LDFLAGS: \r\n Extra libraries: \r\n Archiver: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/lib.exe\r\n Ranlib: :\r\n\r\nLanguages:\r\n----------\r\n C: YES\r\n C Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe 19.16.27043.0\r\n CPPFLAGS: \r\n H5\_CPPFLAGS: \r\n AM\_CPPFLAGS: \r\n CFLAGS: /DWIN32 /D\_WINDOWS /W3\r\n H5\_CFLAGS: \r\n AM\_CFLAGS: \r\n Shared C Library: YES\r\n Static C Library: YES\r\n\r\n Fortran: OFF\r\n Fortran Compiler: \r\n Fortran Flags: \r\n H5 Fortran Flags: \r\n AM Fortran Flags: \r\n Shared Fortran Library: YES\r\n Static Fortran Library: YES\r\n\r\n C++: ON\r\n C++ Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe 19.16.27043.0\r\n C++ Flags: /DWIN32 /D\_WINDOWS /W3 /GR /EHsc\r\n H5 C++ Flags: \r\n AM C++ Flags: \r\n Shared C++ Library: YES\r\n Static C++ Library: YES\r\n\r\n JAVA: OFF\r\n JAVA Compiler: \r\n\r\nFeatures:\r\n---------\r\n Parallel HDF5: OFF\r\nParallel Filtered Dataset Writes: \r\n Large Parallel I/O: \r\n High-level library: ON\r\n Build HDF5 Tests: ON\r\n Build HDF5 Tools: ON\r\n Threadsafety: ON\r\n Default API mapping: v110\r\n With deprecated public symbols: ON\r\n I/O filters (external): DEFLATE\r\n MPE: \r\n Direct VFD: \r\n (Read-Only) S3 VFD: \r\n (Read-Only) HDFS VFD: \r\n dmalloc: \r\n Packages w/ extra debug output: \r\n API Tracing: OFF\r\n Using memory checker: OFF\r\n Memory allocation sanity checks: OFF\r\n Function Stack Tracing: OFF\r\n Strict File Format Checks: OFF\r\n Optimization Instrumentation: \r\nBye…\r\n")  
Traceback (most recent call last):

File “C:\Users\wangy282\OneDrive - Bristol Myers Squibb\Documents\CADETYW\Python Example\230505\_HIC\_NFPB.py”, line 146, in   
raise Exception(“Simulation failed”)

Exception: Simulation failed

---

<div class="post-metadata">

**Author:** ![j.schmoelder](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/j.schmoelder/32/93_2.png) [@j.schmoelder](https://forum.cadet-web.de/u/j.schmoelder)\
**Post date:** [May 8, 2023, 2:24pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/15 "2023-05-08T14:24:37Z")

</div>

Hi,

have you tried a new, clean conda environment?

best

Johannes

---

<div class="post-metadata">

**Author:** ![ronald.jaepel](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/ronald.jaepel/32/986_2.png) [@ronald.jaepel](https://forum.cadet-web.de/u/ronald.jaepel)\
**Post date:** [May 8, 2023, 2:42pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/16 "2023-05-08T14:42:09Z")

</div>

Try this: [CADET-commit 4eeeed5-win-x64.zip](https://forum.cadet-web.de/uploads/short-url/d4Pypqw0r8ZzSr5FbyJarY1Ll7G.zip) (5.2 MB) It includes a matching hdf5.dll

---

<div class="post-metadata">

**Author:** ![yiran.wang](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/y/97f17d/32.png) [@yiran.wang](https://forum.cadet-web.de/u/yiran.wang)\
**Post date:** [May 8, 2023, 10:18pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/17 "2023-05-08T22:18:28Z")

</div>

You rock! I am able to get the constant water model coverage. Maybe need to tweak the parameters but water on hydrophobic surface is always fail.

I do observe the model is not responsive to the change of modifier. The manual ([Binding models — CADET](https://cadet.github.io/master/modelling/binding/index.html#)) also indicates that model is not responsive to salt. But there is cp,0 in the equation. Am I miss something here?

---

<div class="post-metadata">

**Author:** ![ronald.jaepel](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/ronald.jaepel/32/986_2.png) [@ronald.jaepel](https://forum.cadet-web.de/u/ronald.jaepel)\
**Post date:** [May 9, 2023, 5:30am UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/18 "2023-05-09T05:30:23Z")

</div>

Which model parameters are you using?

And one thing to note is, that CADET assumes the salt to be the first component, so if you have your protein as the first model parameter and the salt as the second, it won’t work.

---

<div class="post-metadata">

**Author:** ![yiran.wang](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/y/97f17d/32.png) [@yiran.wang](https://forum.cadet-web.de/u/yiran.wang)\
**Post date:** [May 9, 2023, 3:47pm UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/19 "2023-05-09T15:47:30Z")

</div>

I am testing the parameters from Wang et al 2016.

```auto
model = Cadet()
model.root.input.model.nunits = 3
###Inlet
model.root.input.model.unit_000.unit_type = 'INLET'
model.root.input.model.unit_000.ncomp = 2
model.root.input.model.unit_000.inlet_type = 'PIECEWISE_CUBIC_POLY'

#ColumnLoad
model.root.input.model.unit_001.unit_type = 'GENERAL_RATE_MODEL'
model.root.input.model.unit_001.ncomp = 2

## Geometry
model.root.input.model.unit_001.col_length = 0.059 # m
model.root.input.model.unit_001.cross_section_area = 0.000034 # m
model.root.input.model.unit_001.col_porosity = 0.35 # -
model.root.input.model.unit_001.par_porosity =0.91 # -
model.root.input.model.unit_001.par_radius = 2.1e-5 # m

                                                              
## Transport
model.root.input.model.unit_001.col_dispersion = 5.6e-8 # m^2 / s (interstitial volume)
model.root.input.model.unit_001.film_diffusion = [1.0E-6,1.0E-6] # m / s
model.root.input.model.unit_001.par_diffusion = [3e-9,3e-11] # m^2 / s (mobile phase)  
model.root.input.model.unit_001.par_surfdiffusion = [0.0,0] # m^2 / s (solid phase)

# HIC Binding
model.root.input.model.unit_001.adsorption_model = 'HIC_CONSTANT_WATER_ACTIVITY'
model.root.input.model.unit_001.adsorption.is_kinetic = False # Kinetic binding
model.root.input.model.unit_001.adsorption.HICCWA_KA = [0, 6e4] # m^3 / (mol * s) (mobile phase)
model.root.input.model.unit_001.adsorption.HICCWA_KD = [0, 2e2] # 1 / s (desorption)
model.root.input.model.unit_001.adsorption.HICCWA_NU = [0,1]  
model.root.input.model.unit_001.adsorption.HICCWA_QMAX = [0, 4] # mol / m^3 
model.root.input.model.unit_001.adsorption.HICCWA_BETA0 = [0,100] 
model.root.input.model.unit_001.adsorption.HICCWA_BETA1 = [0,10]  
model.root.input.model.unit_001.init_c = [000.0,0] #low salt
#model.root.input.model.unit_001.init_c = [1000.0,0] #high salt
model.root.input.model.unit_001.init_q = [0.0,0] 

### Grid cells
model.root.input.model.unit_001.discretization.ncol = 20
model.root.input.model.unit_001.discretization.npar = 5

### Bound states
model.root.input.model.unit_001.discretization.nbound = [0,1]

### Other options
model.root.input.model.unit_001.discretization.par_disc_type = 'EQUIDISTANT_PAR'    
model.root.input.model.unit_001.discretization.use_analytic_jacobian = 1
model.root.input.model.unit_001.discretization.reconstruction = 'WENO'
model.root.input.model.unit_001.discretization.gs_type = 1
model.root.input.model.unit_001.discretization.max_krylov = 0
model.root.input.model.unit_001.discretization.max_restarts = 10
model.root.input.model.unit_001.discretization.schur_safety = 1.0e-8

model.root.input.model.unit_001.discretization.weno.boundary_model = 0
model.root.input.model.unit_001.discretization.weno.weno_eps = 1e-10
model.root.input.model.unit_001.discretization.weno.weno_order = 3

###ColumnOutlet
model.root.input.model.unit_002.unit_type = 'OUTLET'
model.root.input.model.unit_002.ncomp = 2

### Section
model.root.input.solver.sections.nsec = 2
model.root.input.solver.sections.section_times = [0.0, 20.5/.26*60,40/.26*60] # s
model.root.input.solver.sections.section_continuity = [0,]

#Load
model.root.input.model.unit_000.sec_000.const_coeff = [000,13.18/150] # mol / m^3 #lowsalt
model.root.input.model.unit_000.sec_000.const_coeff = [1000,13.18/150] # mol / m^3 #highsalt
model.root.input.model.unit_000.sec_000.lin_coeff = [0.0,0]
model.root.input.model.unit_000.sec_000.quad_coeff = [0.0,0]
model.root.input.model.unit_000.sec_000.cube_coeff = [0.0,0]

#Chase
model.root.input.model.unit_000.sec_001.const_coeff = [0,0] # mol / m^3

model.root.input.model.connections.nswitches = 1
model.root.input.model.connections.switch_000.section = 0
model.root.input.model.connections.switch_000.connections = [
    0, 1, -1, -1, 4.3/1e9, # [unit_000, unit_001, all components, all components, Q/ m^3*s^-1 
    1, 2, -1, -1, 4.3/1e9] # [unit_001, unit_002, all components, all components, Q/ m^3*s^-1 
model.root.input.model.solver.gs_type = 1
model.root.input.model.solver.max_krylov = 0
model.root.input.model.solver.max_restarts = 10
model.root.input.model.solver.schur_safety = 1e-8

# Number of cores for parallel simulation
model.root.input.solver.nthreads = 3

```

---

<div class="post-metadata">

**Author:** ![ronald.jaepel](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/ronald.jaepel/32/986_2.png) [@ronald.jaepel](https://forum.cadet-web.de/u/ronald.jaepel)\
**Post date:** [May 12, 2023, 10:21am UTC](https://forum.cadet-web.de/t/cadet-isotherm-model/517/20 "2023-05-12T10:21:33Z")

</div>

Alright, first thing to note is that parameters from Wang for the WHS aren’t going to work well with the CWA isotherm.

Secondly, Wang et al use mol/L while CADET uses the SI units of mol/m^3 (i.e. mmol/L). Therefore all parameters that get multiplied with a concentration need to be divided by 1000 going from Wang to CADET. A \beta\_1 of 10 multiplied with 1000 mmol/L salt is going to get way too big and lead to problems. I’ve added param values that work for us below, but those are estimated with a salt concentration going from 3000 mmol/L to 0 mmol/L, not 1000 to 0 like in your example.

Lastly, the dimensionality of \beta\_0 and \beta\_1 should be 1 value total, instead of one value per component. That is probably why you didn’t get any salt influence, because the \beta\_1 that CADET read was the 0 in first position, so 0 \* c\_s.

# HIC Binding CWA

```auto
model.root.input.model.unit_001.adsorption_model = ‘HIC_CONSTANT_WATER_ACTIVITY’
model.root.input.model.unit_001.adsorption.is_kinetic = False # Kinetic binding
model.root.input.model.unit_001.adsorption.HICCWA_KA = [0, 3] # m^3 / (mol * s) (mobile phase)
model.root.input.model.unit_001.adsorption.HICCWA_KD = [0, 2000] # 1 / s (desorption)
model.root.input.model.unit_001.adsorption.HICCWA_NU = [0, 10]
model.root.input.model.unit_001.adsorption.HICCWA_QMAX = [0, 4] # mol / m^3 
model.root.input.model.unit_001.adsorption.HICCWA_BETA0 = 0.28 # <- should be only one entry
model.root.input.model.unit_001.adsorption.HICCWA_BETA1 = 2.1e-4 # <- should be only one entry

```

# HIC Binding WHS

```auto
model.root.input.model.unit_001.adsorption_model = ‘HIC_WATER_ON_HYDROPHOBIC_SURFACES’
model.root.input.model.unit_001.adsorption.is_kinetic = False # Kinetic binding
model.root.input.model.unit_001.adsorption.HICWHS_KA = [0, 0.3] # m^3 / (mol * s) (mobile phase)
model.root.input.model.unit_001.adsorption.HICWHS_KD = [0, 1.3] # 1 / s (desorption)
model.root.input.model.unit_001.adsorption.HICWHS_NU = [0, 10]
model.root.input.model.unit_001.adsorption.HICWHS_QMAX = [0, 4] # mol / m^3 
model.root.input.model.unit_001.adsorption.HICWHS_BETA0 = 0.01 # <- should be only one entry
model.root.input.model.unit_001.adsorption.HICWHS_BETA1 = 1e-3 # <- should be only one entry

```

Let me know if that fixes the issues.

[Next page](https://forum.cadet-web.de/t/cadet-isotherm-model/517.md?page=2)
