class PerturbTranslate : public feasst::PerturbMove

Translate the positions of the selection uniformly random within postivie and negative tunable parameter values. The tunable parameter must be within the bounds of 2*NEAR_ZERO and half of Domain::max_side_length.

Public Functions

void precompute(TrialSelect *select, System *system)

Initialize minimum and maximum tunable parameter based on domain.

void mid_stage(const TrialSelect &select, const System &system)

Set the anchor to the current position of selection.

void update_selection(const Position &trajectory, TrialSelect *select)

Change the position in the selection given a trajectory.

void move(const Position &trajectory, System *system, TrialSelect *select)

Move the selected particles given a trajectory.

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

Move the selected particles. The particles are translated by +/- a maximum of the Tunable parameter.


  • dimension: if == -1, uniform translation in all dimensions (default: -1). Otherwise, translate only specifically +/- value (without tuning) in specific dimension.