class PerturbParticleType : public feasst::Perturb

Change the type of a Particle. If the Particle has multiple Sites, then fix the coordinate of the first site of both particle types to be equal, and then randomly rotate the rest of the sites according to the positions given in the fstprt file particle type definition (e.g., this only works properly for rigid molecules, not flexible ones).

Public Functions

PerturbParticleType(argtype args = argtype())


  • type: type to set for particle.

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

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)

Revert the system for an unaccepted perturbation.

void finalize(System *system)

Finalize the system for an accepted perturbation.

std::string status_header() const

Print status header.

std::string status() const

Print status.