Both kernels are compiled under DIM == 2, but LBMStepper requested them for every double-buffer module, so stationary D3Q19 double-buffer construction would fail at get_function. Moving circles already reject D3Q19 and EsoPull at initialize. Stale latch comment updated. Parametrized CPU test with a module double that lacks the symbols. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>