4 #include "../math/cfunction.h"
21 void setU(
double U) { m_U = U; }
22 void setMu(
double mu) { m_mu = mu; }
23 void setT(
double T) { m_T = T; }
24 void setDelta(
double delta) { m_delta = delta; }
25 void setTolerance(
double tolerance) { m_tolerance = tolerance; }
26 void setMaxIterations(
int maxIterations) { m_maxIterations = maxIterations; }
27 inline double getT() {
return m_T; }
28 inline double getU() {
return m_U; }
29 inline double getMu() {
return m_mu; }
30 inline double getDelta() {
return m_delta; }
31 inline double getScaling() {
return m_scaling; }
32 void setStartWithDelta(
bool startWithDelta) { m_startWithDelta = startWithDelta; }
33 void setScaling(
double scaling) { m_scaling = scaling; }
36 math::CFunction getHybridizationFunctionA()
const {
return m_effectiveMediumA; }
39 math::CFunction getHybridizationFunctionB()
const {
return m_effectiveMediumB; }
40 double getOccupation()
const {
return m_n; }
41 double getMagnetization()
const {
return m_m; }
42 void setSelfEnergyA(
const math::CFunction& selfEnergy) { m_selfEnergyA = selfEnergy; }
43 void setGreensFunctionA(
const math::CFunction& G) { m_greenFunctionA = G; }
44 void setHybridizationFunctionA(
const math::CFunction& delta) { m_effectiveMediumA = delta; }
45 void setSelfEnergyB(
const math::CFunction& selfEnergy) { m_selfEnergyB = selfEnergy; }
46 void setGreensFunctionB(
const math::CFunction& G) { m_greenFunctionB = G; }
47 void setHybridizationFunctionB(
const math::CFunction& delta) { m_effectiveMediumB = delta; }
49 void solve(std::string outputDirectory =
"");
51 inline static double gAReal(
double epsk,
int nOmega,
double omega, std::complex<double> fomegaA, std::complex<double> fomegaB,
void * params) {
53 std::complex<double> z(omega, dmft->getDelta());
54 std::complex<double> XAup = z + dmft->getMu() + dmft->getU()/2.0 - fomegaA;
55 std::complex<double> XBup = z + dmft->getMu() + dmft->getU()/2.0 - fomegaB;
56 return (XBup / (XAup * XBup - epsk * epsk)).real() * dos::rho3(epsk);
59 inline static double gAImag(
double epsk,
int nOmega,
double omega, std::complex<double> fomegaA, std::complex<double> fomegaB,
void * params) {
61 std::complex<double> z(omega, dmft->getDelta());
62 std::complex<double> XAup = z + dmft->getMu() + dmft->getU()/2.0 - fomegaA;
63 std::complex<double> XBup = z + dmft->getMu() + dmft->getU()/2.0 - fomegaB;
64 return (XBup / (XAup * XBup - epsk * epsk)).imag() * dos::rho3(epsk);
67 inline static double gBReal(
double epsk,
int nOmega,
double omega, std::complex<double> fomegaA, std::complex<double> fomegaB,
void * params) {
69 std::complex<double> z(omega, dmft->getDelta());
70 std::complex<double> XAdown = z + dmft->getMu() + dmft->getU()/2.0 - fomegaB;
71 std::complex<double> XBdown = z + dmft->getMu() + dmft->getU()/2.0 - fomegaA;
72 return (XBdown / (XAdown * XBdown - epsk * epsk)).real() * dos::rho3(epsk);
75 inline static double gBImag(
double epsk,
int nOmega,
double omega, std::complex<double> fomegaA, std::complex<double> fomegaB,
void * params) {
77 std::complex<double> z(omega, dmft->getDelta());
78 std::complex<double> XAdown = z + dmft->getMu() + dmft->getU()/2.0 - fomegaB;
79 std::complex<double> XBdown = z + dmft->getMu() + dmft->getU()/2.0 - fomegaA;
80 return (XBdown / (XAdown * XBdown - epsk * epsk)).imag() * dos::rho3(epsk);
83 inline static double fAReal(
double epsk,
int nOmega,
double omega, std::complex<double> fomegaA, std::complex<double> fomegaB,
void * params) {
88 inline static double fAImag(
double epsk,
int nOmega,
double omega, std::complex<double> fomegaA, std::complex<double> fomegaB,
void * params) {
94 inline static double fBReal(
double epsk,
int nOmega,
double omega, std::complex<double> fomegaA, std::complex<double> fomegaB,
void * params) {
100 inline static double fBImag(
double epsk,
int nOmega,
double omega, std::complex<double> fomegaA, std::complex<double> fomegaB,
void * params) {
107 void calculateGFAInt();
108 void calculateGFBInt();
109 void calculateFFAInt();
110 void calculateFFBInt();
123 bool m_startWithDelta;
A configuration object which is populated from a configuration file and allows to query and modify co...
Definition: configuration.h:46
Discretized complex-valued function for real arguments.
Definition: cfunction.h:34