pub struct ClusterStats {
pub fk_csd: Vec<Vec<u64>>,
pub overlap_csd: Vec<Vec<Vec<u64>>>,
pub top_cluster_sizes: Vec<Vec<[f64; 4]>>,
pub fk_updates: Vec<u64>,
pub fk_visited_spins: Vec<u64>,
pub overlap_moves: Vec<Vec<OverlapMoveCounts>>,
pub rmc_edges: Vec<RmcEdgeCounts>,
}Fields§
§fk_csd: Vec<Vec<u64>>FK cluster size histogram per temperature: hist[s] = count of size-s clusters.
overlap_csd: Vec<Vec<Vec<u64>>>Per-mode overlap cluster size histogram: [n_modes][n_temps][n_spins+1].
Counts clusters of the sites a move acts on; the sites it leaves alone are
not size-1 clusters. CMR acts on every site.
top_cluster_sizes: Vec<Vec<[f64; 4]>>Per-mode average relative size of k-th largest overlap cluster: [n_modes][n_temps][4].
Zero for a mode that never ran during measurement, and where fewer than k
clusters exist.
fk_updates: Vec<u64>Recorded FK cluster updates per temperature, summed over replicas. Empty unless FK clusters update spins.
fk_visited_spins: Vec<u64>Spins those updates visited: the flipped cluster for Wolff, every spin for
Swendsen-Wang. For a ferromagnet the mean Wolff cluster size
fk_visited_spins / fk_updates estimates N ⟨m²⟩, and for any model it
converts autocorrelation times from cluster updates to sweeps.
overlap_moves: Vec<Vec<OverlapMoveCounts>>Per-mode move counters of the recorded overlap updates, [n_modes][n_temps].
Empty for a mode that publishes none (replica Monte Carlo).
rmc_edges: Vec<RmcEdgeCounts>Replica Monte Carlo counters of the recorded updates per temperature edge,
[n_temps - 1]; empty without an rmc mode.
Auto Trait Implementations§
impl Forget for ClusterStats
impl Freeze for ClusterStats
impl RefUnwindSafe for ClusterStats
impl Send for ClusterStats
impl Sync for ClusterStats
impl Unpin for ClusterStats
impl UnsafeUnpin for ClusterStats
impl UnwindSafe for ClusterStats
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more