Commit 6c38b926 authored by Pardini, Lorenzo (lopa)'s avatar Pardini, Lorenzo (lopa)
Browse files

fixed bugs in BS, atom pos and added GW

parent b20effff
......@@ -125,11 +125,11 @@ class BandHandler(xml.sax.handler.ContentHandler):
self.vertexCoord[i][j] = float(self.vertexCoord[i][j])
for i in range(0,vertexNum-1):
self.backend.addValue("band_k_points",bandKpoints[i])
self.backend.addValue("band_segm_start_end",self.vertexCoord[i:i+2])
self.backend.addValue("number_of_k_points_per_segment",numkPointsPerSegmL[i])
self.backend.addValue("band_segm_labels",self.vertexLabels[i:i+2])
# for i in range(0,vertexNum-1):
# self.backend.addValue("band_k_points",bandKpoints[i])
# self.backend.addValue("band_segm_start_end",self.vertexCoord[i:i+2])
# self.backend.addValue("number_of_k_points_per_segment",numkPointsPerSegmL[i])
# self.backend.addValue("band_segm_labels",self.vertexLabels[i:i+2])
self.eigenSectionGIndex = self.backend.openSection("section_eigenvalues")
self.backend.addValue("number_of_band_segment_eigenvalues",bands)
self.backend.closeSection("section_eigenvalues",self.eigenSectionGIndex)
......@@ -146,8 +146,14 @@ class BandHandler(xml.sax.handler.ContentHandler):
for i in range (0,vertexNum-1):
for j in range(0,bands):
for k in range(0,numkPointsPerSegmL[i]):
bandEnergiesBE[i][0][k].append(self.bandEnergies[0][i][j][k])
bandEnergiesBE[i][1][k].append(self.bandEnergies[1][i][j][k])
bandEnergiesBE[i][0][k].append(self.bandEnergies[0][j][i][k])
bandEnergiesBE[i][1][k].append(self.bandEnergies[1][j][i][k])
# bandEnergiesBE[i][0][k].append(self.bandEnergies[0][i][j][k])
# bandEnergiesBE[i][1][k].append(self.bandEnergies[1][i][j][k])
self.backend.addValue("band_k_points",bandKpoints[i])
self.backend.addValue("band_segm_start_end",self.vertexCoord[i:i+2])
self.backend.addValue("number_of_k_points_per_segment",numkPointsPerSegmL[i])
self.backend.addValue("band_segm_labels",self.vertexLabels[i:i+2])
self.backend.addValue("band_energies",bandEnergiesBE[i])
else: #### check for spin polarized!!!!
self.energySpin[0] = self.energy[0:bands2]
......@@ -161,8 +167,14 @@ class BandHandler(xml.sax.handler.ContentHandler):
for i in range (0,vertexNum-1):
for j in range(0,bands):
for k in range(0,numkPointsPerSegmL[i]):
bandEnergiesBE[i][0][k].append(self.bandEnergies[0][i][j][k])
bandEnergiesBE[i][1][k].append(self.bandEnergies[1][i][j][k])
bandEnergiesBE[i][0][k].append(self.bandEnergies[0][j][i][k])
bandEnergiesBE[i][1][k].append(self.bandEnergies[1][j][i][k])
# bandEnergiesBE[i][0][k].append(self.bandEnergies[0][i][j][k])
# bandEnergiesBE[i][1][k].append(self.bandEnergies[1][i][j][k])
self.backend.addValue("band_k_points",bandKpoints[i])
self.backend.addValue("band_segm_start_end",self.vertexCoord[i:i+2])
self.backend.addValue("number_of_k_points_per_segment",numkPointsPerSegmL[i])
self.backend.addValue("band_segm_labels",self.vertexLabels[i:i+2])
self.backend.addValue("band_energies",bandEnergiesBE[i])
def startElementNS(self, name, qname, attrs):
......
from builtins import object
import setup_paths
from nomadcore.simple_parser import mainFunction, CachingLevel
from nomadcore.simple_parser import SimpleMatcher as SM
from nomadcore.local_meta_info import loadJsonFile, InfoKindEl
from nomadcore.unit_conversion import unit_conversion
import os, sys, json
################################################################
# This is the subparser for the WIEN2k input file (.in2)
################################################################
class GWContext(object):
"""context for wien2k In2 parser"""
def __init__(self):
self.parser = None
self.spinTreat = None
def initialize_values(self):
"""allows to reset values if the same superContext is used to parse different files"""
pass
def startedParsing(self, path, parser):
"""called when parsing starts"""
self.parser = parser
self.initialize_values()
def onClose_x_exciting_section_GW_method(self, backend, gIndex, section):
dirPath = os.path.dirname(self.parser.fIn.name)
eigvalGWFile = os.path.join(dirPath, "EVALQP.DAT")
bandGWFile = os.path.join(dirPath, "TDOS-QP.DAT")
if os.path.exists(eigvalGWFile):
eigvalGWGIndex = backend.openSection("x_exciting_section_GW_qp_eigenvalues")
with open(eigvalGWFile) as g:
qpGWKpoint=[]
Sx = [[],[]]
Sc = [[],[]]
qpE = [[],[]]
Znk = [[],[]]
fromH = unit_conversion.convert_unit_function("hartree", "J")
while 1:
s = g.readline()
if not s: break
s = s.strip()
if "k-point" in s.split():
qpGWKpoint.append([])
for i in range(0,2):
Sx[i].append([])
Sc[i].append([])
qpE[i].append([])
Znk[i].append([])
x,y,z,weight = float(s.split()[3]),float(s.split()[4]),float(s.split()[5]),float(s.split()[6])
qpGWKpoint[-1].append(x)
qpGWKpoint[-1].append(y)
qpGWKpoint[-1].append(z)
else:
s=s.split()
if len(s) == 0:
continue
else:
try: not int(s[0])
except ValueError:
continue
if self.spinTreat:
pass
else:
for i in range(0,2):
Sx[i][-1].append(float(s[4]))
Sc[i][-1].append(float(s[5]))
qpE[i][-1].append(float(s[3]))
Znk[i][-1].append(float(s[9]))
backend.addValue("x_exciting_GW_qp_eigenvalues_kpoints", qpGWKpoint)
backend.addValue("x_exciting_GW_qp_number_of_eigenvalues", len(qpE[0]))
backend.addValue("x_exciting_GW_qp_number_of_eigenvalues_kpoints", len(qpGWKpoint))
backend.addValue("x_exciting_GW_qp_eigenvalues_values", qpE)
backend.addValue("x_exciting_GW_qp_linearization_prefactor", Znk)
backend.closeSection("x_exciting_section_GW_qp_eigenvalues",eigvalGWGIndex)
selfGWGIndex = backend.openSection("x_exciting_section_GW_self_energy")
backend.addValue("x_exciting_GW_self_energy_x", Sx)
backend.addValue("x_exciting_GW_self_energy_c", Sc)
backend.closeSection("x_exciting_section_GW_self_energy",selfGWGIndex)
####################DOS######################
# if os.path.exists(bandGWFile):
# bandGWGIndex = backend.openSection("x_exciting_section_GW_dos")
# with open(bandGWFile) as g:
def buildGWMatchers():
return SM(
name = 'root',
weak = True,
startReStr = "\*\s*GW input parameters\s*\*",
sections = ["x_exciting_section_GW_method", "x_exciting_section_GW"],
subMatchers = [
# SM(name = 'GWinput',
# startReStr = r"(?P<x_wien2k_system_nameIn>.*)"),
# startReStr = "\s*GW taskname:\s*"
SM(r"\s*(?P<x_exciting_GW_type>[-a-zA-Z0-9]+)\s*-\s*[-a-zA-Z0-9]+\s*run"),
SM(r"\s*(?P<x_exciting_GW_type>[-a-zA-Z0-9]+)\s*-\s*[-a-zA-Z0-9]+\s*run"),
# SM(r"\s*(?P<x_wien2k_in2c_switch>[A-Z]+)\s*.*"),
# SM(r"\s*(?P<x_wien2k_in2c_emin>[-+0-9.]+)\s*(?P<x_wien2k_in2c_ne>[-+0-9.]+)\s*(?P<x_wien2k_in2c_espermin>[-+0-9.]+)\s*(?P<x_wien2k_in2c_esper0>[-+0-9.]+)\s*.*"),
# SM(r"\s*(?P<x_wien2k_smearing_kind>[A-Z]+)\s*\s*(?P<x_wien2k_smearing_width__rydberg>[-+0-9.]+)\s*.*"),
# SM(r"\s*(?P<x_wien2k_in2c_gmax>[-+0-9.]+)\s*GMAX")
# SM(r"\s*GW taskname\:\s*")
])
def get_cachingLevelForMetaName(metaInfoEnv, CachingLvl):
"""Sets the caching level for the metadata.
Args:
metaInfoEnv: metadata which is an object of the class InfoKindEnv in nomadcore.local_meta_info.py.
CachingLvl: Sets the CachingLevel for the sections k_band, run, and single_configuration_calculation.
This allows to run the parser without opening new sections.
Returns:
Dictionary with metaname as key and caching level as value.
"""
# manually adjust caching of metadata
cachingLevelForMetaName = {
'section_run': CachingLvl,
'section_method': CachingLvl
}
return cachingLevelForMetaName
from builtins import object
import setup_paths
import numpy as np
from nomadcore.simple_parser import AncillaryParser, CachingLevel
from nomadcore.simple_parser import SimpleMatcher as SM, mainFunction
from nomadcore.local_meta_info import loadJsonFile, InfoKindEl
from nomadcore.caching_backend import CachingLevel
from nomadcore.unit_conversion import unit_conversion
import os, sys, json, exciting_parser_dos,exciting_parser_bandstructure #, exciting_parser_input
import os, sys, json, exciting_parser_dos,exciting_parser_bandstructure, exciting_parser_gw
from ase import Atoms
#def elasticCheck(path):
......@@ -21,6 +22,12 @@ from ase import Atoms
class ExcitingParserContext(object):
def __init__(self):
self.parser = None
def initialize_values(self):
self.metaInfoEnv = self.parser.parserBuilder.metaInfoEnv
def startedParsing(self, path, parser):
# print("path=", path)
# pat = path.split("/")
......@@ -29,11 +36,16 @@ class ExcitingParserContext(object):
# pass
# else:
# pass
# self.initialize_values()
# self.metaInfoEnv = self.parser.parserBuilder.metaInfoEnv
# self.initialize_values()
self.parser=parser
self.initialize_values()
self.atom_pos = []
self.atom_labels = []
self.secMethodIndex = None
self.secSystemIndex = None
self.secSystemIndex = None
self.secGWIndex = None
self.spinTreat = None
self.sim_cell = []
self.cell_format = ''
......@@ -44,6 +56,19 @@ class ExcitingParserContext(object):
def onOpen_section_method(self, backend, gIndex, section):
self.secMethodIndex = gIndex
mainFile = self.parser.fIn.fIn.name
dirPath = os.path.dirname(self.parser.fIn.name)
gwFile = os.path.join(dirPath, "GW_INFO.OUT")
if os.path.exists(gwFile):
subSuperContext = exciting_parser_gw.GWContext()
subParser = AncillaryParser(
fileDescription = exciting_parser_gw.buildGWMatchers(),
parser = self.parser,
cachingLevelForMetaName = exciting_parser_gw.get_cachingLevelForMetaName(self.metaInfoEnv, CachingLevel.PreOpenedIgnore),
superContext = subSuperContext)
with open(gwFile) as fIn:
subParser.parseFile(fIn)
def onClose_x_exciting_section_lattice_vectors(self, backend, gIndex, section):
latticeX = section["x_exciting_geometry_lattice_vector_x"]
latticeY = section["x_exciting_geometry_lattice_vector_y"]
......@@ -105,7 +130,9 @@ class ExcitingParserContext(object):
with open(bandFile) as g:
exciting_parser_bandstructure.parseBand(g, backend, self.spinTreat)
if os.path.exists(gwFile):
backend.addValue('electronic_structure_method', "G0W0")
# with open(gwFile) as f:
backend.addValue('electronic_structure_method', "G0W0")
# exciting_parser_gw.parseGW(f, backend, self.spinTreat)
else:
backend.addValue('electronic_structure_method', "DFT")
if os.path.exists(eigvalFile):
......@@ -243,13 +270,14 @@ class ExcitingParserContext(object):
# i = 1
atoms = Atoms(self.atom_labels, self.atom_pos, cell=[(1, 0, 0),(0, 1, 0),(0, 0, 1)])
atoms.set_cell(self.sim_cell, scale_atoms=True)
# print(atoms.get_positions()[1])
# print("position_lattice",atoms.get_positions()[1])
# while i < len(self.atom_labels):
#
# atoms = Atoms(self.atom_labels, self.atom_pos,self.sim_cell)
# print("attomi=",atoms)
self.atom_pos = atoms.get_positions()
backend.addArrayValues('atom_positions', np.asarray(self.atom_pos))
# print("self.atom_pos_lattice=",np.asarray(self.atom_pos))
# i = 0
# while i < len(self.atom_labels):
# print("self.atom_pos=",np.asarray(self.atom_pos))
......@@ -263,10 +291,10 @@ class ExcitingParserContext(object):
smearing_internal_map = {
"Gaussian": ['gaussian'],
"Methfessel-Paxton 1": ['methfessel-paxton'],
"Methfessel-Paxton 2": ['methfessel-paxton'],
"Fermi Dirac": ['fermi'],
"libbzint": ['tetrahedra']
"Methfessel-Paxton": ['methfessel-paxton'],
# "Methfessel-Paxton 2": ['methfessel-paxton'],
"Fermi-Dirac": ['fermi'],
"Extended": ['tetrahedra']
}
for smName in smearing_internal_map[excSmearingKind[0]]:
......@@ -303,6 +331,26 @@ class ExcitingParserContext(object):
# print("atoms.get_positions()=",atoms.get_positions())
# print("self.atom_labels=", self.atom_labels)
# def onClose_section_run(self, backend, gIndex, section):
# self.secGWIndex = gIndex
#
# mainFile = self.parser.fIn.fIn.name
# dirPath = os.path.dirname(self.parser.fIn.name)
# gwFile = os.path.join(dirPath, "GW_INFO.OUT")
# if os.path.exists(gwFile):
# subSuperContext = exciting_parser_gw.GWContext()
# subParser = AncillaryParser(
# fileDescription = exciting_parser_gw.buildGWMatchers(),
# parser = self.parser,
# cachingLevelForMetaName = exciting_parser_gw.get_cachingLevelForMetaName(self.metaInfoEnv, CachingLevel.PreOpenedIgnore),
# superContext = subSuperContext)
# with open(gwFile) as fIn:
# subParser.parseFile(fIn)
mainFileDescription = \
SM(name = "root matcher",
startReStr = "",
......@@ -341,6 +389,10 @@ mainFileDescription = \
SM(startReStr = r"\s*atomic positions\s*\((?P<x_exciting_atom_position_format>[-a-zA-Z]+)\)\s*:\s*",
subMatchers = [
SM(r"\s*(?P<x_exciting_geometry_atom_number>[+0-9]+)\s*:\s*(?P<x_exciting_geometry_atom_positions_x>[-+0-9.]+)\s*(?P<x_exciting_geometry_atom_positions_y>[-+0-9.]+)\s*(?P<x_exciting_geometry_atom_positions_z>[-+0-9.]+)", repeats = True)
]),
SM(startReStr = r"\s*magnetic fields\s*\((?P<x_exciting_magnetic_field_format>[-a-zA-Z]+)\)\s*:\s*",
subMatchers = [
SM(r"\s*(?P<x_exciting_MT_external_magnetic_field_atom_number>[+0-9]+)\s*:\s*(?P<x_exciting_MT_external_magnetic_field_x>[-+0-9.]+)\s*(?P<x_exciting_MT_external_magnetic_field_y>[-+0-9.]+)\s*(?P<x_exciting_MT_external_magnetic_field_z>[-+0-9.]+)", repeats = True)
])
]),
SM(r"\s*Total number of atoms per unit cell\s*:\s*(?P<x_exciting_number_of_atoms>[-0-9.]+)"),
......
......@@ -30,7 +30,7 @@ object ExcitingParser extends SimpleExternalParserGenerator(
"parser-exciting/parser_exciting.py",
"parser-exciting/exciting_parser_dos.py",
"parser-exciting/exciting_parser_bandstructure.py",
"parser-exciting/exciting_parser_input.py",
"parser-exciting/exciting_parser_gw.py",
"parser-exciting/setup_paths.py",
"nomad_meta_info/public.nomadmetainfo.json",
"nomad_meta_info/common.nomadmetainfo.json",
......
......@@ -5,12 +5,12 @@ import org.specs2.mutable.Specification
object ExcitingParserSpec extends Specification {
"ExcitingParserTest" >> {
"test with json-events" >> {
ParserRun.parse(ExcitingParser, "parsers/exciting/test/examples/TiO2/INFO.OUT", "json-events") must_== ParseResult.ParseSuccess
ParserRun.parse(ExcitingParser, "parsers/exciting/test/examples/Ag/INFO.OUT", "json-events") must_== ParseResult.ParseSuccess
}
}
"test with json" >> {
ParserRun.parse(ExcitingParser, "parsers/exciting/test/examples/TiO2/INFO.OUT", "json") must_== ParseResult.ParseSuccess
ParserRun.parse(ExcitingParser, "parsers/exciting/test/examples/Ag/INFO.OUT", "json") must_== ParseResult.ParseSuccess
}
"ExcitingParserHeliumTest" >> {
......@@ -22,4 +22,15 @@ object ExcitingParserSpec extends Specification {
"test with json" >> {
ParserRun.parse(ExcitingParserHelium, "parsers/exciting/test/examples/helium/INFO.OUT", "json") must_== ParseResult.ParseSuccess
}
"ExcitingParserTestiGW" >> {
"test with json-events" >> {
ParserRun.parse(ExcitingParser, "parsers/exciting/test/examples/GW/INFO.OUT", "json-events") must_== ParseResult.ParseSuccess
}
}
"test with json" >> {
ParserRun.parse(ExcitingParser, "parsers/exciting/test/examples/GW/INFO.OUT", "json") must_== ParseResult.ParseSuccess
}
}
This diff is collapsed.
This diff is collapsed.
0.000000000 -1.102402741
0.000000000 0.8520906418
0.4330295261 -1.102402741
0.4330295261 0.8520906418
0.9633802174 -1.102402741
0.9633802174 0.8520906418
1.575776446 -1.102402741
1.575776446 0.8520906418
1.881974561 -1.102402741
1.881974561 0.8520906418
2.098489324 -1.102402741
2.098489324 0.8520906418
Distance between is = 1 (Si), ia = 1 and
is = 1 (Si), ia = 1 : 0.000000000
is = 1 (Si), ia = 2 : 4.442710321
Distance between is = 1 (Si), ia = 2 and
is = 1 (Si), ia = 1 : 4.442710321
is = 1 (Si), ia = 2 : 0.000000000
8 : nkpt
10 : nstsv
1 0.000000000 0.000000000 0.000000000 : k-point, vkl
(state, eigenvalue and occupancy below)
1 -0.2497444769 2.000000000
2 0.1904798444 2.000000000
3 0.1904798445 2.000000000
4 0.1904798445 2.000000000
5 0.2827203844 0.000000000
6 0.2827203844 0.000000000
7 0.2827203845 0.000000000
8 0.3075155948 0.000000000
9 0.4713830635 0.000000000
10 0.4746699214 0.000000000
2 0.2500000000 0.000000000 0.000000000 : k-point, vkl
(state, eigenvalue and occupancy below)
1 -0.2203202909 2.000000000
2 0.4503996753E-01 2.000000000
3 0.1624144956 2.000000000
4 0.1624144958 2.000000000
5 0.2606579052 0.000000000
6 0.3173577866 0.000000000
7 0.3173577868 0.000000000
8 0.4386524024 0.000000000
9 0.4538380942 0.000000000
10 0.4538380944 0.000000000
3 0.5000000000 0.000000000 0.000000000 : k-point, vkl
(state, eigenvalue and occupancy below)
1 -0.1637204025 2.000000000
2 -0.6718240542E-01 2.000000000
3 0.1463340343 2.000000000
4 0.1463340345 2.000000000
5 0.2422628974 0.000000000
6 0.3110463749 0.000000000
7 0.3110463752 0.000000000
8 0.4656166089 0.000000000
9 0.5776581761 0.000000000
10 0.5776581766 0.000000000
4 0.2500000000 0.2500000000 0.000000000 : k-point, vkl
(state, eigenvalue and occupancy below)
1 -0.2099545513 2.000000000
2 0.6048056571E-01 2.000000000
3 0.1205719098 2.000000000
4 0.1205719099 2.000000000
5 0.2280391189 0.000000000
6 0.3013632758 0.000000000
7 0.3999018704 0.000000000
8 0.3999018706 0.000000000
9 0.4815739301 0.000000000
10 0.5190547322 0.000000000
5 0.5000000000 0.2500000000 0.000000000 : k-point, vkl
(state, eigenvalue and occupancy below)
1 -0.1496625914 2.000000000
2 -0.4492280925E-01 2.000000000
3 0.5912221398E-01 2.000000000
4 0.1090351028 2.000000000
5 0.2420854898 0.000000000
6 0.3502999869 0.000000000
7 0.3979441425 0.000000000
8 0.4058702314 0.000000000
9 0.5601284862 0.000000000
10 0.5761448314 0.000000000
6 0.7500000000 0.2500000000 0.000000000 : k-point, vkl
(state, eigenvalue and occupancy below)
1 -0.1745064067 2.000000000
2 -0.1168172298E-01 2.000000000
3 0.5090386878E-01 2.000000000
4 0.1414817323 2.000000000
5 0.2767617936 0.000000000
6 0.3642843370 0.000000000
7 0.3756010456 0.000000000
8 0.4112588844 0.000000000
9 0.4258895359 0.000000000
10 0.5399485322 0.000000000
7 0.5000000000 0.5000000000 0.000000000 : k-point, vkl
(state, eigenvalue and occupancy below)
1 -0.9734484979E-01 2.000000000
2 -0.9734484969E-01 2.000000000
3 0.8515911715E-01 2.000000000
4 0.8515911724E-01 2.000000000
5 0.2118410955 0.000000000
6 0.2118410956 0.000000000
7 0.5571140547 0.000000000
8 0.5571140547 0.000000000
9 0.5929726629 0.000000000
10 0.5929726630 0.000000000
8 0.7500000000 0.5000000000 0.2500000000 : k-point, vkl
(state, eigenvalue and occupancy below)
1 -0.9116190711E-01 2.000000000
2 -0.9116190700E-01 2.000000000
3 0.4722968471E-01 2.000000000
4 0.4722968482E-01 2.000000000
5 0.3437370604 0.000000000
6 0.3437370606 0.000000000
7 0.3710009185 0.000000000
8 0.3710009186 0.000000000
9 0.5760187866 0.000000000
10 0.5760187868 0.000000000
8 : nkpt
27 : nstsv
1 0.000000000 0.000000000 0.000000000 : k-point, vkl
(state, eigenvalue and occupancy below)
1 -0.2497444769 2.000000000
2 0.1904798444 2.000000000
3 0.1904798445 2.000000000
4 0.1904798445 2.000000000
5 0.2827203844 0.000000000
6 0.2827203844 0.000000000
7 0.2827203845 0.000000000
8 0.3075155948 0.000000000
9 0.4713830635 0.000000000
10 0.4746699214 0.000000000
11 0.4746699214 0.000000000
12 0.5979297611 0.000000000
13 0.5979297611 0.000000000
14 0.5979297611 0.000000000
15 0.7433472444 0.000000000
16 1.035867928 0.000000000
17 1.035867928 0.000000000
18 1.035867929 0.000000000
19 1.079322939 0.000000000
20 1.079322939 0.000000000
21 1.131720836 0.000000000
22 1.131720836 0.000000000
23 1.131720843 0.000000000
24 1.271328375 0.000000000
25 1.271328376 0.000000000
26 1.271328376 0.000000000
27 1.477909279 0.000000000
2 0.000000000 0.000000000 0.5000000000 : k-point, vkl
(state, eigenvalue and occupancy below)
1 -0.1637204025 2.000000000
2 -0.6718240542E-01 2.000000000
3 0.1463340343 2.000000000
4 0.1463340345 2.000000000
5 0.2422628974 0.000000000
6 0.3110463749 0.000000000
7 0.3110463752 0.000000000
8 0.4656166089 0.000000000
9 0.5776581761 0.000000000
10 0.5776581766 0.000000000
11 0.5996377379 0.000000000
12 0.6041477451 0.000000000
13 0.6041477457 0.000000000
14 0.6603862443 0.000000000
15 0.8969100047 0.000000000
16 0.9189053859 0.000000000
17 0.9816095700 0.000000000
18 0.9816095705 0.000000000
19 0.9902565794 0.000000000
20 0.9902565814 0.000000000
21 1.127913248 0.000000000
22 1.162584350 0.000000000
23 1.162584351 0.000000000
24 1.198377173 0.000000000
25 1.198377179 0.000000000
26 1.223643504 0.000000000
27 1.339353178 0.000000000
3 0.000000000 0.5000000000 0.000000000 : k-point, vkl
(state, eigenvalue and occupancy below)
1 -0.1637204025 2.000000000
2 -0.6718240542E-01 2.000000000
3 0.1463340343 2.000000000
4 0.1463340345 2.000000000
5 0.2422628974 0.000000000
6 0.3110463749 0.000000000
7 0.3110463752 0.000000000
8 0.4656166089 0.000000000
9 0.5776581761 0.000000000
10 0.5776581766 0.000000000
11 0.5996377379 0.000000000
12 0.6041477451 0.000000000
13 0.6041477457 0.000000000
14 0.6603862443 0.000000000
15 0.8969100047 0.000000000
16 0.9189053859 0.000000000
17 0.9816095700 0.000000000
18 0.9816095705 0.000000000
19 0.9902565794 0.000000000