JACF¶
Textbook guide to the current autocorrelation (Green–Kubo) route to ionic conductivity.
Conventions
- \(\mathbf{J}(t)=\sum_a q_a\mathbf{v}_a\); velocities in Å/fs for real units.
- Compose: raw JACF →
CumulativeTrapezoid→ SI scale; quote the plateau.
1. Green–Kubo conductivity¶
\[
\boxed{
\sigma = \frac{1}{3\,V k_B T}
\int_0^\infty \big\langle\mathbf{J}(0)\cdot\mathbf{J}(t)\big\rangle\,\mathrm{d}t
}
\]
Mathematically equivalent to the Einstein PMSD route; JACF needs finer velocity sampling but exposes memory and integral convergence. Frequency-dependent \(\sigma(\omega)\): Dielectric.
2. Usage¶
import numpy as np
from molpy.compute import GreenKuboConductivity, CumulativeTrapezoid
rng = np.random.default_rng(2)
J = np.ascontiguousarray(rng.normal(0, 1.0, size=(60, 3)))
raw = GreenKuboConductivity().compute(J, dt=10.0, max_correlation_time=20)
running = CumulativeTrapezoid().fit(raw["jacf"], dt=10.0)["integral"]
# sigma from plateau of running / (3 V k_B T) * SI_prefactor
3. Pitfalls¶
- Coarse velocity dumps → missed JACF decay.
- Quoting the integral at the last lag without a plateau.
- COM / total-current drift spikes.