TRIQS/triqs_modest 3.3.0
Brillouin zone summation
Loading...
Searching...
No Matches
postprocess.hpp
Go to the documentation of this file.
1// Copyright (c) 2025--present, The Simons Foundation
2// This file is part of TRIQS/modest 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
8#include <nda/nda.hpp>
9#include <triqs/gfs.hpp>
10#include "./downfolding.hpp"
11
12namespace triqs::modest {
13
14 //-------------------------------------------------------------------------------------------
15
17 // nda::array<dcomplex, 3> spectral_function(one_body_elements_on_grid const &obe, double mu,
18 // // add magnetic field,
19 // block2_gf<mesh::refreq, matrix_valued> const &Sigma,
20 // nda::array<nda::matrix<double>, 2> const &Sigma_DC) {
21 // auto n_sigma = Sigma.size2();
22 // auto const &mesh = Sigma(0, 0).mesh();
23 // auto calc_trace_GB = detail::trace_G_B_m_G_KS(obe, mu, Sigma, Sigma_DC);
24 // auto result = nda::zeros<dcomplex>(n_sigma, obe.H.n_k(), mesh.size());
25
26 // // WRONG : need to add KS TERM ?
27 // // FIXME : should we do it this way ???? cancelation of poles ???
28
29 // for (auto sigma : range(n_sigma)) {
30 // // FIXME JC : put openmp
31 // for (auto k_idx : nda::range(obe.H.n_k()))
32 // result(sigma, k_idx, r_all) = obe.H.k_weights(k_idx) * calc_trace_GB(sigma, k_idx);
33 // }
34 // result = -1 / M_PI * imag(result);
35 // return result;
36 // }
37
39 nda::array<double, 3> data;
40 };
41
53 block2_gf<mesh::refreq, matrix_valued> const &Sigma_w, double broadening = 0.01);
54
56 nda::array<double, 2> total;
57 nda::array<double, 4> per_theta;
58 };
59
72 block2_gf<mesh::refreq, matrix_valued> const &Sigma_w, double broadening = 0.01);
73
74} // namespace triqs::modest
spectral_function_w projected_spectral_function(one_body_elements_on_grid const &obe_theta, downfolding_projector const &Proj, double mu, block2_gf< mesh::refreq, matrix_valued > const &Sigma_w, double broadening)
Compute the atom- and orbital-resolved spectral function (interacting density of states).
spectral_function_kw spectral_function_on_high_symmetry_path(one_body_elements_on_grid const &obe, double mu, block2_gf< mesh::refreq, matrix_valued > const &Sigma_w, double broadening)
Compute momentum-resolved spectral function A(k, ω) along high-symmetry path.
The projector that downfolds the one-body dispersion (ν) onto local orbitals (m).
A one-body elements struct where all of the underlying data exists on a fixed momentum grid.
Returns Tr (A) [σ,k,ω] for all k points in obe grid and all omega in Sigma mesh.
nda::array< double, 3 > data
A[σ](k,w)
nda::array< double, 4 > per_theta
A[a,σ](m,m',w)
nda::array< double, 2 > total
A[σ](w)