Struct net_ensembles::sampling::rewl::ReplicaExchangeWangLandau[][src]

pub struct ReplicaExchangeWangLandau<Ensemble, R, Hist, Energy, S, Res> { /* fields omitted */ }
Expand description

Efficient replica exchange Wang landau

  • use this to quickly build your own parallel replica exchange wang landau simulation

Tipp

Use the short hand Rewl

Citations

  • the following paper were used to progamm this - you should cite them, if you use this library for a publication!

Y. W. Li, T. Vogel, T. Wüst and D. P. Landau, “A new paradigm for petascale Monte Carlo simulation: Replica exchange Wang-Landau sampling,” J. Phys.: Conf. Ser. 510 012012 (2014), DOI 10.1088/1742-6596/510/1/012012

T. Vogel, Y. W. Li, T. Wüst and D. P. Landau, “Exploring new frontiers in statistical physics with a new, parallel Wang-Landau framework,” J. Phys.: Conf. Ser. 487 012001 (2014), DOI 10.1088/1742-6596/487/1/012001

T. Vogel, Y. W. Li, T. Wüst and D. P. Landau, “Scalable replica-exchange framework for Wang-Landau sampling,” Phys. Rev. E 90: 023302 (2014), DOI 10.1103/PhysRevE.90.023302

R. E. Belardinelli and V. D. Pereyra, “Fast algorithm to calculate density of states,” Phys. Rev. E 75: 046701 (2007), DOI 10.1103/PhysRevE.75.046701

F. Wang and D. P. Landau, “Efficient, multiple-range random walk algorithm to calculate the density of states,” Phys. Rev. Lett. 86, 2050–2053 (2001), DOI 10.1103/PhysRevLett.86.2050

Implementations

Read access to internal rewl walkers

  • each of these walkers independently samples an interval.
  • see paper for more infos

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

Mutable iterator over ensembles

  • if possible, prefer ensemble_iter
  • unsafe only use this if you know what you are doing
  • 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

mut access to your ensembles

  • if possible, prefer get_ensemble
  • unsafe only use this if you know what you are doing
  • it is assumed, that whatever you change has no effect on the Markov Chain, the result of the energy function etc.
  • None if index out of range
  • might panic if a thread is poisened

Returns number of walkers per 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

Perform the Replica exchange wang landau simulation

  • will simulate until all walkers have factors log_f that are below the threshold you chose

Perform the Replica exchange wang landau simulation

  • will simulate until all walkers have factors log_f that are below the threshold you chose 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

Sweep

  • Performs one sweep of the Replica exchange wang landau simulation
  • You can make a complete simulation, by repeatatly calling this method until self.is_finished() returns true

returns largest value of factor log_f present in the walkers

Log_f factors of the walkers

  • the log_f’s will be reduced towards 0 during the simulation

Is the simulation finished?

checks if all walkers have factors log_f that are below the threshold you chose

Result of the simulations!

This is what we do the simulation for!

It returns the log10 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

Results of the simulation

This is what we do the simulation for!

It returns histogram, which contains the corresponding bins and the logarithm with base 10 of the normalized (i.e. sum=1 within numerical precision) probability density. Lastly it returns the vector of the aligned probability estimates (also log10) 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

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

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

Get Ids

This is an indicator that the replica exchange works. In the beginning, this will be a sorted vector, e.g. [0,1,2,3,4]. Then it will show, where the ensemble, which the corresponding walkers currently work with, originated from. E.g. If the vector is [3,1,0,2,4], Then walker 0 has a ensemble originating from walker 3, the walker 1 is back to its original ensemble, walker 2 has an ensemble originating form walker 0 and so on.

read access to internal histogram

  • None if index out of range

Convert into Rees

This creates a Replica exchange entropic sampling simulation from this Replica exchange wang landau simulation

Convert into Rees

  • similar to into_rees, though now we can store extra information. The extra information can be anything, e.g., files in which each walker should later write information every nth step or something else entirely.

important

  • The vector extra must be exactly as long as the walker slice and each walker is assigned the corresponding entry from the vector extra
  • You can look at the walker slice with the walkers method

Trait Implementations

Formats the value using the given formatter. Read more

Deserialize this value from the given Serde deserializer. Read more

Performs the conversion.

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

Performs the conversion.

Performs the conversion.

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.