TrialAddMultiple
-
class TrialAddMultiple : public feasst::Trial
Attempt to add multiple particles. Typically requires the use of a reference index.
For a derivation of the acceptance criteria, see TrialComputeMove and TrialComputeAdd for reference. For adding multiple particles i, j, …, z:
Forward event
[reverse event]
Probability, \(\pi_{on}\)
[reverse probability, \(\pi_{no}\)]
Select insert trial
[Select remove trial]
\(1/w\)
\([1/w]\)
Place particle of type i
[Delete particle type i]
\(1/V\)
\(\left[1/(N_{i}+ \sum_{a=i}^{z}\delta_{ia})\right]\)
Place particle of type j
[Delete particle type j]
\(1/V\)
\(\left[1/(N_{j}+ \sum_{a=j}^{z}\delta_{ja})\right]\)
…
…
Place particle of type z
[Delete particle type z]
\(1/V\)
\(\left[1/(N_{z}+1)\right]\)
Accept
[Accept]
\(min(1, \chi)\)
\([min(1, 1/\chi)]\)
where \(\delta_{ab} = 1\) when the types of particles \(a\) and \(b\) are identical. Otherwise, \(\delta = 0\).
Application of local detailed balance yields the acceptance probability,
\(\chi = e^{-\beta\Delta U}\prod_{a=i}^z\frac{Ve^{\beta\mu_a}} {(N_a+\sum_{b=a}^{z}\delta_{ab})\Lambda^d}\)
This equation was derived from the perspective of the old state. If the new state is the perspective, \(N_a+\sum_{b=a}^{z}\delta_{ab} \rightarrow N_a-\sum_{b=i}^{a-1}\delta_{ab}\)
Arguments
particle_type[i]: the i-th type of particle to add. The “[i]” is to be substituted for an integer 0, 1, 2, …
TrialStage arguments.