Transport Models

This module implements transport models that connect bridge dynamics to effective diffusion coefficients.

Jump Diffusion

class microscopic_gating.transport.JumpDiffusion(step_length, dim=3)[source]

Bases: object

Jump diffusion mapping between escape rate and effective diffusion.

Implements Eq. (S38)-(S39) for relating microscopic escape dynamics to macroscopic diffusion:

\[ \begin{align}\begin{aligned}\tau_{\text{res}} &= 1/k_{\text{esc}}\\D_{\text{eff}}(n_b) &= \frac{\ell^2}{2d}k_{\text{esc}}(n_b), \quad d=3\end{aligned}\end{align} \]
Parameters:
  • step_length (float) – Jump length \(\ell\) (typically pore-to-pore distance).

  • dim (int, optional) – Spatial dimension \(d\) (default: 3).

Examples

>>> jd = JumpDiffusion(step_length=1.0, dim=3)
>>> jd.tau_res(0.5)
2.0
>>> jd.D_eff(0.5)
0.0833...

References

  • Eq. (S38): Residence time definition

  • Eq. (S39): Effective diffusion from escape rate

step_length: float
dim: int = 3
tau_res(k_esc)[source]

Calculate residence time.

Parameters:

k_esc (ArrayLike) – Escape rate (1/time units).

Returns:

tau – Residence time \(\tau_{\text{res}} = 1/k_{\text{esc}}\), same shape as k_esc.

Return type:

ArrayLike

D_eff(k_esc)[source]

Calculate effective diffusion coefficient.

Parameters:

k_esc (ArrayLike) – Escape rate (1/time units).

Returns:

D – Effective diffusion coefficient: \(D_{\text{eff}} = \ell^2 k_{\text{esc}} / (2d)\), same shape as k_esc.

Return type:

ArrayLike

__init__(step_length, dim=3)
Parameters:
Return type:

None

Poisson Escape Averaging

class microscopic_gating.transport.PoissonEscapeAveraging[source]

Bases: object

Average escape rate over Poisson-distributed bridge counts.

Implements Eq. (S41) and provides the closed-form Eq. (S43) under the exponential-in-\(n_b\) rate ansatz Eq. (S42).

For \(k_{\text{esc}}(n_b) = \tilde{k}_0 \exp(-\alpha n_b)\) and \(n_b \sim \text{Poisson}(\lambda)\):

\[k_{\text{esc}}(\phi) = \tilde{k}_0 \exp[-\lambda(1-e^{-\alpha})]\]

Examples

>>> averaging = PoissonEscapeAveraging()
>>> averaging.kesc_closed_form(k_tilde0=1.0, lam=2.0, alpha=0.5)  
0.243...

References

  • Eq. (S41): General Poisson average

  • Eq. (S42): Exponential rate ansatz

  • Eq. (S43): Closed-form solution

kesc_closed_form(k_tilde0, lam, alpha)[source]

Calculate closed-form Poisson average (Eq. S43).

Parameters:
  • k_tilde0 (float) – Base rate including geometric barrier constant part (Eq. S44).

  • lam (ArrayLike) – Poisson intensity \(\lambda(\phi)\).

  • alpha (float) – Exponential factor \(\alpha = \beta \epsilon_{\text{eff}}\).

Returns:

k_esc – Averaged escape rate, same shape as lam.

Return type:

ArrayLike

kesc_sum(k_nb, P_nb)[source]

Calculate generic discrete average \(\sum_n P(n) k(n)\).

Parameters:
  • k_nb (ArrayLike) – Array of \(k(n)\) values.

  • P_nb (ArrayLike) – Array of probabilities \(P(n)\), same shape as k_nb.

Returns:

k_avg – Weighted average \(\sum_n P(n) k(n)\).

Return type:

float

__init__()
Return type:

None

Concentration Dependent Diffusion

class microscopic_gating.transport.ConcentrationDependentDiffusion(beta, D_free, epsilon_eff)[source]

Bases: object

Concentration-dependent effective diffusion from gating-derived \(\lambda(\phi)\).

Implements Eq. (S45):

\[D_{\text{eff}}(\phi) = D_{\text{free}} \exp[-\lambda(\phi)(1-e^{-\beta\epsilon_{\text{eff}}})]\]
Parameters:
  • beta (float) – Inverse temperature \(\beta\).

  • D_free (float) – Baseline diffusion scale \(D_{\text{free}} = \ell^2 \tilde{k}_0/6\) (Eq. S45).

  • epsilon_eff (float) – Effective bond free-energy penalty at exit coordinate.

Examples

>>> cdd = ConcentrationDependentDiffusion(beta=1.0, D_free=1.0, epsilon_eff=1.0)
>>> cdd.D_eff(1.0)  
0.531...

References

  • Eq. (S45): Concentration-dependent diffusion expression

beta: float
D_free: float
epsilon_eff: float
D_eff(lam)[source]

Calculate effective diffusion coefficient.

Parameters:

lam (ArrayLike) – Poisson intensity \(\lambda(\phi)\).

Returns:

D – Concentration-dependent effective diffusion coefficient, same shape as lam.

Return type:

ArrayLike

__init__(beta, D_free, epsilon_eff)
Parameters:
Return type:

None

Theory Background

Jump Diffusion Mapping

The residence time and effective diffusion are related to the escape rate:

\[ \begin{align}\begin{aligned}\tau_{\text{res}} = \frac{1}{k_{\text{esc}}}\\D_{\text{eff}}(n_b) = \frac{\ell^2}{2d} k_{\text{esc}}(n_b)\end{aligned}\end{align} \]

where \(\ell\) is the jump length and \(d\) is the spatial dimension.

Poisson Averaging

When the escape rate depends exponentially on bridge count:

\[k_{\text{esc}}(n_b) = \tilde{k}_0 e^{-\alpha n_b}\]

The Poisson-averaged rate has a closed form:

\[k_{\text{esc}}(\phi) = \tilde{k}_0 \exp[-\lambda(1-e^{-\alpha})]\]

Concentration-Dependent Diffusion

The full expression for effective diffusion:

\[D_{\text{eff}}(\phi) = D_{\text{free}} \exp[-\lambda(\phi)(1-e^{-\beta\epsilon_{\text{eff}}})]\]