ComputeRemoveAVBDivalent

class ComputeRemoveAVBDivalent : public feasst::TrialCompute

Attempt to remove a particle of type “t” with site_index_t anywhere in Domain. Then, remove a second particle of type “a” with site_index_a in the AV of site_index_t. Finally, remove a third particle of type “a” with site_index_a in the AV of site_index_t.

See ComputeAddAVBDivalent for derivation of the acceptance probability that is the reverse of this Trial.

There are modifications to make for this reverse move considering that the acceptance probability is computed before the removal takes place.

The number of sites to select in the AV already contains the site added from the old state,

\( N^{s,AV}_a + [1,2] \rightarrow N^{s,AV}_a \).

The number of particles of type “t” already contains the first particle added from the old state.

\( N_t + 1 \rightarrow N_t \)

Public Functions

ComputeRemoveAVBDivalent(argtype args = argtype())

args:

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

Perform the Perturbations and determine acceptance.