20 bool permit_move =
true;
21 bool allow_small_box =
false;
26 virtual void rotate_segment(
double angle) = 0;
27 virtual void store_change(
Change& change) = 0;
28 void _move(
Change& change)
override;
29 void _accept(
Change& change)
override;
30 void _reject(
Change& change)
override;
38 double bias(
Change&,
double uold,
double unew)
override;
51 typename Space::GroupVector::iterator molecule_iter;
67 void rotate_segment(
double angle)
override;
73 void store_change(
Change& change)
override;
79 bool box_big_enough();
107 size_t select_segment()
override;
139 size_t select_segment()
override;
Performs a crankshaft move of a random segment in a polymer chain.
Definition: chainmove.h:89
nlohmann::json json
JSON object.
Definition: json_support.h:10
double sqdispl
center-of-mass displacement squared
Definition: chainmove.h:18
double dprot
maximal angle of rotation, ±0.5*dprot
Definition: chainmove.h:17
const std::string name
Name of move.
Definition: move.h:56
Base class for all moves (MC, Langevin, ...)
Definition: move.h:38
An abstract base class for rotational movements of a polymer chain.
Definition: chainmove.h:11
std::array< size_t, 2 > axis_ndx
Indices of atoms in the spc.p vector that mark the origin and the direction of the axis of rotation...
Definition: chainmove.h:54
An abstract class that rotates a selected segment of a polymer chain in the given simulation box...
Definition: chainmove.h:45
int small_box_encountered
number of skipped moves due to too small container
Definition: chainmove.h:22
Cell list class templates.
Definition: actions.cpp:11
Space & spc
Space to operate on.
Definition: move.h:57
std::vector< size_t > segment_ndx
Indices of atoms in the spc.p vector that shall be rotated.
Definition: chainmove.h:56
Performs a pivot move of a random tail part of a polymer chain.
Definition: chainmove.h:118
void _to_json(json &j) const override
Extra info for report if needed.
Definition: chainmove.cpp:16
Specify changes made to a system.
Definition: space.h:29
Placeholder for atoms and molecules.
Definition: space.h:92
void _from_json(const json &j) override
Extra info for report if needed.
Definition: chainmove.cpp:8
Helper class for storing vectors of base pointers.
Definition: auxiliary.h:237
double bias(Change &, double uold, double unew) override
Extra energy not captured by the Hamiltonian.
Definition: chainmove.cpp:53
Average< double > msqdispl
center-of-mass mean squared displacement
Definition: chainmove.h:19