[][src]Struct qmc::sse::qmc_ising::QMCIsingGraph

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

A container to run QMC simulations.

Implementations

impl<R: Rng, M: OpContainerConstructor + ClassicalLoopUpdater + 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]

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]

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]

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 set_run_semiclassical(&mut self, run_semiclassical: bool)[src]

Enable or disable automatic semiclassical 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.

Trait Implementations

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

impl<R: Debug + Rng, M: Debug + OpContainerConstructor + ClassicalLoopUpdater + 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 + Into<L>,
    L: ClusterUpdater + Into<M>, 
[src]

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

fn timestep(&mut self, beta: f64) -> &[bool][src]

Perform a single step of qmc.

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

Auto Trait Implementations

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

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

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

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

impl<R, M, L> UnwindSafe for QMCIsingGraph<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> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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