From 6cdaccbe0951af5bd93e4e2570a73f71bcff6f17 Mon Sep 17 00:00:00 2001
From: Daria Tomecka <zarvok79@yahoo.com>
Date: Sat, 3 Sep 2016 03:18:51 +0200
Subject: [PATCH] wien2k: parse density for atom xx at the nucleus (first
 radial mesh point) :RTO, :CHA, CHAxxx

---
 parser/parser-wien2k/wien2k_parser.py         |  4 ++
 .../wien2k_parser_in0.py                      | 69 +++++++++++++++++++
 .../wien2k_parser_in1.py                      | 69 +++++++++++++++++++
 .../wien2k_parser_in1c.py                     | 69 +++++++++++++++++++
 .../wien2k_parser_in2.py                      | 69 +++++++++++++++++++
 .../wien2k_parser_in2c.py                     | 57 +++++++++++++++
 6 files changed, 337 insertions(+)
 create mode 100644 parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in0.py
 create mode 100644 parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in1.py
 create mode 100644 parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in1c.py
 create mode 100644 parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in2.py
 create mode 100644 parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in2c.py

diff --git a/parser/parser-wien2k/wien2k_parser.py b/parser/parser-wien2k/wien2k_parser.py
index bec43c3..76e8eb6 100644
--- a/parser/parser-wien2k/wien2k_parser.py
+++ b/parser/parser-wien2k/wien2k_parser.py
@@ -148,15 +148,19 @@ mainFileDescription = SM(
                       SM(r":NOE\s*:\s*NUMBER\sOF\sELECTRONS\s*=\s*(?P<x_wien2k_noe>[0-9.]+)"),
                       SM(r":FER\s*:\s(\w*\s*)*-\s\w*\W\w*\WM\W*=\s*(?P<x_wien2k_fermi_ene>[-+0-9.]+)"),
                       SM(r":GMA\s*:\s*POTENTIAL\sAND\sCHARGE\sCUT-OFF\s*[0-9.]+\s*Ry\W\W[0-9.]+"),
+                      SM(r":CHA(?P<x_wien2k_atom_nr>[-+0-9]+):\s*TOTAL\s*\w*\s*CHARGE INSIDE SPHERE\s*(?P<x_wien2k_sphere_nr>[-+0-9]+)\s*=\s*(?P<x_wien2k_tot_val_charge_sphere>[0-9.]+)",repeats = True),
+                      SM(r":CHA\s*:\s*TOTAL\s*\w*\s*CHARGE INSIDE\s*\w*\s*CELL\s=\s*(?P<x_wien2k_tot_val_charge_cell>[-+0-9.]+)"),
                       SM(r":MMTOT: TOTAL MAGNETIC MOMENT IN CELL =\s*(?P<x_wien2k_mmtot>[-+0-9.]+)"),
                       SM(r":MMINT: MAGNETIC MOMENT IN INTERSTITIAL =\s*(?P<x_wien2k_mmint>[-+0-9.]+)"),
                       SM(r":MMI001: MAGNETIC MOMENT IN SPHERE 1 =\s*(?P<x_wien2k_mmi001>[-+0-9.]+)"),
+                      SM(r":RTO(?P<x_wien2k_atom_nr>[-+0-9]+)\s*:\s*[0-9]+\s*(?P<x_wien2k_density_at_nucleus_valence>[-+0-9.]+)\s*(?P<x_wien2k_density_at_nucleus_semicore>[-+0-9.]+)\s*(?P<x_wien2k_density_at_nucleus_core>[-+0-9.]+)\s*(?P<x_wien2k_density_at_nucleus_tot>[0-9.]+)",repeats = True),
                       SM(r":NTO\s*:\s*\sTOTAL\s*INTERSTITIAL\s*CHARGE=\s*(?P<x_wien2k_tot_int_charge_nm>[-+0-9.]+)"),
                       SM(r":NTO(?P<x_wien2k_atom_nr>[-+0-9]+)[0-9]*:\s*\sTOTAL\s*CHARGE\s*IN\s*SPHERE\s*(?P<x_wien2k_sphere_nr>[-+0-9]+)\s*=\s*(?P<x_wien2k_tot_charge_in_sphere_nm>[-+0-9.]+)",repeats = True),
                       SM(r":DTO(?P<x_wien2k_atom_nr>[-+0-9]+)[0-9]*:\sTOTAL\s*DIFFERENCE\s*CHARGE\W*\w*\s*IN\s*SPHERE\s*(?P<x_wien2k_sphere_nr>[-+0-9]+)\s*=\s*(?P<x_wien2k_tot_diff_charge>[-+0-9.]+)", repeats = True),
                       SM(r":DIS\s*:\s*CHARGE\sDISTANCE\s*\W*[0-9.]+\sfor\satom\s*[0-9]*\sspin\s[0-9]*\W\s*(?P<x_wien2k_charge_distance>[0-9.]+)"),
                       SM(r":CTO\s*:\s*\sTOTAL\s*INTERSTITIAL\s*CHARGE=\s*(?P<x_wien2k_tot_int_charge>[-+0-9.]+)"),
                       SM(r":CTO(?P<x_wien2k_atom_nr>[-+0-9]+)[0-9]*:\s*\sTOTAL\s*CHARGE\s*IN\s*SPHERE\s*(?P<x_wien2k_sphere_nr>[-+0-9]+)\s*=\s*(?P<x_wien2k_tot_charge_in_sphere>[-+0-9.]+)",repeats = True),
+#                      SM(r":NEC(?P<x_wien2k_necnr>[-+0-9]+)\s*:\s*NUCLEAR AND ELECTRONIC CHARGE\s*(?P<x_wien2k_nuclear_charge>[-+0-9.]+)\s*(?P<x_wien2k_electronic_charge>[0-9.]+)",repeats = True),
                       SM(r":ENE\s*:\s*\W*\w*\W*\s*TOTAL\s*ENERGY\s*IN\s*Ry\s*=\s*(?P<energy_total>[-+0-9.]+)"),
                       SM(r":FOR[0-9]*:\s*(?P<x_wien2k_atom_nr>[0-9]+).ATOM\s*(?P<x_wien2k_for_abs>[0-9.]+)\s*(?P<x_wien2k_for_x>[-++0-9.]+)\s*(?P<x_wien2k_for_y>[-+0-9.]+)\s*(?P<x_wien2k_for_z>[-+0-9.]+)\s*partial\sforces", repeats = True),
                       SM(r":FGL[0-9]*:\s*(?P<x_wien2k_atom_nr>[0-9]+).ATOM\s*(?P<x_wien2k_for_x_gl>[-+0-9.]+)\s*(?P<x_wien2k_for_y_gl>[-+0-9.]+)\s*(?P<x_wien2k_for_z_gl>[-+0-9.]+)\s*partial\sforces", repeats = True)
diff --git a/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in0.py b/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in0.py
new file mode 100644
index 0000000..b602d6a
--- /dev/null
+++ b/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in0.py
@@ -0,0 +1,69 @@
+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
+import os, sys, json
+
+class Wien2kIn0Context(object):
+    """context for wien2k struct parser"""
+
+    def __init__(self):
+        self.parser = 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
+        # allows to reset values if the same superContext is used to parse different files
+        self.initialize_values()
+
+
+# description of the input
+def buildIn0Matchers():
+    return SM(
+    name = 'root',
+    weak = True,
+    startReStr = "",
+        sections = ["section_run", "section_method"],
+    subMatchers = [
+#        SM(name = 'systemName',
+#          startReStr = r"(?P<x_wien2k_system_nameIn>.*)"),
+        SM(r"(?P<x_wien2k_switch>\w*)\s*(?P<x_wien2k_indxc>[0-9]+)\s*.*"),
+        SM(r"\s*(?P<x_wien2k_ifft_x>[0-9]+)\s*(?P<x_wien2k_ifft_y>[0-9]+)\s*(?P<x_wien2k_ifft_z>[0-9]+)\s*(?P<x_wien2k_ifft_factor>[0-9.]+)\s*(?P<x_wien2k_iprint>[0-9]+).*")
+#        SM(r"(?P<x_wien2k_calc_mode>.*)"),
+#        SM(r"\s*(?P<x_wien2k_unit_cell_param_a>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_b>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_c>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_alfa>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_beta>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_gamma>[-+]?[0-9]*\.\d*)"),
+#        SM(r"\s*ATOM\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)",
+#           repeats=True,
+#           sections=["x_wien2k_section_equiv_atoms"],
+#           subMatchers=[
+#               SM(r"\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)",
+#                  repeats=True
+#              ),
+#               SM(r"\s*(?P<x_wien2k_atom_name>^.+)\s*NPT=\s*(?P<x_wien2k_NPT>[0-9]+)\s*R0=(?P<x_wien2k_R0>[0-9.]+)\s*RMT=\s*(?P<x_wien2k_RMT>[0-9.]+)\s*Z:\s*(?P<x_wien2k_atomic_number_Z>[0-9.]+)",)
+#           ]
+#       )
+    ])
+
+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
+
+# loading metadata from nomad-meta-info/meta_info/nomad_meta_info/fhi_aims.nomadmetainfo.json
diff --git a/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in1.py b/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in1.py
new file mode 100644
index 0000000..ab4a58b
--- /dev/null
+++ b/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in1.py
@@ -0,0 +1,69 @@
+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
+import os, sys, json
+
+class Wien2kIn1Context(object):
+    """context for wien2k struct parser"""
+
+    def __init__(self):
+        self.parser = 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
+        # allows to reset values if the same superContext is used to parse different files
+        self.initialize_values()
+
+
+# description of the input
+def buildIn1Matchers():
+    return SM(
+    name = 'root',
+    weak = True,
+    startReStr = "",
+        sections = ["section_run", "section_method"],
+    subMatchers = [
+#        SM(name = 'systemName',
+#          startReStr = r"(?P<x_wien2k_system_nameIn>.*)"),
+        SM(r"\s*(?P<x_wien2k_wf_switch>[\w*]+)\s*EF=[-+.0-9]*\s*\W*WFFIL, WFPRI, ENFIL, SUPWF\W"),
+        SM(r"\s*(?P<x_wien2k_rkmax>[0-9.]+)\s*[0-9]+\s*[0-9]+\s*\WR-..\WK-...; MAX \w*.*")
+#        SM(r"(?P<x_wien2k_calc_mode>.*)"),
+#        SM(r"\s*(?P<x_wien2k_unit_cell_param_a>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_b>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_c>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_alfa>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_beta>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_gamma>[-+]?[0-9]*\.\d*)"),
+#        SM(r"\s*ATOM\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)",
+#           repeats=True,
+#           sections=["x_wien2k_section_equiv_atoms"],
+#           subMatchers=[
+#               SM(r"\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)",
+#                  repeats=True
+#              ),
+#               SM(r"\s*(?P<x_wien2k_atom_name>^.+)\s*NPT=\s*(?P<x_wien2k_NPT>[0-9]+)\s*R0=(?P<x_wien2k_R0>[0-9.]+)\s*RMT=\s*(?P<x_wien2k_RMT>[0-9.]+)\s*Z:\s*(?P<x_wien2k_atomic_number_Z>[0-9.]+)",)
+#           ]
+#       )
+    ])
+
+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
+
+# loading metadata from nomad-meta-info/meta_info/nomad_meta_info/fhi_aims.nomadmetainfo.json
diff --git a/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in1c.py b/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in1c.py
new file mode 100644
index 0000000..218e775
--- /dev/null
+++ b/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in1c.py
@@ -0,0 +1,69 @@
+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
+import os, sys, json
+
+class Wien2kIn1cContext(object):
+    """context for wien2k struct parser"""
+
+    def __init__(self):
+        self.parser = 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
+        # allows to reset values if the same superContext is used to parse different files
+        self.initialize_values()
+
+
+# description of the input
+def buildIn1cMatchers():
+    return SM(
+    name = 'root',
+    weak = True,
+    startReStr = "",
+        sections = ["section_run", "section_method"],
+    subMatchers = [
+#        SM(name = 'systemName',
+#          startReStr = r"(?P<x_wien2k_system_nameIn>.*)"),
+        SM(r"\s*(?P<x_wien2k_wf_switch>[\w*]+)\s*EF=[-+.0-9]*\s*\W*WFFIL, WFPRI, ENFIL, SUPWF\W"),
+        SM(r"\s*(?P<x_wien2k_rkmax>[0-9.]+)\s*[0-9]+\s*[0-9]+\s*\WR-..\WK-...; MAX \w*.*")
+#        SM(r"(?P<x_wien2k_calc_mode>.*)"),
+#        SM(r"\s*(?P<x_wien2k_unit_cell_param_a>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_b>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_c>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_alfa>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_beta>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_gamma>[-+]?[0-9]*\.\d*)"),
+#        SM(r"\s*ATOM\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)",
+#           repeats=True,
+#           sections=["x_wien2k_section_equiv_atoms"],
+#           subMatchers=[
+#               SM(r"\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)",
+#                  repeats=True
+#              ),
+#               SM(r"\s*(?P<x_wien2k_atom_name>^.+)\s*NPT=\s*(?P<x_wien2k_NPT>[0-9]+)\s*R0=(?P<x_wien2k_R0>[0-9.]+)\s*RMT=\s*(?P<x_wien2k_RMT>[0-9.]+)\s*Z:\s*(?P<x_wien2k_atomic_number_Z>[0-9.]+)",)
+#           ]
+#       )
+    ])
+
+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
+
+# loading metadata from nomad-meta-info/meta_info/nomad_meta_info/fhi_aims.nomadmetainfo.json
diff --git a/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in2.py b/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in2.py
new file mode 100644
index 0000000..947daf5
--- /dev/null
+++ b/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in2.py
@@ -0,0 +1,69 @@
+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
+import os, sys, json
+
+class Wien2kIn2Context(object):
+    """context for wien2k struct parser"""
+
+    def __init__(self):
+        self.parser = 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
+        # allows to reset values if the same superContext is used to parse different files
+        self.initialize_values()
+
+
+# description of the input
+def buildIn2Matchers():
+    return SM(
+    name = 'root',
+    weak = True,
+    startReStr = "",
+        sections = ["section_run", "section_method"],
+    subMatchers = [
+#        SM(name = 'systemName',
+#          startReStr = r"(?P<x_wien2k_system_nameIn>.*)"),
+        SM(r"\s*(?P<x_wien2k_in2c_switch>[A-Z]+)\s*.*")
+#        SM(r"\s*(?P<x_wien2k_rkmax>[0-9.]+)\s*[0-9]+\s*[0-9]+\s*\WR-..\WK-...; MAX \w*.*")
+#        SM(r"(?P<x_wien2k_calc_mode>.*)"),
+#        SM(r"\s*(?P<x_wien2k_unit_cell_param_a>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_b>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_c>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_alfa>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_beta>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_gamma>[-+]?[0-9]*\.\d*)"),
+#        SM(r"\s*ATOM\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)",
+#           repeats=True,
+#           sections=["x_wien2k_section_equiv_atoms"],
+#           subMatchers=[
+#               SM(r"\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)",
+#                  repeats=True
+#              ),
+#               SM(r"\s*(?P<x_wien2k_atom_name>^.+)\s*NPT=\s*(?P<x_wien2k_NPT>[0-9]+)\s*R0=(?P<x_wien2k_R0>[0-9.]+)\s*RMT=\s*(?P<x_wien2k_RMT>[0-9.]+)\s*Z:\s*(?P<x_wien2k_atomic_number_Z>[0-9.]+)",)
+#           ]
+#       )
+    ])
+
+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
+
+# loading metadata from nomad-meta-info/meta_info/nomad_meta_info/fhi_aims.nomadmetainfo.json
diff --git a/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in2c.py b/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in2c.py
new file mode 100644
index 0000000..4d0d171
--- /dev/null
+++ b/parser/parser-wien2k/wien2k_parser_backups/wien2k_parser_in2c.py
@@ -0,0 +1,57 @@
+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
+import os, sys, json
+
+class Wien2kIn2cContext(object):
+    """context for wien2k struct parser"""
+
+    def __init__(self):
+        self.parser = 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
+        # allows to reset values if the same superContext is used to parse different files
+        self.initialize_values()
+
+
+# description of the input
+def buildIn2cMatchers():
+    return SM(
+    name = 'root',
+    weak = True,
+    startReStr = "",
+        sections = ["section_run", "section_method"],
+    subMatchers = [
+        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<smearing_kind>[A-Z]+)\s*\s*(?P<smearing_width>[-+0-9.]+)\s*.*"),
+        SM(r"\s*(?P<x_wien2k_in2c_gmax>[-+0-9.]+)\s*GMAX")
+    ])
+
+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
+
+# loading metadata from nomad-meta-info/meta_info/nomad_meta_info/fhi_aims.nomadmetainfo.json
-- 
GitLab