[−][src]Struct qmc::sse::qmc_ising::QMCIsingGraph
A container to run QMC simulations.
Implementations
impl<R: Rng, M: OpContainerConstructor + ClassicalLoopUpdater + RVBUpdater + Into<L>, L: ClusterUpdater + Into<M>> QMCIsingGraph<R, M, L>
[src]
pub fn new_with_rng<Rg: Rng>(
edges: Vec<(Edge, f64)>,
transverse: f64,
cutoff: usize,
rng: Rg,
state: Option<Vec<bool>>
) -> QMCIsingGraph<Rg, M, L>
[src]
edges: Vec<(Edge, f64)>,
transverse: f64,
cutoff: usize,
rng: Rg,
state: Option<Vec<bool>>
) -> QMCIsingGraph<Rg, M, L>
Make a new QMC graph with an rng instance.
pub fn new_from_graph<Rg: Rng>(
graph: GraphState,
transverse: f64,
cutoff: usize,
rng: Rg
) -> QMCIsingGraph<Rg, M, L>
[src]
graph: GraphState,
transverse: f64,
cutoff: usize,
rng: Rg
) -> QMCIsingGraph<Rg, M, L>
Make a new QMC graph with an rng instance.
pub fn make_haminfo(&self) -> HamInfo<'_>
[src]
Make the hamiltonian struct.
pub fn hamiltonian(
info: &HamInfo<'_>,
vars: &[usize],
bond: usize,
input_state: &[bool],
output_state: &[bool]
) -> f64
[src]
info: &HamInfo<'_>,
vars: &[usize],
bond: usize,
input_state: &[bool],
output_state: &[bool]
) -> f64
Evaluate the hamiltonian using the HamInfo for the graph.
pub fn single_diagonal_step(&mut self, beta: f64)
[src]
Take a single diagonal step.
pub fn single_offdiagonal_step(&mut self)
[src]
Take a single offdiagonal step.
pub fn single_semiclassical_step(&mut self)
[src]
Perform a single semiclassical step.
pub fn single_rvb_step(&mut self)
[src]
Perform a single rvb step.
pub fn set_run_semiclassical(&mut self, run_semiclassical: bool)
[src]
Enable or disable automatic semiclassical steps.
pub fn set_run_rvb(&mut self, run_rvb: bool)
[src]
Enable or disable automatic rvb steps.
pub fn print_debug(&self)
[src]
Print debug output.
pub fn state_mut(&mut self) -> &mut Vec<bool>
[src]
Get a mutable reference to the state at p=0 (can break integrity)
pub fn clone_state(&self) -> Vec<bool>
[src]
Clone the state at p=0.
pub fn into_vec(self) -> Vec<bool>
[src]
Convert the state to a vector.
pub fn get_nvars(&self) -> usize
[src]
Get the number of variables in the graph.
pub fn get_cutoff(&self) -> usize
[src]
Get the cutoff used for qmc calculations (pmax).
pub fn set_cutoff(&mut self, cutoff: usize)
[src]
Set the cutoff.
pub fn get_n(&self) -> usize
[src]
Get the number of ops in graph.
pub fn get_manager_ref(&self) -> &M
[src]
Get a reference to the op manager.
pub fn get_manager_mut(&mut self) -> &mut M
[src]
Get a mutable reference to the op manager.
pub fn get_offset(&self) -> f64
[src]
Get internal energy offset.
pub fn can_swap_managers(&self, other: &Self) -> bool
[src]
Check if two instances can safely swap managers and initial states
pub fn swap_manager_and_state(&mut self, other: &mut Self)
[src]
Swap managers and initial states
pub fn into_qmc(self) -> QMC<R, M, L>
[src]
Convert to a generic QMC instance.
pub fn average_semiclassical_cluster_size(&self) -> f64
[src]
Average semiclassical cluster size.
pub fn rvb_success_rate(&self) -> f64
[src]
Average semiclassical cluster size.
Trait Implementations
impl<R, M, L> Clone for QMCIsingGraph<R, M, L> where
R: Rng + Clone,
M: OpContainerConstructor + ClassicalLoopUpdater + RVBUpdater + Into<L> + Clone,
L: ClusterUpdater + Into<M> + Clone,
[src]
R: Rng + Clone,
M: OpContainerConstructor + ClassicalLoopUpdater + RVBUpdater + Into<L> + Clone,
L: ClusterUpdater + Into<M> + Clone,
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<R: Debug + Rng, M: Debug + OpContainerConstructor + ClassicalLoopUpdater + RVBUpdater + Into<L>, L: Debug + ClusterUpdater + Into<M>> Debug for QMCIsingGraph<R, M, L>
[src]
impl<R, M, L> Into<QMC<R, M, L>> for QMCIsingGraph<R, M, L> where
R: Rng,
M: OpContainerConstructor + ClassicalLoopUpdater + RVBUpdater + Into<L>,
L: ClusterUpdater + Into<M>,
[src]
R: Rng,
M: OpContainerConstructor + ClassicalLoopUpdater + RVBUpdater + Into<L>,
L: ClusterUpdater + Into<M>,
impl<R, M, L> QMCDebug for QMCIsingGraph<R, M, L> where
R: Rng,
M: OpContainerConstructor + ClassicalLoopUpdater + RVBUpdater + DebugOps + Into<L>,
L: ClusterUpdater + Into<M>,
[src]
R: Rng,
M: OpContainerConstructor + ClassicalLoopUpdater + RVBUpdater + DebugOps + Into<L>,
L: ClusterUpdater + Into<M>,
type M = M
The type of the debuggable manager.
fn get_debug_manager(&self) -> &Self::M
[src]
fn count_diagonal_and_off(&self) -> (usize, usize)
[src]
fn count_constant_ops(&self) -> usize
[src]
impl<R, M, L> QMCStepper for QMCIsingGraph<R, M, L> where
R: Rng,
M: OpContainerConstructor + ClassicalLoopUpdater + RVBUpdater + Into<L>,
L: ClusterUpdater + Into<M>,
[src]
R: Rng,
M: OpContainerConstructor + ClassicalLoopUpdater + RVBUpdater + Into<L>,
L: ClusterUpdater + Into<M>,
fn timestep(&mut self, beta: f64) -> &[bool]
[src]
Perform a single step of qmc.
fn state_ref(&self) -> &[bool]
[src]
fn get_n(&self) -> usize
[src]
fn get_energy_for_average_n(&self, average_n: f64, beta: f64) -> f64
[src]
fn timesteps(&mut self, t: usize, beta: f64) -> f64
[src]
fn timesteps_sample(
&mut self,
t: usize,
beta: f64,
sampling_freq: Option<usize>
) -> (Vec<Vec<bool>>, f64)
[src]
&mut self,
t: usize,
beta: f64,
sampling_freq: Option<usize>
) -> (Vec<Vec<bool>>, f64)
fn timesteps_sample_iter<F>(
&mut self,
t: usize,
beta: f64,
sampling_freq: Option<usize>,
iter_fn: F
) -> f64 where
F: Fn(&[bool]),
[src]
&mut self,
t: usize,
beta: f64,
sampling_freq: Option<usize>,
iter_fn: F
) -> f64 where
F: Fn(&[bool]),
fn timesteps_sample_iter_zip<F, I, T>(
&mut self,
t: usize,
beta: f64,
sampling_freq: Option<usize>,
zip_with: I,
iter_fn: F
) -> f64 where
F: Fn(T, &[bool]),
I: Iterator<Item = T>,
[src]
&mut self,
t: usize,
beta: f64,
sampling_freq: Option<usize>,
zip_with: I,
iter_fn: F
) -> f64 where
F: Fn(T, &[bool]),
I: Iterator<Item = T>,
fn timesteps_measure<F, T>(
&mut self,
timesteps: usize,
beta: f64,
init_t: T,
state_fold: F,
sampling_freq: Option<usize>
) -> (T, f64) where
F: Fn(T, &[bool]) -> T,
[src]
&mut self,
timesteps: usize,
beta: f64,
init_t: T,
state_fold: F,
sampling_freq: Option<usize>
) -> (T, f64) where
F: Fn(T, &[bool]) -> T,
impl<R, M, L> Verify for QMCIsingGraph<R, M, L> where
R: Rng,
M: OpContainerConstructor + ClassicalLoopUpdater + RVBUpdater + Into<L>,
L: ClusterUpdater + Into<M>,
[src]
R: Rng,
M: OpContainerConstructor + ClassicalLoopUpdater + RVBUpdater + Into<L>,
L: ClusterUpdater + Into<M>,
Auto Trait Implementations
impl<R, M, L> RefUnwindSafe for QMCIsingGraph<R, M, L> where
L: RefUnwindSafe,
M: RefUnwindSafe,
R: RefUnwindSafe,
L: RefUnwindSafe,
M: RefUnwindSafe,
R: RefUnwindSafe,
impl<R, M, L> Send for QMCIsingGraph<R, M, L> where
L: Send,
M: Send,
R: Send,
L: Send,
M: Send,
R: Send,
impl<R, M, L> Sync for QMCIsingGraph<R, M, L> where
L: Sync,
M: Sync,
R: Sync,
L: Sync,
M: Sync,
R: Sync,
impl<R, M, L> Unpin for QMCIsingGraph<R, M, L> where
L: Unpin,
M: Unpin,
R: Unpin,
L: Unpin,
M: Unpin,
R: Unpin,
impl<R, M, L> UnwindSafe for QMCIsingGraph<R, M, L> where
L: UnwindSafe,
M: UnwindSafe,
R: UnwindSafe,
L: UnwindSafe,
M: UnwindSafe,
R: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,