openpathsampling.pathmover.PathMover
- class openpathsampling.pathmover.PathMover[source]
A PathMover is the description of a move in replica space.
Notes
A pathmover takes a SampleSet() and returns MoveChange() that is used to change the old SampleSet() to the new one.
SampleSet1 + MoveChange1 => SampleSet2
A MoveChange is effectively a list of Samples. The change acts upon a SampleSet by replacing existing Samples in the same ensemble sequentially.
- SampleSet({samp1(ens1), samp2(ens2), samp3(ens3)}) +
MoveChange([samp4(ens2)]) => SampleSet({samp1(ens1), samp4(ens2), samp3(ens3)})
Note, that a SampleSet is an unordered list (or a set). Hence the ordering in the example is arbitrary.
Potential future change: engine is not needed for all PathMovers (replica exchange, ensemble hopping, path reversal, and moves which combine these [state swap] have no need for the engine). Maybe that should be moved into only the ensembles that need it? ~~~DWHS
Also, I agree with the separating trial and acceptance. We might choose to use a different acceptance criterion than Metropolis. For example, the “waste recycling” approach recently re-discovered by Frenkel (see also work by Athenes, Jourdain, and old work by Kalos) might be interesting. I think the best way to do this is to keep the acceptance in the PathMover, but have it be a separate class ~~~DWHS
Methods
__init__
()args
()Return a list of args of the __init__ function of a class
base
()Return the most parent class actually derived from StorableObject
count_weaks
()Return number of objects subclassed from StorableObject still in memory
depth_post_order
(fnc[, level])Traverse the tree in post-order applying a function with depth
depth_pre_order
(fnc[, level, only_canonical])Traverse the tree of node in pre-order applying a function
descendants
()Return a list of all subclassed objects
fix_name
()Set the objects name to be immutable.
from_dict
(dct)Reconstruct an object from a dictionary representaiton
get_uuid
()idx
(store)Return the index which is used for the object in the given store.
key
(change)keylist
()Return a list of key : subtree tuples
legal_sample_set
(sample_set[, ensembles, ...])This returns all the samples from sample_set which are in both self.replicas and the parameter ensembles.
map_post_order
(fnc, **kwargs)Traverse the tree in post-order applying a function
map_pre_order
(fnc, **kwargs)Traverse the tree in pre-order applying a function
map_tree
(fnc)Apply a function to each node and return a nested tree of results
move
(sample_set)Run the generation starting with the initial sample_set specified.
move_replica_state
(replica_states)named
(name)Name an unnamed object.
objects
()Returns a dictionary of all storable objects
reverse_uuid
()ruuid
(uid)select_sample
(sample_set[, ensembles, replicas])Returns one of the legal samples given self.replica and the ensemble set in ensembles.
set_observer
(active)(De-)Activate observing creation of storable objects
sub_replica_state
(replica_states)Return set of replica states that a submover might be called with
to_dict
()Convert object into a dictionary representation
tree
()Return the object as a tree structure of nested lists of nodes
Attributes
ACTIVE_LONG
CREATION_COUNT
INSTANCE_UUID
base_cls
Return the base class
base_cls_name
Return the name of the base class
cls
Return the class name as a string
default_name
Return the default name.
ensemble_signature
ensemble_signature_set
identifier
A unique identifier to build the unique key for a position in a tree
in_out
List the input -> output relation for ensembles
input_ensembles
Return a list of possible used ensembles for this mover
is_canonical
is_ensemble_change_mover
is_named
True if this object has a custom name.
name
Return the current name of the object.
observe_objects
output_ensembles
Return a list of possible returned ensembles for this mover
submovers
Returns a list of submovers