24 #ifndef COM_DAFER45_TBTK_SOLVER_SELF_ENERGY2
25 #define COM_DAFER45_TBTK_SOLVER_SELF_ENERGY2
28 #include "TBTK/Property/InteractionVertex.h"
29 #include "TBTK/Property/SelfEnergy.h"
30 #include "TBTK/MomentumSpaceContext.h"
36 class SelfEnergy2 :
public Solver,
public Communicator{
40 const MomentumSpaceContext &momentumSpaceContext,
41 const Property::InteractionVertex &interactionVertex,
42 const Property::GreensFunction &greensFunction
46 const MomentumSpaceContext& getMomentumSpaceContext()
const;
51 const Property::InteractionVertex& getInteractionVertex()
const;
56 const Property::GreensFunction& getGreensFunction()
const;
59 std::vector<std::complex<double>> calculateSelfEnergy(
61 int lowerMatsubaraEnergyIndex,
62 int upperMatsubaraEnergyIndex
66 Property::SelfEnergy calculateSelfEnergyAllBlocks(
68 int lowerMatsubaraEnergyIndex,
69 int upperMatsubaraEnergyIndex
73 const MomentumSpaceContext &momentumSpaceContext;
76 const Property::InteractionVertex &interactionVertex;
79 const Property::GreensFunction &greensFunction;
82 unsigned int getNumIntraBlockIndices();
85 std::vector<Index> getIntraBlockIndexList();
88 inline const MomentumSpaceContext& SelfEnergy2::getMomentumSpaceContext(
90 return momentumSpaceContext;
93 inline const Property::InteractionVertex& SelfEnergy2::getInteractionVertex(
95 return interactionVertex;
98 inline const Property::GreensFunction& SelfEnergy2::getGreensFunction(
100 return greensFunction;