class PerturbVolume : public feasst::Perturb

Change the volume of the system uniformly randomly in \(\ln V\).

Public Functions

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 change_volume(const double delta_volume, System *system, const Select &select)

Change volume.

void revert(System *system)

Revert the system for an unaccepted perturbation.

void finalize(System *system)

Finalize the system for an accepted perturbation.


PerturbVolume(argtype args = argtype())


  • uniform_volume: if true, change volume uniformly in V instead of \(\ln V\) (default: false).

  • constrain_volume_change: if true, use the previous volume change to do the opposite for use as the second stage in Gibbs ensemble (default: false).

  • Tunable arguments.