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

pub struct QMC<R, M, L> where
    R: Rng,
    M: OpContainerConstructor + DiagonalUpdater + Into<L>,
    L: ClusterUpdater + Into<M>, 
{ /* fields omitted */ }

A manager for QMC and interactions.

Implementations

impl<R: Rng, M: OpContainerConstructor + DiagonalUpdater + Into<L>, L: ClusterUpdater + Into<M>> QMC<R, M, L>[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 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<(), ()>[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_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_diagonal_manager_ref(&mut self) -> &M[src]

Get a reference to the diagonal op manager.

pub fn get_loop_manager_ref(&mut self) -> &L[src]

Get a reference to the loop op manager.

pub fn get_manager_ref(&self) -> ManagerRef<'_, '_, M, L>[src]

Get whichever manager ref is convenient.

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, L: Debug> Debug for QMC<R, M, L> where
    R: Rng,
    M: OpContainerConstructor + DiagonalUpdater + Into<L>,
    L: ClusterUpdater + Into<M>, 
[src]

impl<R, M, L> Into<QMC<R, M, L>> for QMCIsingGraph<R, M, L> where
    R: Rng,
    M: OpContainerConstructor + ClassicalLoopUpdater + Into<L>,
    L: ClusterUpdater + Into<M>, 
[src]

impl<R, M, L> QMCStepper for QMC<R, M, L> where
    R: Rng,
    M: OpContainerConstructor + DiagonalUpdater + Into<L>,
    L: ClusterUpdater + Into<M>, 
[src]

Auto Trait Implementations

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

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

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

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

impl<R, M, L> UnwindSafe for QMC<R, M, L> where
    L: UnwindSafe,
    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>,