Thank you Hartmut,

I just test the fourier transformation inside SemicircleHilbertTransformer::initial_G0. The initial G(tau) is defined by

      std::complex<double> zeta = iw+mu+(flavor%2 ? -h : h);
      G0_omega(i, flavor) = (zeta - sqrt(zeta*zeta-4*tsq[flavor]))/(2*tsq[flavor]);

The code uses backward_ft to inverse fourier transform G0_tau to G0_omega,
  fourier_ptr->backward_ft(G0_tau, G0_omega);

If I fourier transform G0_omega back to G0_tau now, I should get the original G0_tau. But the result of the test shows different G0_tau. Again if I do   fourier_ptr->backward_ft(G0_tau, G0_omega), I will get a new G0_omega'. It sounds that FT(IFT) does not equal to identity! Could you double check that for me?

Kuang-Shing Chen


On Wed, Dec 28, 2011 at 6:15 PM, Hartmut Hafermann <hartmut.hafermann@cpht.polytechnique.fr> wrote:
Hi,

the code is correct. I have changed the comment to comply with the code. As a reference you can have a look into Emanuel's thesis, p. 138:
http://e-collection.library.ethz.ch/eserv/eth:31103/eth-31103-02.pdf

Best,
Hartmut



Am 29.12.2011 um 00:04 schrieb Kuangshing Chen:

Hi,

The function generate_spline_matrix in fouriertransform.C in the dmft folder shows the comments as follows:

  // A is the matrix whose inverse defines spline_matrix
  //  
  //      6                   6
  //      1  4  1
  //         1  4  1
  // A =        ...
  //
  //                    1  4  1
  //    -2  0              0  2 

However, the following codes,

  dense_matrix A = 4*dt/6.*boost::numeric::ublas::identity_matrix<double>(Np1);
 
  for (int i=1; i<Np1-1; i++) {
    A(i,i-1) = dt/6.;
    A(i,i+1) = dt/6.;
  }
  A(0,0) = 1.;
  A(0, Np1-1) = 1.;
  A(Np1-1, 0) = -2.*dt/6.;
  A(Np1-1, 1) = -1.*dt/6.;
  A(Np1-1, Np1-2) = 1*dt/6.;
  A(Np1-1, Np1-1) = 2*dt/6.;

the red lines will make the matrix looks like

  //      6                   6
  //      1  4  1
  //         1  4  1
  // A =        ...
  //
  //                    1  4  1
  //    -2  -1             1  2 

Is the comment correct or the code correct? Any reference for this algorithm?

Thank you,
Kuang-Shing Chen

--
Hartmut Hafermann

École Polytechnique
Centre de Physique Theorique (CPHT)
91128 Palaiseau Cedex, France







--
Kuang-Shing Chen