RealTimeTransport 1.0.0
Real-time simulation of quantum transport processes
Loading...
Searching...
No Matches
IteratedRG/Diagrams.h
1//
2// This Source Code Form is subject to the terms of the Mozilla Public
3// License, v. 2.0. If a copy of the MPL was not distributed with this
4// file, You can obtain one at https://mozilla.org/MPL/2.0/.
5//
6
7#ifndef REAL_TIME_TRANSPORT_ITERATED_RG_DIAGRAMS_H
8#define REAL_TIME_TRANSPORT_ITERATED_RG_DIAGRAMS_H
9
10#include <functional>
11
12#include "../BlockMatrices/BlockDiagonalMatrix.h"
13#include "../BlockMatrices/BlockMatrix.h"
14#include "../BlockMatrices/BlockVector.h"
15#include "../Model.h"
16
17namespace RealTimeTransport::IteratedRG::Detail
18{
19
20//
21// __ __
22// ______|_____|______
23// | | | |
24// | | | |
25// 0=====0=====0=====0
26// t τ_1 τ_2 s
27// i3 i1 i2 \bar{i3}
28//
29// Computes column col of the above diagram
30BlockVector bareTwoPointVertex_col(
31 int i1,
32 int i2,
33 int col,
34 SciCore::Real t_minus_tau1,
35 SciCore::Real tau1_minus_tau2,
36 SciCore::Real tau2_minus_s,
37 const BlockDiagonalMatrix& Pi1,
38 const BlockDiagonalMatrix& Pi2,
39 const BlockDiagonalMatrix& Pi3,
40 SciCore::Real epsAbs,
41 const std::vector<BlockMatrix>& superfermion,
42 const Model* model);
43
44//
45// __
46// ______|______
47// | | |
48// | | |
49// 0=====0=====E <-- effective vertex O(D^3)
50// t τ
51// i2 i1 \bar{i2}
52//
53// Computes the column col of the above diagram with middle index i1
54BlockVector effectiveVertexCorrection1_col(
55 int i1,
56 int col,
57 SciCore::Real t_minus_tau,
58 SciCore::Real tau_minus_s,
59 SciCore::Real epsAbs,
60 const std::function<BlockDiagonalMatrix(SciCore::Real)>& computePi,
61 const std::function<BlockVector(int, int, SciCore::Real, SciCore::Real)>& computeD_col,
62 const std::vector<BlockMatrix>& superfermion,
63 const Model* model);
64
65//
66// __
67// ______|______
68// | | |
69// | | |
70// 0=====E=====0 ( E is effective vertex O(D^3) )
71// t τ
72// i2 i1 \bar{i2}
73//
74// Computes the column col of the above diagram with middle index i1
75BlockVector effectiveVertexCorrection2_col(
76 int i1,
77 int col,
78 SciCore::Real t_minus_tau,
79 SciCore::Real tau,
80 SciCore::Real epsAbs,
81 const std::function<BlockDiagonalMatrix(SciCore::Real)>& computePi,
82 const std::function<BlockVector(int, int, SciCore::Real, SciCore::Real)>& computeD_col,
83 const std::vector<BlockMatrix>& superfermion,
84 const Model* model);
85
86//
87// __
88// _____________|
89// | ||
90// | ||
91// 0===========00
92// t τ
93// i2 \bar{i2},i1
94//
95BlockVector effectiveVertexCorrection3_col(
96 int i1,
97 int col,
98 SciCore::Real t_minus_tau,
99 SciCore::Real tau,
100 SciCore::Real epsAbs,
101 const std::function<BlockDiagonalMatrix(SciCore::Real)>& computePi,
102 const std::vector<BlockMatrix>& superfermion,
103 const Model* model);
104
105//
106// __
107// ____________|_
108// | ||
109// | ||
110// 0===========00
111// t τ
112// i2 i1,\bar{i2}
113//
114BlockVector effectiveVertexCorrection4_col(
115 int i1,
116 int col,
117 SciCore::Real t_minus_tau,
118 SciCore::Real tau,
119 SciCore::Real epsAbs,
120 const std::function<BlockDiagonalMatrix(SciCore::Real)>& computePi,
121 const std::vector<BlockMatrix>& superfermion,
122 const Model* model);
123
124BlockVector computeEffectiveVertexCorrections_O3_O5_col(
125 int i,
126 int col,
127 SciCore::Real t_minus_tau,
128 SciCore::Real tau_minus_s,
129 SciCore::Real epsAbs,
130 const std::function<BlockDiagonalMatrix(SciCore::Real)>& computePi,
131 const std::function<BlockVector(int, int, SciCore::Real, SciCore::Real)>& computeD_O3_col,
132 const std::vector<BlockMatrix>& superfermion,
133 const Model* model);
134
135} // namespace RealTimeTransport::IteratedRG::Detail
136
137#endif // REAL_TIME_TRANSPORT_ITERATED_RG_DIAGRAMS_H
Represents a block diagonal matrix.
Definition BlockDiagonalMatrix.h:33
Abstract class representing a model.
Definition Model.h:47