Adsorption Isotherms

This module implements adsorption isotherms that describe how surface occupancy depends on bulk concentration.

Langmuir Isotherm

class microscopic_gating.adsorption.LangmuirIsotherm(K)[source]

Bases: object

Langmuir isotherm from grand canonical two-state site model.

Implements the standard Langmuir adsorption model (Eq. S3-S4):

\[\theta(\phi) = \frac{\phi/K}{1+\phi/K}\]

This corresponds to a single-site partition function \(Z = 1 + z e^{\beta \epsilon}\), with \(z \simeq \phi/\phi^\circ\) and \(K = \phi^\circ e^{-\beta\epsilon}\).

Parameters:

K (float) – Dissociation constant (same unit as \(\phi\)). Smaller K indicates stronger binding.

See also

HillIsotherm

Extended isotherm with cooperativity parameter.

Examples

>>> isotherm = LangmuirIsotherm(K=1.0)
>>> isotherm.theta(1.0)
0.5
>>> isotherm.theta([0.1, 1.0, 10.0])
array([0.0909..., 0.5, 0.9090...])

References

  • Eq. (S3)-(S4): Grand canonical two-state site model

K: float
theta(phi)[source]

Calculate occupancy fraction.

Parameters:

phi (ArrayLike) – Bulk concentration (same unit as K).

Returns:

theta – Occupancy fraction in [0, 1], same shape as phi.

Return type:

ArrayLike

Notes

At \(\phi = K\), the occupancy is exactly 0.5.

__init__(K)
Parameters:

K (float) –

Return type:

None

Hill Isotherm

class microscopic_gating.adsorption.HillIsotherm(K, n=1.0)[source]

Bases: object

Hill isotherm with effective cooperativity.

Extends the Langmuir model with a Hill coefficient to capture cooperative or multi-body effects:

\[\theta(\phi) = \frac{(\phi/K)^n}{1+(\phi/K)^n}\]
Parameters:
  • K (float) – Effective dissociation constant (same unit as \(\phi\)).

  • n (float, optional) – Hill coefficient (default: 1.0). - n = 1: Reduces to Langmuir isotherm - n > 1: Positive cooperativity (steeper transition) - n < 1: Negative cooperativity (shallower transition)

See also

LangmuirIsotherm

Special case with n=1.

Notes

Hill behavior is not required by the minimal model, but can represent effective multi-body or cooperative binding effects.

Examples

>>> isotherm = HillIsotherm(K=1.0, n=2.0)
>>> isotherm.theta(1.0)
0.5
>>> isotherm.theta([0.5, 1.0, 2.0])
array([0.2, 0.5, 0.8])
K: float
n: float = 1.0
theta(phi)[source]

Calculate occupancy fraction with cooperativity.

Parameters:

phi (ArrayLike) – Bulk concentration (same unit as K).

Returns:

theta – Occupancy fraction in [0, 1], same shape as phi.

Return type:

ArrayLike

Notes

The Hill coefficient \(n\) controls the steepness of the transition around \(\phi = K\).

__init__(K, n=1.0)
Parameters:
Return type:

None

Theory Background

The Langmuir isotherm derives from a grand canonical two-state site model:

\[\theta(\phi) = \frac{\phi/K}{1+\phi/K}\]

where \(K\) is the dissociation constant and \(\phi\) is the bulk concentration.

The Hill isotherm extends this with an effective cooperativity parameter:

\[\theta(\phi) = \frac{(\phi/K)^n}{1+(\phi/K)^n}\]

where \(n\) is the Hill coefficient (n=1 reduces to Langmuir).