GLE coloured-noise thermostat¶
White-noise Langevin critically damps only one frequency. For ill-conditioned objectives (wide spread of Hessian eigenvalues) most modes are far from critical and decorrelate slowly.
The GLE (Ceriotti-Bussi-Parrinello form) replaces white noise with coloured noise generated from auxiliary momenta whose drift matrix shapes a frequency-dependent friction. A well-chosen drift (optimal-sampling) makes efficiency nearly flat across a target band.
API (from eindir)¶
from eindir import GleThermostat, optimal_sampling_drift, matrix_exp, ldl_sqrt
import numpy as np
drift = optimal_sampling_drift(omega0=0.2) # covers [omega0, 100*omega0]
gle = GleThermostat.canonical(drift, dt=0.01, temperature=1.0, mass=1.0)
# Stationary sample for auxiliary state (ns+1, dim)
ns = drift.shape[0] - 1
c = np.eye(ns+1) * 1.0 # temperature-scaled covariance
s = gle.sample_stationary(c, dim=2, mass=1.0) # (ns+1, 2)
Usage patterns¶
Standalone thermostat in custom integrators.
Via
anneal.gle_langevin(full annealing driver, epoch-wise temperature, gradient-driven BAB + GLE).The same drift matrix is reusable; correctness is set by the covariance C, acceleration by the drift A (a-la-carte decoupling).
See the source comments in eindir/src/gle.rs and anneal/src/methods/gle_langevin.rs for the BAB propagator, matrix_exp (Taylor + scaling-squaring), and ldl_sqrt (stabilized for small dt).
Tie-in to anneal¶
The GLE driver occupies the Move slot of the five-component algebra.
One fitted drift therefore accelerates every gradient-capable driver (plain SA, HMC, Bayesian mixer, …) with no per-driver code.