TRIQS/triqs_ctint 4.0.0
A TRIQS application
Loading...
Searching...
No Matches
insert.hpp
1// Copyright (c) 2017--present, The Simons Foundation
2// This file is part of TRIQS/ctint and is licensed under the terms of GPLv3 or later.
3// SPDX-License-Identifier: GPL-3.0-or-later
4// See LICENSE in the root of this distribution for details.
5
6#pragma once
7#include "./../qmc_config.hpp"
8#include "./../lazy_det_operation.hpp"
9#include "./../vertex_factories.hpp"
10#include <triqs/mc_tools/random_generator.hpp>
11
12namespace triqs_ctint::moves {
13
15 struct insert {
16
19
21 std::vector<vertex_factory_t> const &vertex_factories;
22
24 triqs::mc_tools::random_generator &rng;
25
27 int n_insertions = 1;
28
30 int max_order = -1;
31
34
36 mc_weight_t attempt();
37
39 mc_weight_t accept();
40
42 void reject();
43 };
44
45} // namespace triqs_ctint::moves
Type of the Monte-Carlo configuration.
The move that inserts one or multiple vertices into the configuration.
Definition insert.hpp:15
mc_weight_t attempt()
Attempt vertex insertion.
Definition insert.cpp:10
triqs::mc_tools::random_generator & rng
The random number generator.
Definition insert.hpp:24
void reject()
Reject vertex insertion.
Definition insert.cpp:56
int n_insertions
Switch for double vertex insertions.
Definition insert.hpp:27
mc_weight_t accept()
Accept vertex insertion.
Definition insert.cpp:51
std::vector< vertex_factory_t > const & vertex_factories
Factory that randomly generates vertices.
Definition insert.hpp:21
lazy_det_operation_t lazy_op
Object that allows to delay determinant operations, necessary for multi-inserts/removes.
Definition insert.hpp:33
qmc_config_t * qmc_config
The Monte-Carlo configuration.
Definition insert.hpp:18
int max_order
Maximum perturbation order (<0 : unlimited).
Definition insert.hpp:30