votca 2024.1-dev
Loading...
Searching...
No Matches
ImaginaryAxisIntegration.h
Go to the documentation of this file.
1/*
2 * Copyright 2009-2020 The VOTCA Development Team
3 * (http://www.votca.org)
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License")
6 *
7 * You may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 */
19
20#ifndef VOTCA_XTP_IMAGINARYAXISINTEGRATION_H
21#define VOTCA_XTP_IMAGINARYAXISINTEGRATION_H
22
23#include "eigen.h"
24#include "quadrature_factory.h"
25#include "rpa.h"
26#include <memory>
27
28// Computes the contribution from the Gauss-Laguerre quadrature to the
29// self-energy expectation matrix for given RPA and frequencies
30namespace votca {
31namespace xtp {
32
34
35 public:
46
47 ImaginaryAxisIntegration(const Eigen::VectorXd& energies,
48 const TCMatrix_gwbse& Mmn);
49
50 void configure(options opt, const RPA& rpa,
51 const Eigen::MatrixXd& kDielMxInv_zero);
52
53 double SigmaGQDiag(double frequency, Index gw_level, double eta) const;
54
55 private:
57
58 std::unique_ptr<GaussianQuadratureBase> gq_ = nullptr;
59
60 // This function calculates and stores inverses of the microscopic dielectric
61 // matrix in a matrix vector
62 void CalcDielInvVector(const RPA& rpa,
63 const Eigen::MatrixXd& kDielMxInv_zero);
64 const Eigen::VectorXd& energies_;
65 std::vector<Eigen::MatrixXd> dielinv_matrices_r_;
67};
68} // namespace xtp
69} // namespace votca
70#endif // VOTCA_XTP_IMAGINARYAXISINTEGRATION_H
double SigmaGQDiag(double frequency, Index gw_level, double eta) const
void CalcDielInvVector(const RPA &rpa, const Eigen::MatrixXd &kDielMxInv_zero)
std::vector< Eigen::MatrixXd > dielinv_matrices_r_
ImaginaryAxisIntegration(const Eigen::VectorXd &energies, const TCMatrix_gwbse &Mmn)
void configure(options opt, const RPA &rpa, const Eigen::MatrixXd &kDielMxInv_zero)
std::unique_ptr< GaussianQuadratureBase > gq_
base class for all analysis tools
Definition basebead.h:33
Eigen::Index Index
Definition types.h:26