From cca3a16cd9d703ab13b69ef21114ebfc442d1f37 Mon Sep 17 00:00:00 2001
From: lopa <pardini@physik.hu-berlin.de>
Date: Wed, 10 Aug 2016 17:31:47 +0200
Subject: [PATCH] added eigenvalues

---
 parser/parser-elk/parser_elk.py | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/parser/parser-elk/parser_elk.py b/parser/parser-elk/parser_elk.py
index 1f14ccb..438b7d2 100644
--- a/parser/parser-elk/parser_elk.py
+++ b/parser/parser-elk/parser_elk.py
@@ -44,6 +44,7 @@ class ElkContext(object):
     def onClose_section_single_configuration_calculation(self, backend, gIndex, section):
       dirPath = os.path.dirname(self.parser.fIn.name)
       dosFile = os.path.join(dirPath, "TDOS.OUT")
+      eigvalFile = os.path.join(dirPath, "EIGVAL.OUT")
       if os.path.exists(dosFile):
         dosGIndex=backend.openSection("section_dos")
         with open(dosFile) as f:
@@ -62,6 +63,20 @@ class ElkContext(object):
             backend.addArrayValues("dos_values", np.asarray(dosV))
             backend.addArrayValues("dos_energies", np.asarray(dosE))
         backend.closeSection("section_dos", dosGIndex)
+      if os.path.exists(eigvalFile):
+        eigvalGIndex = backend.openSection("section_eigenvalues")
+        with open(eigvalFile) as g:
+            eigvalKpoint=[]
+            eigvalVal=[]
+            eigvalOcc=[]
+            fromH = unit_conversion.convert_unit_function("hartree", "J")
+            while 1:
+              s = g.readline()
+              if not s: break
+              s = s.strip()
+              if len(s) > 50:
+                eigvalKpoint.append(list(map(float, s.split()[1:4])))
+            backend.addArrayValues("eigenvalues_kpoints", np.asarray(eigvalKpoint))
 
     def onClose_section_system(self, backend, gIndex, section):
       backend.addArrayValues('configuration_periodic_dimensions', np.asarray([True, True, True]))
-- 
GitLab