degeneracy_check.x on WFN

Submitted by Vahid on Thu, 07/13/2017 - 15:29

Forums 

User questions

Hello,

I have used the following input to the kgrid.x to generate 147 k-points for WFN for SnSe (has 20 valence states):

4 12 12
0.0 0.0 0.0
0.0 0.0 0.0

1.000000 0.000000 0.000000
0.000000 0.362878 0.000000
0.000000 0.000000 0.385869
8
1 0.8828417 0.0907194 0.2323685
1 0.6171583 0.2721583 0.0394340
1 0.3828417 0.0907194 0.3464349
1 0.1171583 0.2721583 0.1535005
2 0.1428137 0.0907194 0.3767730
2 0.3571863 0.2721583 0.1838386
2 0.6428137 0.0907194 0.2020304
2 0.8571863 0.2721583 0.0090959
150 50 50
.false.

The self-consistent run was done with 20 bands and 147 k-points.

Then I used 52 bands and the 147 k-points to generate WFN. When I run degeneracy_check.x on WFN, I get:

Reading eigenvalues from file WFN
Number of spins: 1
Number of bands: 52
Number of k-points: 147

== Degeneracy-allowed numbers of bands (for epsilon and sigma) ==
4
8
12
16
20
24
28
32
36
40
44
48
Note: cannot assess whether or not highest band 52 is degenerate.

So I choose 48 for the number of bands to generate WFN. After generating WFN, I run degeneracy_check.x again on the new WFN. I get:

Reading eigenvalues from file WFN
Number of spins: 1
Number of bands: 48
Number of k-points: 147

== Degeneracy-allowed numbers of bands (for epsilon and sigma) ==
4
8
12
16
20
24
28
32
36
40
44
Note: cannot assess whether or not highest band 48 is degenerate.

Is this behavior normal? Should I keep lowering the number of bands for WFN?

Thank you,

Vahid

Vahid Askarpour
Department of Physics and Atmospheric Science
Dalhousie University,
Halifax, NS, Canada

Submitted by babarker on Fri, 07/14/2017 - 18:43

Hello Vahid,

Glad it worked out fine. When running epsilon.flavor.x (or sigma.flavor.x, etc.), have the number of bands enumerated in the epsilon.inp/sigma.inp/etc. input file match the allowed number of bands stated from degeneracy_check.x. You will have some bands in your WFN file that will not be read. E.g., you'll have 52 bands in the WFN file, but the code will only use 48 when running epsilon.real.x.

Best,
Brad