Skip to content

Add optional frozen complete-path bias functions - #1472

Open
Zhang-pchao wants to merge 9 commits into
plumed:masterfrom
Zhang-pchao:codex/plumed-pathbias
Open

Zhang-pchao wants to merge 9 commits into
plumed:masterfrom
Zhang-pchao:codex/plumed-pathbias

Conversation

@Zhang-pchao

@Zhang-pchao Zhang-pchao commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Add an optional pathbias module with PATH_LOGMEANEXP, PROBABILITY_MIX and CONDITIONAL_PATH. These stateless actions combine fixed complete-path potentials with explicit normalization and full derivatives. They do not train a model or define a PIMD integrator.

Dependencies and license

Stacked on the shared-path OPES feature #1471 and its #1463/#1467 prerequisites. The final module commit contains the new source, module metadata, manual examples and three native regression suites. The module is distributed under LGPL version 3 or later; the source headers and module documentation agree.

Contracts

Keep global partition-function normalization distinct from coordinate-dependent conditional normalization. Preserve all derivatives of fixed normalization functions. Replica-root aggregation and force ownership are explicit. Every bead of a complete path shares a statistical weight; beads are not independent samples. No claim of improved sampling, marginal preservation with an approximate normalizer, or scientific convergence is made.

Validation

Independent MPI/current-master build with all modules passed. Native regressions cover stable log aggregation, analytic/finite-difference derivatives, domain rejection, replica layouts and frozen OPES integration. All OPES regressions also passed. No private models, trajectories or host paths are included.

Documentation

The native current-master new-manual generator and MkDocs build completed. All changed action examples have empty stderr and are absent from the broken-example list. The full manual reports 36 failing example pages outside these actions and missing optional-module/link warnings; the full manual is not claimed to be warning-free. Inherited generic keywords are not all covered by examples.

Python/OpenMP CI follow-up

Includes the separately reviewable regression-process lifetime fix #1470, which retains the dynamically loaded kernel during Python shutdown. It preserves two-thread execution and the original numerical reference. This addresses the rt-symfunc shutdown failure observed on the debug runner.

Regression follow-up

Included the accepted rt-protein shutdown fix #1473, the rt-grid follow-up #1477, and the timestep-test initialization fix accepted in #1464. The Python configs pass three direct two-thread runs per case with byte-identical reference output; the existing build reports Python unavailable to the native runner. The timestep regression passes through the native runner with poisoned automatic-variable initialization against both v2.10 and master kernels. No reference values, tolerances or thread counts were changed. The Autoconf download failure has a separate upstream CI proposal in #1474.

Terminology and companion integration

The module documentation now distinguishes coordinate averaging, CV averaging, bias-energy averaging and probability-ratio averaging. COUPLING is distinct from coordinate contraction. The complete-path adapter is proposed in lammps/lammps#5232; lammps/lammps#5233 is an optional coordinate-contraction extension, not a dependency of these stateless functions. Zhang-pchao/molsimflow#1 provides a separate numerical oracle and complete-path analysis.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants