NanoStructures  1.0
DMFT solver for layered, strongly correlated nanostructures
hilberttransformer.h
1 #ifndef HILBERTTRANSFORMER_H
2 #define HILBERTTRANSFORMER_H
3 
4 #include "mkl_types.h"
5 #include "function.h"
6 
7 #include <vector>
8 
9 namespace math {
11 {
12 public:
14  void init();
15  void setupKernel();
16  void setupWeights();
17  void doConvolution();
18  void broaden();
19  void setPoles(math::Function positive, math::Function negative) { posPoles = positive; negPoles = negative; }
20  std::vector<double> posHT;
21  std::vector<double> negHT;
22 protected:
23  int polesSize;
24  int polesPosSize;
25  int polesNegSize;
26  static int halfKernelSize;
27  static int kernelSize;
28  int numPointsFT;
29 
30  math::Function posPoles;
31  math::Function negPoles;
32 
33  std::vector<MKL_Complex16> weightsPos;
34  std::vector<MKL_Complex16> weightsNeg;
35  std::vector<MKL_Complex16> kernelF;
36  std::vector<MKL_Complex16> kernelB;
37  std::vector<MKL_Complex16> broadenedF;
38  std::vector<MKL_Complex16> broadenedB;
39 
40 };
41 }
42 #endif // HILBERTTRANSFORMER_H
Definition: function.h:9
Definition: hilberttransformer.h:10
void setupKernel()
Definition: hilberttransformer.cpp:20