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

pub trait RVBUpdater: DiagonalSubsection + Factory<Vec<usize>> + Factory<Vec<bool>> + Factory<BondContainer<usize>> + Factory<BondContainer<VarPos>> + Factory<Vec<Option<usize>>> {
    pub fn constant_ops_on_var(&self, var: usize, ps: &mut Vec<usize>);
pub fn spin_flips_on_var(&self, var: usize, ps: &mut Vec<usize>); pub 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
, { ... }
pub 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
, { ... } }

Resonating bond update.

Required methods

pub fn constant_ops_on_var(&self, var: usize, ps: &mut Vec<usize>)[src]

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

pub fn spin_flips_on_var(&self, var: usize, ps: &mut Vec<usize>)[src]

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

Loading content...

Provided methods

pub 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
[src]

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.

pub 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
[src]

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.

Loading content...

Implementors

impl<O: Op + Clone> RVBUpdater for FastOpsTemplate<O>[src]

Loading content...