TRIQS/triqs_ctint 4.0.0
A TRIQS application
Loading...
Searching...
No Matches
spinflip.hpp
1#pragma once
2#include "./../qmc_config.hpp"
3#include "./../lazy_det_operation.hpp"
4#include "./../vertex_factories.hpp"
5#include <triqs/mc_tools/random_generator.hpp>
6
7namespace triqs_ctint::moves {
8
10 struct spinflip {
11
14
16 std::vector<vertex_factory_t> const &vertex_factories;
17
19 triqs::mc_tools::random_generator &rng;
20
22 int n_spinflips = 1;
23
25 int max_order = -1;
26
28 std::vector<int> vpos = {};
29
32
34 mc_weight_t attempt();
35
37 mc_weight_t accept();
38
40 void reject();
41 };
42
43} // namespace triqs_ctint::moves
Type of the Monte-Carlo configuration.
The move that spinflips one or multiple vertices from the configuration.
Definition spinflip.hpp:10
mc_weight_t accept()
Accept vertex removal.
Definition spinflip.cpp:36
triqs::mc_tools::random_generator & rng
The random number generator.
Definition spinflip.hpp:19
void reject()
Reject vertex removal.
Definition spinflip.cpp:48
std::vector< int > vpos
Positions at which to flip the spins.
Definition spinflip.hpp:28
lazy_det_operation_t lazy_op
Object that allows to delay determinant operations, necessary for multi-spinflips.
Definition spinflip.hpp:31
int max_order
Maximum perturbation order (<0 : unlimited).
Definition spinflip.hpp:25
std::vector< vertex_factory_t > const & vertex_factories
Factory that randomly generates vertices.
Definition spinflip.hpp:16
mc_weight_t attempt()
Attempt vertex removal.
Definition spinflip.cpp:6
qmc_config_t * qmc_config
The Monte-Carlo configuration.
Definition spinflip.hpp:13
int n_spinflips
Switch for multi vertex spinflips.
Definition spinflip.hpp:22