NanoStructures  1.0
DMFT solver for layered, strongly correlated nanostructures
fftbroadener.h
1 #ifndef FFTBROADENER_H
2 #define FFTBROADENER_H
3 
4 #include "../broadener.h"
5 
6 namespace nrg {
7 namespace broadening {
8 class FFTBroadener : public Broadener
9 {
10 public:
11  FFTBroadener();
12  FFTBroadener(const FFTBroadener& orig);
13  FFTBroadener& operator=(const FFTBroadener& orig);
14  virtual ~FFTBroadener();
15 
16  virtual math::CFunction broaden();
17  virtual Broadener* clone() { return new FFTBroadener(*this); }
18  virtual void showInfo();
19 protected:
20  int getPadding(double eps);
21  double logGaussian(int j);
22  double getCrossOver(double frequency);
23  double gaussian(double frequency);
24 
25  double contribution(double omega, double peakPosition, double peakWeight);
26  std::vector<double> m_frequencies;
27  double m_sqrtPi;
28  double m_epsPadding;
29 };
30 }
31 }
32 #endif // FFTBROADENER_H
Definition: fftbroadener.h:8
Definition: broadener.h:23
Discretized complex-valued function for real arguments.
Definition: cfunction.h:34