# [MPB-discuss] Eigenvectors components and relations to Bloch solutions which are outside of FBZ

```Hello,
http://mpb-discuss.ab-initio.mit.narkive.com/5J6vrcdF/raw-eigenvectors
where it states that MPB stores the field components of the plane wave
expansion as k-G and not k+G, and it's because of fft sign choice for DFT:
X[k]=sum{0<=n<N, x[n]*exp(-i*2pi/N*n*k) }
I looked over at the source code and indeed it uses fft to convert from
eigenvectors (spanned in reciprocal space) to fields in real space.```
```
In my opinion, it is as if the plane wave expansion which is described in
http://ab-initio.mit.edu/wiki/index.php/MPB_Developer_Information
as
Hk_bloch(x) = Hk(x)*exp(i*k*x)
Hk(x) = sum{G, h_G*exp(i*G*x) }

is wrong and should be -i*k*x and -i*G*x, and the implied time dependence
(say in Meep) should be exp(+i*w*t).

The reason I think it's crucial is for example when one want's to evaluate
the distribution function of H at reciprocal point k+G1 where G1 is a
vector of the photonic crystal lattice. If we go by the given notation
above, then according to Bloch theorem we will have simply
Hk_G1(x) = Hk(x)*exp(-i*G1*x) = sum{G, h_G*exp(i*(G-G1)*x) }

and I can use the eigenvector components, shift them by a single index and
re-evaluate the field using fft (without running MPB for k+G1)

however since MPB stores the vectors of k-G, I come to the conclusion that
by doing so I actually evaluates
sum{G, h_G*exp(i*(-G-G1)*x) }

To make things short...
Should the MPB code use ifft instead of fft and vice versa? as it should be
according to the notation
Hk_bloch(x) = Hk(x)*exp(i*k*x)
Hk(x) = sum{G, h_G*exp(i*G*x) }
(it should actually be N*ifft(x) and 1/N*fft(x) to make sure norm is
conserved)

Respectfully,
Amnon
```
```_______________________________________________
mpb-discuss mailing list
mpb-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-discuss```