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