Trait qmc::sse::qmc_traits::rvb::RvbUpdater[][src]

pub trait RvbUpdater: DiagonalSubsection + Factory<Vec<usize>> + Factory<Vec<bool>> + Factory<BondContainer<usize>> + Factory<BondContainer<VarPos>> + Factory<Vec<Option<usize>>> + Factory<BinaryHeap<Reverse<usize>>> {
    fn constant_ops_on_var(&self, var: usize, ps: &mut Vec<usize>);
fn spin_flips_on_var(&self, var: usize, ps: &mut Vec<usize>); fn rvb_update<R: Rng, EN: EdgeNavigator, H>(
        &mut self,
        edges: &EN,
        state: &mut [bool],
        updates: usize,
        diagonal_edge_hamiltonian: H,
        rng: &mut R
    ) -> usize
    where
        H: Fn(usize, bool, bool) -> f64
, { ... }
fn rvb_update_with_ising_weight<R: Rng, EN: EdgeNavigator, H, F>(
        &mut self,
        edges: &EN,
        state: &mut [bool],
        updates: usize,
        diagonal_edge_hamiltonian: H,
        ising_ratio: F,
        rng: &mut R
    ) -> usize
    where
        H: Fn(usize, bool, bool) -> f64,
        F: Fn(&Self::Op) -> f64
, { ... } }
Expand description

Resonating bond update.

Required methods

Fill ps with the p values of constant (Hij=k) ops for a given var. An implementation by the same name is provided for LoopUpdaters

Fill ps with the p values of spin flips for a given var. An implementation by the same name is provided for LoopUpdaters

Provided methods

Perform a resonating bond update. edges lists all the 2-site bonds which define the lattice. state is the propagated state at time 0. updates is the number of updated to perform. diagonal_edge_hamiltonian gives the weight of a diagonal edge given a spin state. rng prng instance to use.

Perform a resonating bond update. edges lists all the 2-site bonds which define the lattice. state is the propagated state at time 0. updates is the number of updated to perform. diagonal_edge_hamiltonian gives the weight of a diagonal edge given a spin state. ising_ratio provides the weight ratio of a node after a global ising flip to current. rng prng instance to use.

Implementors