PerturbMove

class PerturbMove : public feasst::Perturb

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

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

Public Functions

virtual void move(const bool is_position_held, System *system, TrialSelect *select, Random *random, Acceptance *acceptance) = 0

Move the selection of the system.

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

Perturb the selection of the system.

param 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.