TrialComputeVolume

class TrialComputeVolume : public feasst::TrialCompute
Attempt to change the volume
The derivation of the acceptance criteria follows a similar procedure as descibed in TrialComputeMove, except with the following differences. See Lecture 9 of Kofke’s CHE 530 course. Note that, following https://doi.org/10.1080/00268970210126619, this implementation makes use of a shell particle. The ideal gas with this algorithm will be \(\beta P\langle V\rangle=N\).
The limiting distribution in the isothermalisobaric ensemble is
\(\pi_i \propto e^{\beta U  \beta P V + (N1) \ln V} dV\)
But if volume is changed in ln units
\(\pi_i \propto e^{\beta U  \beta P V + N \ln V} d\ln V\)
The transition probabilities are as follows, assuming that this move is coupled with a trial that removes particles with the same selection weight.
Forward event
[reverse event]
Probability, \(\pi_{on}\)
[reverse probability, \(\pi_{no}\)]
Select new volume
[Select old volume]
\(1/\Delta V\)
\([1/\Delta V]\)
Accept
[Accept]
\(min(1, \chi)\)
\([min(1, 1/\chi)]\)
Application of local detailed balance yields the acceptance probability, \(\chi\).
\(\frac{e^{\beta U_o  \beta P V_o + (N1) \ln V_o}}{\Delta V}min(1, \chi) = \frac{e^{\beta U_n  \beta P V_n + (N1) \ln V_n}}{\Delta V}min(1, 1/\chi)\)
\(\chi = e^{\beta\Delta U  \beta P \Delta V + (N1) \ln V_n/V_o}\)
And if volume is changed in ln units
\(\chi = e^{\beta\Delta U  \beta P \Delta V + N \ln V_n/V_o}\)