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