TRIQS/triqs_cthyb 4.0.0
A TRIQS application
Loading...
Searching...
No Matches
G2_iw_nfft.hpp
1/*******************************************************************************
2 *
3 * TRIQS: a Toolbox for Research in Interacting Quantum Systems
4 *
5 * Copyright (C) 2016, P. Seth, I. Krivenko, H. U.R. Strand, 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
23#include <triqs/experimental/nfft_array.hpp>
24
25#include "G2_iw_acc.hpp"
26
27namespace triqs_cthyb {
28
29 using namespace nda;
30 using namespace triqs::experimental;
31
32 // Measure the two-particle Green's function in Matsubara frequency
33 template <G2_channel Channel> class measure_G2_iw_nfft : public G2_iw::measure_G2_iw_base<Channel> {
34
35 public:
36 measure_G2_iw_nfft(std::optional<G2_iw_t> &G2_iw_opt, qmc_data const &data, G2_measures_t const &G2_measures);
37 void accumulate(mc_weight_t s);
38
39 using B = G2_iw::measure_G2_iw_base<Channel>;
40 using B::collect_results;
41
42 private:
43 std::vector<nfft_array_t<2, 2>> M_nfft;
44 using B::M, B::M_mesh, B::G2_measures, B::data, B::timer_M, B::accumulate_G2;
45 };
46
47} // namespace triqs_cthyb