TrialAddAVBDivalent
-
class TrialAddAVBDivalent : public feasst::Trial
Attempt to add a particle of type “t” with site_index_t anywhere in the Domain. Then add a second particle of type “a” with site_index_a in the AV of site_index_t. Finally, add a third particle of type “b” with site_index_a in the AV of site_index_t.
The derivation of the acceptance criteria follows a similar procedure as described in TrialAddAVB.
Forward event
[reverse event]
Probability, \(\pi_{on}\)
[reverse probability, \(\pi_{no}\)]
Select insert trial
[Select remove trial]
\(1/w\)
\([1/w]\)
Insert site_index_t in box
[Remove site_index_t]
\(1/V\)
\(1/(N_t + 1 + \delta_{ta} + \delta_{tb})\)
Insert site_index_a in AV of site_index_t
[Remove site_index_a in AV of site_index_t
\(1/v_{AV}\)
\(1/(N^{s,AV}_a + 1 + \delta_{ab})\)
Insert site_index_b in AV of site_index_t
[Remove site_index_b in the AV of site_index_t]
\(1/v_{AV}\)
\(1/(N^{s,AV}_b + 1)\)
Accept
[Accept]
\(min(1, \chi)\)
\([min(1, 1/\chi)]\)
where \(N_t\) is the number of particles of type t, \(v_{AV}\) is the aggregation volume, \(N^{s,AV}_a\) is the number of sites with site_index_a, in particles of type a, that are in the AV of site_index_t and \(\delta_{ta}\) is the Kronecker delta as a function of the type index of the target and added particles (i.e., if add and target are of same type, then \(\delta_{ta} = 1\), otherwise \(\delta_{ta} = 0\)).
Application of local detailed balance yields the acceptance probability
\(\chi = \frac{V}{N_t + 1 + \delta_{ta} + \delta_{tb}} \frac{v_{AV}}{N^{s,AV}_a + 1 + \delta_{ab}} \frac{v_{AV}}{N^{s,AV}_a + 1} \frac{1}{\Lambda^{3d}} e^{-\beta\Delta U + \beta\mu_a + \beta\mu_b + \beta\mu_t}\)
Arguments
particle_type_a: type of second added particle in AV of first.
site_index_a: index of site in type a that defines AV (default: 0).
particle_type_b: type of third added particle in AV of first.
site_index_b: index of site in type b that defines AV (default: 0).
SelectParticleAVBDivalent arguments.