PerturbMove

class PerturbMove : public feasst::Perturb

Only perturb the positions of the particles and/or sites.

Subclassed by feasst::PerturbAnywhere, feasst::PerturbBranch, feasst::PerturbDistance, feasst::PerturbMoveAVB, feasst::PerturbPointReflect, feasst::PerturbRotate, feasst::PerturbTranslate

Public Functions

virtual void move(System *system, TrialSelect *select, Random *random) = 0

Move the selection of the system.

void perturb(System *system, TrialSelect *select, Random *random, const bool is_position_held = false)

Perturb the selection of the system.

Parameters
  • is_position_held: If position is held, all but perform the actual perturbation, as typically required for calculations of old configurations and Rosenbluth

void revert(System *system)

For perturbations that only move particles and/or sites, the revert step is the same for all. Simply put the original positions back.

void finalize(System *system)

Finalize the system for an accepted perturbation.