pub struct ReplicaExchangeEntropicSampling<Extra, Ensemble, R, Hist, Energy, S, Res> { /* private fields */ }
Expand description

Struct used for entropic sampling with replica exchanges

See this, also for merge functions to create the final probability density functions

Implementations

Iterator over ensembles

If you do not know what RwLockReadGuard<'a, Ensemble> is - do not worry. you can just pretend it is &Ensemble and everything should work out fine, since it implements Deref. Of cause, you can also take a look at RwLockReadGuard

read access to your ensembles
  • None if index out of range
  • If you do not know what RwLockReadGuard<Ensemble> is - do not worry. you can just pretend it is &Ensemble and everything will work out fine, since it implements Deref. Of cause, you can also take a look at RwLockReadGuard
mut access to your ensembles
  • if possible, prefer get_ensemble
  • unsafe only use this if you know what you are doing
  • None if index out of range
Safety
  • might panic if a thread is poisened
  • it is assumed, that whatever you change has no effect on the Markov Chain, the result of the energy function etc.
Mutable iterator over ensembles
Safety
  • it is assumed, that whatever you change has no effect on the Markov Chain, the result of the energy function etc.
  • might panic if a thread is poisened
read access to internal histogram
  • None if index out of range
Iterate over the roundtrips done by the REWL

This returns an Iterator which returns the number of roundtrips for each walker. Roundtrips are defined as follows:

If a walker is in the leftest interval, then in the rightest and then in the leftest again (or the other way around) then this is counted as one roundtrip. Note: If only one interval exists, no roundtrips are possible

This iterator will return the roundtrips from the REWL simulation

Iterator over roundtrips done by REES
Checks threshold

returns true, if all walkers are finished

Returns number of walkers per interval

Returns internal walkers
  • access to internal slice of walkers
  • the walkers are sorted and neighboring walker are either sampling the same interval, or a neighboring (and if the replica exchange makes any sense overlapping) interval
Change step size for markov chain of walkers
  • changes the step size used in the sweep
  • changes step size of all walkers in the nth interval
  • returns Err if index out of bounds, i.e., the requested interval does not exist
  • interval counting starts at 0, i.e., n=0 is the first interval
Get step size for markov chain of walkers
  • returns None if index out of bounds, i.e., the requested interval does not exist
  • interval counting starts at 0, i.e., n=0 is the first interval
Change sweep size for markov chain of walkers
  • changes the sweep size used in the sweep
  • changes sweep size of all walkers in the nth interval
  • returns Err if index out of bounds, i.e., the requested interval does not exist
  • interval counting starts at 0, i.e., n=0 is the first interval
Get sweep size for markov chain of walkers
  • returns None if index out of bounds, i.e., the requested interval does not exist
  • interval counting starts at 0, i.e., n=0 is the first interval
Remove extra vector
  • returns tuple of Self (without extra, i.e., Rees<(), Ensemble, R, Hist, Energy, S, Res>) and vector of Extra
Swap the extra vector
  • Note: len of extra has to be the same as self.num_walkers() (which is the same as self.extra_slice().len()) otherwise an Err is returned
Add extra information to your Replica Exchange entropic sampling simulation
  • can be used to, e.g., print stuff during the simulation, or write it to a file and so on
Refine the estimate of the probability density functions
  • refines the estimate of all walkers
  • does so by calling the walker method refine
Sweep
  • Performs one sweep of the Replica exchange entropic sampling simulation
  • You can make a complete simulation, by repeatatly calling this method until self.is_finished() returns true
Perform the Replica exchange simulation
  • will simulate until all walkers are finished
  • extra_fn should be used for example for writing Data to a file
Perform the Replica exchange simulation
  • will simulate until all walkers are finished or
  • until condition returns false
Sanity check
  • checks if the stored (i.e., last) energy(s) of the system match with the result of energy_fn
👎Deprecated since 0.2.0: will be removed in future releases. Use new method ‘derivative_merged_log_prob_and_aligned’ or consider using ‘average_merged_log_probability_and_align’ instead
Result of the simulations!

This is what we do the simulation for!

It returns the natural logarithm of the normalized (i.e. sum=1 within numerical precision) probability density and the histogram, which contains the corresponding bins.

Failes if the internal histograms (invervals) do not align. Might fail if there is no overlap between neighboring intervals

👎Deprecated since 0.2.0: will be removed in future releases. Use new method ‘derivative_merged_log_prob_and_aligned’ or consider using ‘average_merged_log_probability_and_align’ instead
Results of the simulation

This is what we do the simulation for!

It returns histogram, which contains the corresponding bins and the natural logarithm of the normalized (i.e. sum=1 within numerical precision) probability density. Lastly it returns the vector of the aligned probability estimates (also ln) of the different intervals. This can be used to see, how good the simulation worked, e.g., by plotting them to see, if they match

Notes

Failes if the internal histograms (invervals) do not align. Might fail if there is no overlap between neighboring intervals

Results of the simulation

This is what we do the simulation for!

It returns ReplicaGlued which allows you to print out the merged probability density function. It also allows you to switch the base of the logarithm and so on, have a look!

It will use an average based merging algorthim, i.e., it will try to align the intervals and merge them by using the values obtained by averaging in log-space

Notes

Fails if the internal histograms (intervals) do not align. Might fail if there is no overlap between neighboring intervals

Results of the simulation

This is what we do the simulation for!

It returns ReplicaGlued which allows you to print out the merged probability density function. It also allows you to switch the base of the logarithm and so on, have a look!

It will use an derivative based merging algorthim, i.e., it will try to align the intervals and merge them by looking at the derivatives of the probability density function. It will search for the (merging-)point where the derivatives are the most similar to each other and glue by using the values of one of the intervals before the merging point and the other interval afterwards. This is repeated for every interval

Notes

Fails if the internal histograms (intervals) do not align. Might fail if there is no overlap between neighboring intervals

Trait Implementations

Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
Converts to this type from the input type.
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Cast from Self to T
Try converting from Self to T
Cast to integer, truncating Read more
Cast to the nearest integer Read more
Cast the floor to an integer Read more
Cast the ceiling to an integer Read more
Try converting to integer with truncation Read more
Try converting to the nearest integer Read more
Try converting the floor to an integer Read more
Try convert the ceiling to an integer Read more
Convert from T to Self
Try converting from T to Self

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The alignment of pointer.
The type for initializers.
Initializes a with the given initializer. Read more
Dereferences the given pointer. Read more
Mutably dereferences the given pointer. Read more
Drops the object pointed to by the given pointer. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.