Struct net_ensembles::sampling::rees::ReesWalker
source · [−]pub struct ReesWalker<R, Hist, Energy, S, Res> { /* private fields */ }
Expand description
Walker for Replica exchange entropic sampling
- performes the random walk in its respective domain
Implementations
sourceimpl<R, Hist, Energy, S, Res> ReesWalker<R, Hist, Energy, S, Res>
impl<R, Hist, Energy, S, Res> ReesWalker<R, Hist, Energy, S, Res>
sourcepub fn id(&self) -> usize
pub fn id(&self) -> usize
Returns id of walker
- important for mapping the ensemble to the walker
sourcepub fn energy_copy(&self) -> Energywhere
Energy: Copy,
pub fn energy_copy(&self) -> Energywhere
Energy: Copy,
Returns current energy
sourcepub fn sweep_size(&self) -> NonZeroUsize
pub fn sweep_size(&self) -> NonZeroUsize
sourcepub fn sweep_size_change(&mut self, sweep_size: NonZeroUsize)
pub fn sweep_size_change(&mut self, sweep_size: NonZeroUsize)
sourcepub fn step_size_change(&mut self, step_size: usize)
pub fn step_size_change(&mut self, step_size: usize)
sourcepub fn step_count(&self) -> u64
pub fn step_count(&self) -> u64
sourcepub fn replica_exchanges(&self) -> u64
pub fn replica_exchanges(&self) -> u64
sourcepub fn proposed_replica_exchanges(&self) -> u64
pub fn proposed_replica_exchanges(&self) -> u64
sourcepub fn replica_exchange_frac(&self) -> f64
pub fn replica_exchange_frac(&self) -> f64
fraction of how many replica exchanges were accepted and how many were proposed
sourcepub fn acceptance_rate_markov(&self) -> f64
pub fn acceptance_rate_markov(&self) -> f64
sourcepub fn log_density(&self) -> &[f64]
pub fn log_density(&self) -> &[f64]
- Old non normalized estimate of the natural logarithm of the probability density function
- for refined density use
self.log_density_refined()
sourcepub fn log_density_refined(&self) -> Vec<f64, Global>where
Hist: Histogram,
pub fn log_density_refined(&self) -> Vec<f64, Global>where
Hist: Histogram,
- Current non normalized estimate of the natural logarithm of the probability density function
- calculated by refining old density with current histogram
How does the refining work?
- Let P(i) be the current probability density function (non normalized) at some index i
- Let H(i) be the histogram at some index i We will now calculate the refined density P’, which is calculated as follows:
P’(i) = P(i) * H(i) (if H(i) != 0)
P’(i) = P(i) (if H(i) == 0)
Or in log space, which is what is actually calculated here:
ln(P’(i)) = ln(P(i)) + ln(H(i)) (if H(i) != 0)
ln(P’(i)) = ln(P(i)) (if H(i)=0)
for more information see
J. Lee, “New Monte Carlo algorithm: Entropic sampling,” Phys. Rev. Lett. 71, 211–214 (1993), DOI: 10.1103/PhysRevLett.71.211
sourcepub fn log10_density(&self) -> Vec<f64, Global>
pub fn log10_density(&self) -> Vec<f64, Global>
Old estimate of log10 of probability density
- normalized (sum over non log values is 1 (within numerical precision))
sourcepub fn log10_density_refined(&self) -> Vec<f64, Global>where
Hist: Histogram,
pub fn log10_density_refined(&self) -> Vec<f64, Global>where
Hist: Histogram,
Current estimate of log10 of probability density
- normalized (sum over non log values is 1 (within numerical precision))
sourcepub fn is_finished(&self) -> bool
pub fn is_finished(&self) -> bool
is the simulation finished?
- true, if more (or equal) steps than the step threshold are performed
sourcepub fn step_threshold(&self) -> u64
pub fn step_threshold(&self) -> u64
sourcepub fn refine(&mut self)where
Hist: Histogram,
pub fn refine(&mut self)where
Hist: Histogram,
Refine current probability density estimate
- refines the current probability estimate by setting it to self.log_density_refined
Trait Implementations
sourceimpl<R, Hist, Energy, S, Res> Clone for ReesWalker<R, Hist, Energy, S, Res>where
R: Clone,
Hist: Clone,
Energy: Clone,
S: Clone,
Res: Clone,
impl<R, Hist, Energy, S, Res> Clone for ReesWalker<R, Hist, Energy, S, Res>where
R: Clone,
Hist: Clone,
Energy: Clone,
S: Clone,
Res: Clone,
sourcefn clone(&self) -> ReesWalker<R, Hist, Energy, S, Res>
fn clone(&self) -> ReesWalker<R, Hist, Energy, S, Res>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresourceimpl<R, Hist, Energy, S, Res> Debug for ReesWalker<R, Hist, Energy, S, Res>where
R: Debug,
Hist: Debug,
Energy: Debug,
S: Debug,
Res: Debug,
impl<R, Hist, Energy, S, Res> Debug for ReesWalker<R, Hist, Energy, S, Res>where
R: Debug,
Hist: Debug,
Energy: Debug,
S: Debug,
Res: Debug,
sourceimpl<'de, R, Hist, Energy, S, Res> Deserialize<'de> for ReesWalker<R, Hist, Energy, S, Res>where
R: Deserialize<'de>,
Hist: Deserialize<'de>,
Energy: Deserialize<'de>,
S: Deserialize<'de>,
impl<'de, R, Hist, Energy, S, Res> Deserialize<'de> for ReesWalker<R, Hist, Energy, S, Res>where
R: Deserialize<'de>,
Hist: Deserialize<'de>,
Energy: Deserialize<'de>,
S: Deserialize<'de>,
sourcefn deserialize<__D>(
__deserializer: __D
) -> Result<ReesWalker<R, Hist, Energy, S, Res>, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<ReesWalker<R, Hist, Energy, S, Res>, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl<R, Hist, Energy, S, Res> From<RewlWalker<R, Hist, Energy, S, Res>> for ReesWalker<R, Hist, Energy, S, Res>where
Hist: Histogram,
impl<R, Hist, Energy, S, Res> From<RewlWalker<R, Hist, Energy, S, Res>> for ReesWalker<R, Hist, Energy, S, Res>where
Hist: Histogram,
sourcefn from(
rewl_walker: RewlWalker<R, Hist, Energy, S, Res>
) -> ReesWalker<R, Hist, Energy, S, Res>
fn from(
rewl_walker: RewlWalker<R, Hist, Energy, S, Res>
) -> ReesWalker<R, Hist, Energy, S, Res>
Converts to this type from the input type.
sourceimpl<R, Hist, Energy, S, Res> Serialize for ReesWalker<R, Hist, Energy, S, Res>where
R: Serialize,
Hist: Serialize,
Energy: Serialize,
S: Serialize,
impl<R, Hist, Energy, S, Res> Serialize for ReesWalker<R, Hist, Energy, S, Res>where
R: Serialize,
Hist: Serialize,
Energy: Serialize,
S: Serialize,
sourcefn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations
impl<R, Hist, Energy, S, Res> RefUnwindSafe for ReesWalker<R, Hist, Energy, S, Res>where
Energy: RefUnwindSafe,
Hist: RefUnwindSafe,
R: RefUnwindSafe,
Res: RefUnwindSafe,
S: RefUnwindSafe,
impl<R, Hist, Energy, S, Res> Send for ReesWalker<R, Hist, Energy, S, Res>where
Energy: Send,
Hist: Send,
R: Send,
Res: Send,
S: Send,
impl<R, Hist, Energy, S, Res> Sync for ReesWalker<R, Hist, Energy, S, Res>where
Energy: Sync,
Hist: Sync,
R: Sync,
Res: Sync,
S: Sync,
impl<R, Hist, Energy, S, Res> Unpin for ReesWalker<R, Hist, Energy, S, Res>where
Energy: Unpin,
Hist: Unpin,
R: Unpin,
Res: Unpin,
S: Unpin,
impl<R, Hist, Energy, S, Res> UnwindSafe for ReesWalker<R, Hist, Energy, S, Res>where
Energy: UnwindSafe,
Hist: UnwindSafe,
R: UnwindSafe,
Res: UnwindSafe,
S: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
fn cast_trunc(self) -> T
fn cast_trunc(self) -> T
Cast to integer, truncating Read more
fn cast_nearest(self) -> T
fn cast_nearest(self) -> T
Cast to the nearest integer Read more
fn cast_floor(self) -> T
fn cast_floor(self) -> T
Cast the floor to an integer Read more
fn try_cast_trunc(self) -> Result<T, Error>
fn try_cast_trunc(self) -> Result<T, Error>
Try converting to integer with truncation Read more
fn try_cast_nearest(self) -> Result<T, Error>
fn try_cast_nearest(self) -> Result<T, Error>
Try converting to the nearest integer Read more
fn try_cast_floor(self) -> Result<T, Error>
fn try_cast_floor(self) -> Result<T, Error>
Try converting the floor to an integer Read more
fn try_cast_ceil(self) -> Result<T, Error>
fn try_cast_ceil(self) -> Result<T, Error>
Try convert the ceiling to an integer Read more