ComputeBeta

class ComputeBeta : public feasst::TrialCompute

Attempt to change the inverse temperature, \(\beta\).

The derivation of the acceptance criteria follows a similar procedure as descibed in TrialComputeMove, except with the following differences.

The limiting distribution in the canonical canonical ensemble is

\(\pi_i \propto e^{-\beta U_i}\)

The transition probabilities are as follows.

Forward event

[reverse event]

Probability, \(\pi_{on}\)

[reverse probability, \(\pi_{no}\)]

Select increase of decrease

[Select increase of decrease]

\(1/2\)

\([1/2]\)

Accept

[Accept]

\(min(1, \chi)\)

\([min(1, 1/\chi)]\)

Application of local detailed balance yields the acceptance probability, \(\chi\).

\(\frac{e^{-\beta_o U}}{2}min(1, \chi) = \frac{e^{-\beta_n U}}{2} min(1, 1/\chi)\)

\(\chi = \frac{e^{-(\beta_n - \beta_o) U}}\)

Public Functions

void perturb_and_acceptance(Criteria *criteria, System *system, Acceptance *acceptance, std::vector<TrialStage*> *stages, Random *random)

Perform the Perturbations and determine acceptance.