[][src]Struct qmc::sse::qmc_runner::QMC

pub struct QMC<R, M> where
    R: Rng,
    M: QMCManager
{ /* fields omitted */ }

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]

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]

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]

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]

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]

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) -> 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

Trait Implementations

impl<R: Debug, M: Debug> Debug for QMC<R, M> where
    R: Rng,
    M: QMCManager
[src]

impl<R, M> Into<QMC<R, M>> for QMCIsingGraph<R, M> where
    R: Rng,
    M: IsingManager + QMCManager
[src]

impl<R, M> QMCStepper for QMC<R, M> where
    R: Rng,
    M: QMCManager
[src]

Auto Trait Implementations

impl<R, M> RefUnwindSafe for QMC<R, M> where
    M: RefUnwindSafe,
    R: RefUnwindSafe

impl<R, M> Send for QMC<R, M> where
    M: Send,
    R: Send

impl<R, M> Sync for QMC<R, M> where
    M: Sync,
    R: Sync

impl<R, M> Unpin for QMC<R, M> where
    M: Unpin,
    R: Unpin

impl<R, M> UnwindSafe for QMC<R, M> where
    M: UnwindSafe,
    R: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,