Page 1 of 1

Wfn coeff in the ETSF WFK

Posted: Mon May 12, 2014 5:55 am
by temok
Dear members of the Abinit Forum,

I have a question about the array on which the wavefunction coefficients are stored in the ETSF file format of the WFK.

I understand that
1) Within ABINIT this coefficients are stored in the cg array;
while within the ETSF WFK (NetCDF) file they are stored in the
file.variable['coefficients_of_wavefunctions']

2) the number of planewaves for a given coefficient cg_nk(G) depends on the k-point in question, according to
|k + G_i |^2 < ecut

3) The cg array has a number of dimensions, and the dimension along the axis corresponding to the planewaves is 'mpw', refering to the Maximum number of PlaneWaves.

I noticed that, for a given state (sigma, n, k), the leftover elements of the planewave dimension in cg are set to large real numbers, like 1e+36;
also that the reduced coordinates for those leftover coefficients are set in turn to large integer numbers, like 2147483647.

For example:
the last real elements of cg for a given (sigma, n, k) state are
cg ([ ...., -1.607e-05, -2.741e-04, 9.969e+36, 9.969e+36 ])
where in this case npw_k = mpw - 2

while for the reduced coordinates,
f.variables['reduced_coordinates_of_plane_waves'],
the tail of a planewave array for a specific state looks like

([ [ 0, 0, 0],
.... ,
[ -2, -1, -1],
[ -1, -1, -1],
[-2147483647, -2147483647, -2147483647],
[-2147483647, -2147483647, -2147483647]
)

Question:
Were these 'infinity' values set as a safety measure, as oppose to zeores, so that reading my mistake more items than the expected for a given kpoint lead to a noticeable wrong result?

With regards,
Temok