[−][src]Struct qmc::sse::qmc_runner::QMC
A manager for QMC and interactions.
Implementations
impl<R: Rng, M: QMCManager> QMC<R, M>
[src]
pub fn new(nvars: usize, rng: R, do_loop_updates: bool) -> Self
[src]
Make a new QMC instance with nvars.
pub fn new_with_state<I: Into<Vec<bool>>>(
nvars: usize,
rng: R,
state: I,
do_loop_updates: bool
) -> Self
[src]
nvars: usize,
rng: R,
state: I,
do_loop_updates: bool
) -> Self
Make a new QMC instance with nvars.
pub fn get_bonds(&self) -> &[Interaction]
[src]
Get interactions.
pub fn make_interaction<MAT: Into<Vec<f64>>, VAR: Into<Vec<usize>>>(
&mut self,
mat: MAT,
vars: VAR
) -> Result<(), String>
[src]
&mut self,
mat: MAT,
vars: VAR
) -> Result<(), String>
Add an interaction to the QMC instance.
pub fn make_interaction_and_offset<MAT: Into<Vec<f64>>, VAR: Into<Vec<usize>>>(
&mut self,
mat: MAT,
vars: VAR
) -> Result<(), String>
[src]
&mut self,
mat: MAT,
vars: VAR
) -> Result<(), String>
Add an interaction to the QMC instance, adjust with a diagonal offset.
pub fn make_diagonal_interaction<MAT: Into<Vec<f64>>, VAR: Into<Vec<usize>>>(
&mut self,
mat: MAT,
vars: VAR
) -> Result<(), String>
[src]
&mut self,
mat: MAT,
vars: VAR
) -> Result<(), String>
Add an interaction to the QMC instance.
pub fn make_diagonal_interaction_and_offset<MAT: Into<Vec<f64>>, VAR: Into<Vec<usize>>>(
&mut self,
mat: MAT,
vars: VAR
) -> Result<(), String>
[src]
&mut self,
mat: MAT,
vars: VAR
) -> Result<(), String>
Add an interaction to the QMC instance, adjust with a diagonal offset.
pub fn diagonal_update(&mut self, beta: f64)
[src]
Perform a single diagonal update.
pub fn loop_update(&mut self)
[src]
Perform a single loop update. Will be inefficient without XX terms.
pub fn cluster_update(&mut self) -> Result<(), &str>
[src]
Flip spins using quantum cluster updates if QMC has ising symmetry.
pub fn flip_free_bits(&mut self)
[src]
Flip spins using thermal fluctuations.
pub fn set_do_heatbath(&mut self, do_heatbath: bool)
[src]
Enable or disable the heatbath diagonal update.
pub fn should_do_heatbath(&self) -> bool
[src]
Should the model do heatbath diagonal updates.
pub fn set_do_loop_updates(&mut self, do_loop_updates: bool)
[src]
Change whether loop updates will be performed.
pub fn should_do_loop_update(&self) -> bool
[src]
Should the model do loop updates.
pub fn should_do_cluster_update(&self) -> bool
[src]
Should the model do cluster updates.
pub fn into_vec(self) -> Vec<bool>
[src]
Convert the state to a vector.
pub fn get_offset(&self) -> f64
[src]
Get the total energy offset.
pub fn get_manager_ref(&self) -> &M
[src]
Get a reference to the diagonal op manager.
pub fn get_cutoff(&self) -> usize
[src]
Get the cutoff.
pub fn set_cutoff(&mut self, cutoff: usize)
[src]
Set the cutoff to a new value
pub fn increase_cutoff_to(&mut self, cutoff: usize)
[src]
Set the cutoff to a new value so long as that new value is larger than the old one.
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
Trait Implementations
impl<R: Debug, M: Debug> Debug for QMC<R, M> where
R: Rng,
M: QMCManager,
[src]
R: Rng,
M: QMCManager,
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> QMCStepper for QMC<R, M> where
R: Rng,
M: QMCManager,
[src]
R: Rng,
M: QMCManager,
pub fn timestep(&mut self, beta: f64) -> &[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 state_ref(&self) -> &[bool]
[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,
Auto Trait Implementations
impl<R, M> RefUnwindSafe for QMC<R, M> where
M: RefUnwindSafe,
R: RefUnwindSafe,
M: RefUnwindSafe,
R: RefUnwindSafe,
impl<R, M> Send for QMC<R, M> where
M: Send,
R: Send,
M: Send,
R: Send,
impl<R, M> Sync for QMC<R, M> where
M: Sync,
R: Sync,
M: Sync,
R: Sync,
impl<R, M> Unpin for QMC<R, M> where
M: Unpin,
R: Unpin,
M: Unpin,
R: Unpin,
impl<R, M> UnwindSafe for QMC<R, M> where
M: UnwindSafe,
R: 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,
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, 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>,