Skip to content

3. The corrections

3. The corrections

Each property is X(⟨c⟩, d) = X⁰ · f^c(c̄) · f^w(d̄), with c̄ = ⟨c⟩/(1 M) and d̄ = d/(1 nm) dimensionless. Numeric parameters live in data/corrections/willems2020_nacl.yaml.

Property f^c f^w
D_i (1 + P₁c̄^½ + P₂c̄ + P₃c̄^{3/2} + P₄c̄²)⁻¹ 1 − exp(−P₁(d̄ + P₂))
μ_i same form, own coefficients 1 − exp(−P₁(d̄ + P₂))
η 1 + P₁c̄^½ + P₂c̄ + P₃c̄² + P₄c̄^{7/2} 1 + exp(−P₁(d̄ − P₂))
ϱ 1 + P₁c̄ + P₂c̄² —
ε_r,f 1 − (1 − P₁/P₀) · L(3P₂c̄/(P₀−P₁)), L(x) = coth x − 1/x —

Note the two wall functions have opposite offset signs — (d̄ + P₂) for D and μ, (d̄ − P₂) for η. This is not a typo in this file; both are verified in §8.

Infinite-dilution values (298.15 K):

value source
D_Na⁰ 1.334 × 10⁻⁹ m² s⁻¹ Mills 1989
D_Cl⁰ 2.032 × 10⁻⁹ m² s⁻¹ Mills 1989
μ_Na⁰ 5.192 × 10⁻⁸ m² V⁻¹ s⁻¹ Bianchi 1989
μ_Cl⁰ 7.909 × 10⁻⁸ m² V⁻¹ s⁻¹ Bianchi 1989
η⁰ 8.904 × 10⁻⁴ Pa s Hai-Lang 1996
ϱ⁰ 997 kg m⁻³ Hai-Lang 1996
ε_r,f⁰ 78.15 Gavish 2016
ε_r,p 20 Li/Li/Zhang/Alexov 2013
ε_r,m 3.2 Gramse 2013
t_Na⁰ 0.3963 Bianchi 1989

Validity and capping. Fits cover 0–5.3 M NaCl. Above 5.3 M every property is clamped to its 5.3 M value. Diffusivities between 4 and 5.3 M are extrapolated (no experimental data beyond 4 M). Implement clamping explicitly and log when it activates — a silently clamped run at high salt is a plausible source of confusion.

Deliberate omission. Simakov and Pederson additionally reduce ion motility by the ratio of ion radius to pore radius. Willems et al. chose not to include this, on the grounds that extrapolating it to ions whose hydrodynamic radius is comparable to a solvent molecule is questionable. Do not add it silently; if ever added, it must be an opt-in experimental model.

3.0 The Einstein ratio, measured

D_i/μ_i in units of kT/e, evaluated from the shipped coefficients far from any wall (f^w = 1), computed with the implementation in nanopnp.materials. [tested: tests/tier1/test_corrections.py::test_ver05_einstein_ratio_drifts_with_concentration]

⟨c⟩ 0.15 M 1 M 3 M 5.3 M
Na⁺ 1.208 1.468 1.665 1.818
Cl⁻ 1.132 1.221 1.279 1.300

The frequently quoted "1.2–1.7 × kT/e between 0.15 and 3 M" describes Na⁺; Cl⁻ drifts far less, reaching only 1.28 at 3 M. Both rise monotonically with concentration, because D is fitted to self-diffusion data and μ to conductivity data and the two fits differ. A regression test should assert monotonicity plus per-ion bounds rather than a single shared range.

3.1 ePNP-NS → PNP-NS

The classical equations are recovered exactly by setting

β_i = 0  and  ε_r,f^c = D_i^c = μ_i^c = η^c = ϱ^c = 1  and  D_i^w = μ_i^w = η^w = 1

This is why the correction registry should treat "off" as just another named model: the PNP-vs-ePNP comparison, and the contribution of each individual correction, then becomes a configuration sweep rather than a code branch.

3.2 Auxiliary: the transport-number fit

t_Na^c(c̄) shares the inverse-polynomial form. It is not needed at solve time — it was used to split measured molar conductivity Λ(c) into per-ion mobilities via μ_i(c) = Λ(c) t_i(c) / (z_i F), with t_Cl = 1 − t_Na. Keep it in the data file: it is exactly what someone re-parameterising a different salt will need.