class SelectParticleAVB : public feasst::TrialSelect

Select a random particle as target, then selection another particle that has index of site either inside or outside the aggregation volume (AV) of target_site. Inside selections may optionally set the anchor to a second target particle, allowing for inside->inside moves.

Public Functions

SelectParticleAVB(const argtype &args = argtype())


  • target_particle_type: type of target particle (default: 0).

  • target_site: index of target site (default: 0).

  • site: index of site on particle_type to put in AV of target site (default: 0).

  • grand_canonical: true if used for grand canonical, false otherwise.

  • inside: true if selecting in the AV, otherwise out (default: true). Not implemented for grand_canonical.

  • second_target: if true, set anchor to a second target particle (default: false).

  • neighbor_index: NeighborCriteria index contained in System (default: 0).

void precompute(System *system)

Precompute quantities before simulation for optimization.

bool select(const Select &perturbed, System *system, Random *random)

  • perturbed: Perturbed is included to allow chaining of selection based on previous.

Perform the selection as implemented in the derived class. Return false if the selection cannot be made. Otherwise, return true.