19template<
typename DeltaE,
typename Apply,
typename RNG>
25 std::uniform_real_distribution<real> u01(0.0, 1.0);
26 std::uniform_int_distribution<idx> site_dist(0, n_sites - 1);
29 stats.
total = n_sites;
31 for (
idx k = 0; k < n_sites; ++k) {
32 idx i = site_dist(rng);
33 real dE = delta_energy(i);
34 real p = (dE <= 0.0) ? 1.0 : std::exp(-
beta * dE);
35 if (p >= 1.0 || u01(rng) < p) {
53template<
typename ProbFn,
typename Apply,
typename RNG>
55 ProbFn acceptance_prob,
58 std::uniform_real_distribution<real> u01(0.0, 1.0);
59 std::uniform_int_distribution<idx> site_dist(0, n_sites - 1);
62 stats.
total = n_sites;
64 for (
idx k = 0; k < n_sites; ++k) {
65 idx i = site_dist(rng);
66 real p = acceptance_prob(i);
67 if (p >= 1.0 || u01(rng) < p) {
86template<
typename DeltaE,
96 Restore restore_state,
97 Measure measure_order,
104 idx op = measure_order();
128template<
typename ProbFn,
135 ProbFn acceptance_prob,
138 Restore restore_state,
139 Measure measure_order,
145 idx op = measure_order();
MetropolisStats metropolis_sweep_prob(idx n_sites, ProbFn acceptance_prob, Apply apply_flip, RNG &rng)
Metropolis sweep with caller-supplied acceptance probabilities.
UmbrellaStats umbrella_sweep(idx n_sites, DeltaE delta_energy, Apply apply_flip, Save save_state, Restore restore_state, Measure measure_order, UmbrellaWindow window, real beta, RNG &rng)
Umbrella-sampled Metropolis sweep (dE variant).
UmbrellaStats umbrella_sweep_prob(idx n_sites, ProbFn acceptance_prob, Apply apply_flip, Save save_state, Restore restore_state, Measure measure_order, UmbrellaWindow window, RNG &rng)
Umbrella-sampled Metropolis sweep (precomputed probability variant).
MetropolisStats metropolis_sweep(idx n_sites, DeltaE delta_energy, Apply apply_flip, real beta, RNG &rng)
Single Metropolis sweep: n_sites random single-site updates.
real beta(real a, real b)
B(a, b) – beta function.
Statistics returned by a single Metropolis sweep.
idx accepted
Number of accepted proposals.
idx total
Total proposals (= n_sites)
Statistics returned by an umbrella sampling sweep.
MetropolisStats mc
Metropolis sweep statistics.
bool reverted
true if state was restored
idx order_param
Order parameter value after sweep.
Window constraint for umbrella sampling.
bool contains(idx v) const