TRIQS/triqs_cthyb 4.0.0
A TRIQS application
Loading...
Searching...
No Matches
G_l.hpp
1/*******************************************************************************
2 *
3 * TRIQS: a Toolbox for Research in Interacting Quantum Systems
4 *
5 * Copyright (C) 2014, H. U.R. Strand, 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 <triqs/gfs.hpp>
23#include <triqs/mesh.hpp>
24#include <triqs/utility/legendre.hpp>
25#include "../qmc_data.hpp"
26
27namespace triqs_cthyb {
28
29 using namespace triqs::gfs;
30 using namespace triqs::mesh;
31
32 // Measure Legendre Green's function (all blocks)
33 struct measure_G_l {
34
35 public:
36 measure_G_l(std::optional<G_l_t> &G_l_opt, qmc_data const &data, int n_l, gf_struct_t const &gf_struct);
37 void accumulate(mc_weight_t s);
38 void collect_results(mpi::communicator const &c);
39
40 private:
41 qmc_data const &data;
42 mc_weight_t average_sign;
43 G_l_t::view_type G_l;
44 };
45
46} // namespace triqs_cthyb