PerturbBranch
-
class PerturbBranch : public feasst::PerturbMove
Branching is a complex operation because of the correlation between multiple angles. See BondThreeBody for more information.
Public Functions
-
void precompute(TrialSelect *select, System *system)
Same as PerturbDistanceAngle, but for two sets of angles/bonds. Also, obtain the angle parameters between the two mobile branch sites.
-
void place_in_branch(const double distance, const double angle, const double branch_angle, const double extra_angle, System *system, TrialSelect *select, Random *random)
Place second mobile site in branch as described in SelectBranch.
- param extra_angle:
Angle formed by the first mobile site and both anchors. Used to check for a planar branch.
-
void move(const bool is_position_held, System *system, TrialSelect *select, Random *random, Acceptance *acceptance)
Move the selection of the system.
-
void precompute(TrialSelect *select, System *system)