TRIQS/triqs_cthyb 4.0.0
A TRIQS application
Loading...
Searching...
No Matches
remove.hpp
1/*******************************************************************************
2 *
3 * TRIQS: a Toolbox for Research in Interacting Quantum Systems
4 *
5 * Copyright (C) 2014, P. Seth, I. Krivenko, M. Ferrero and O. Parcollet
6 *
7 * TRIQS is free software: you can redistribute it and/or modify it under the
8 * terms of the GNU General Public License as published by the Free Software
9 * Foundation, either version 3 of the License, or (at your option) any later
10 * version.
11 *
12 * TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY
13 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
15 * details.
16 *
17 * You should have received a copy of the GNU General Public License along with
18 * TRIQS. If not, see <http://www.gnu.org/licenses/>.
19 *
20 ******************************************************************************/
21#pragma once
22#include <algorithm>
23#include <triqs/mc_tools.hpp>
24#include "../qmc_data.hpp"
25
26namespace triqs_cthyb {
27
28 // Removal of C, C^dagger operator
29 class move_remove_c_cdag {
30
31 qmc_data &data;
32 configuration &config;
33 mc_tools::random_generator &rng;
34 int block_index, block_size;
35 histogram *histo_proposed, *histo_accepted; // Analysis histograms
36 double dtau;
37 h_scalar_t new_atomic_weight, new_atomic_reweighting;
38 time_pt tau1, tau2;
39
40 histogram *add_histo(std::string const &name, histo_map_t *histos);
41
42 public:
43 move_remove_c_cdag(int block_index, int block_size, std::string const &block_name, qmc_data &data, mc_tools::random_generator &rng,
44 histo_map_t *histos);
45
46 mc_weight_t attempt();
47 mc_weight_t accept();
48 void reject();
49 };
50}