[−][src]Struct qmc::sse::qmc_ising::QMCIsingGraph
A container to run QMC simulations.
Implementations
impl<R: Rng, M: IsingManager> QMCIsingGraph<R, M>
[src]
pub fn new_with_rng<Rg: Rng>(
edges: Vec<(Edge, f64)>,
transverse: f64,
longitudinal: f64,
cutoff: usize,
rng: Rg,
state: Option<Vec<bool>>
) -> QMCIsingGraph<Rg, M>
[src]
edges: Vec<(Edge, f64)>,
transverse: f64,
longitudinal: f64,
cutoff: usize,
rng: Rg,
state: Option<Vec<bool>>
) -> QMCIsingGraph<Rg, M>
Make a new QMC graph with an rng instance.
pub fn new_from_graph<Rg: Rng>(
graph: GraphState,
transverse: f64,
longitudinal: f64,
cutoff: usize,
rng: Rg
) -> QMCIsingGraph<Rg, M>
[src]
graph: GraphState,
transverse: f64,
longitudinal: f64,
cutoff: usize,
rng: Rg
) -> QMCIsingGraph<Rg, M>
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_rvb_step(&mut self) -> Result<(), String>
[src]
Perform a single rvb step.
pub fn set_run_rvb(&mut self, run_rvb: bool) -> Result<(), String>
[src]
Enable or disable automatic rvb steps. Errors if all js not equal magnitude.
pub fn set_enable_heatbath(&mut self, enable_heatbath: bool)
[src]
Enable heatbath diagonal updates.
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_edges(&self) -> &[(Vec<usize>, f64)]
[src]
Get the edges on the graph
pub fn get_transverse_field(&self) -> f64
[src]
Get the transverse field on the system.
pub fn get_longitudinal_field(&self) -> f64
[src]
Get the longitudinal field on the system.
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) -> Result<(), String>
[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 rvb_success_rate(&self) -> f64
[src]
Average rvb success rate.
Trait Implementations
impl<R, M> Clone for QMCIsingGraph<R, M> where
R: Rng + Clone,
M: IsingManager + Clone,
[src]
R: Rng + Clone,
M: IsingManager + Clone,
pub fn clone(&self) -> Self
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<R: Debug + Rng, M: Debug + IsingManager> Debug for QMCIsingGraph<R, M>
[src]
impl<R, M> Into<QMC<R, M>> for QMCIsingGraph<R, M> where
R: Rng,
M: IsingManager + QMCManager,
[src]
R: Rng,
M: IsingManager + QMCManager,
impl<R, M> IntoQMC<R, M> for QMCIsingGraph<R, M> where
R: Rng,
M: IsingManager + QMCManager,
[src]
R: Rng,
M: IsingManager + QMCManager,
impl<R, M> QMCDebug for QMCIsingGraph<R, M> where
R: Rng,
M: IsingManager + DebugOps,
[src]
R: Rng,
M: IsingManager + DebugOps,
type M = M
The type of the debuggable manager.
pub fn get_debug_manager(&self) -> &Self::M
[src]
pub fn count_diagonal_and_off(&self) -> (usize, usize)
[src]
pub fn count_constant_ops(&self) -> usize
[src]
impl<R, M> QMCStepper for QMCIsingGraph<R, M> where
R: Rng,
M: IsingManager,
[src]
R: Rng,
M: IsingManager,
pub fn timestep(&mut self, beta: f64) -> &[bool]
[src]
Perform a single step of qmc.
pub fn state_ref(&self) -> &[bool]
[src]
pub fn get_n(&self) -> usize
[src]
pub fn get_energy_for_average_n(&self, average_n: f64, beta: f64) -> f64
[src]
pub fn get_bond_count(&self, bond: usize) -> usize
[src]
pub fn timesteps(&mut self, t: usize, beta: f64) -> f64
[src]
pub 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)
pub 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]),
pub 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: IntoIterator<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: IntoIterator<Item = T>,
pub 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,
pub fn timesteps_iter_zip_with_self<F, I, T>(
&mut self,
t: usize,
beta: f64,
sampling_freq: Option<usize>,
zip_with: I,
iter_fn: F
) -> f64 where
F: Fn(T, &Self),
I: IntoIterator<Item = T>,
[src]
&mut self,
t: usize,
beta: f64,
sampling_freq: Option<usize>,
zip_with: I,
iter_fn: F
) -> f64 where
F: Fn(T, &Self),
I: IntoIterator<Item = T>,
pub fn timesteps_measure_with_self<F, T>(
&mut self,
timesteps: usize,
beta: f64,
init_t: T,
state_fold: F,
sampling_freq: Option<usize>
) -> (T, f64) where
F: Fn(T, &Self) -> T,
[src]
&mut self,
timesteps: usize,
beta: f64,
init_t: T,
state_fold: F,
sampling_freq: Option<usize>
) -> (T, f64) where
F: Fn(T, &Self) -> T,
impl<R, M> Verify for QMCIsingGraph<R, M> where
R: Rng,
M: IsingManager,
[src]
R: Rng,
M: IsingManager,
Auto Trait Implementations
impl<R, M> RefUnwindSafe for QMCIsingGraph<R, M> where
M: RefUnwindSafe,
R: RefUnwindSafe,
[src]
M: RefUnwindSafe,
R: RefUnwindSafe,
impl<R, M> Send for QMCIsingGraph<R, M> where
M: Send,
R: Send,
[src]
M: Send,
R: Send,
impl<R, M> Sync for QMCIsingGraph<R, M> where
M: Sync,
R: Sync,
[src]
M: Sync,
R: Sync,
impl<R, M> Unpin for QMCIsingGraph<R, M> where
M: Unpin,
R: Unpin,
[src]
M: Unpin,
R: Unpin,
impl<R, M> UnwindSafe for QMCIsingGraph<R, M> where
M: UnwindSafe,
R: UnwindSafe,
[src]
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,
pub 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.
pub fn to_owned(&self) -> T
[src]
pub 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.
pub 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.
pub 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>,