From 07116308f277bcb18f215b44af1e7418dccfe338 Mon Sep 17 00:00:00 2001
From: Fawzi Mohamed <fawzi.mohamed@fhi-berlin.mpg.de>
Date: Tue, 29 Jan 2019 15:15:48 +0100
Subject: [PATCH] meta 2.0 changes

---
 .../QuantumEspressoCommon.py                  |   9 +-
 .../QuantumEspressoXC.py                      | 342 +++++++++---------
 .../parser_quantum_espresso.py                |  70 ++--
 .../parsers/QuantumEspressoParser.scala       |   2 +-
 4 files changed, 215 insertions(+), 208 deletions(-)

diff --git a/parser/parser-quantum-espresso/QuantumEspressoCommon.py b/parser/parser-quantum-espresso/QuantumEspressoCommon.py
index f4d9bed..f38abe2 100644
--- a/parser/parser-quantum-espresso/QuantumEspressoCommon.py
+++ b/parser/parser-quantum-espresso/QuantumEspressoCommon.py
@@ -84,6 +84,9 @@ QE_SMEARING_KIND = {
              'tetrahedron method': 'tetrahedra',
 }
 
+def metaN(metaName):
+    """Retrurns a normalized meta name"""
+    return metaName.replace(".", "_").lower()
 
 class ParserQuantumEspresso(object):
     """Base class for all Quantum Espresso parsers"""
@@ -259,9 +262,9 @@ class ParserQuantumEspresso(object):
 
     def addDict(self, backend, this_dict):
         for key, value in sorted(this_dict.items()):
-            backend.addValue(key, value)
+            backend.addValue(metaN(key), value)
 
     def addSectionDict(self, backend, section_name, section_dict):
-        gIndex = backend.openSection(section_name)
+        gIndex = backend.openSection(metaN(section_name))
         self.addDict(backend, section_dict)
-        backend.closeSection(section_name, gIndex)
+        backend.closeSection(metaN(section_name), gIndex)
diff --git a/parser/parser-quantum-espresso/QuantumEspressoXC.py b/parser/parser-quantum-espresso/QuantumEspressoXC.py
index a87245a..2a535b5 100644
--- a/parser/parser-quantum-espresso/QuantumEspressoXC.py
+++ b/parser/parser-quantum-espresso/QuantumEspressoXC.py
@@ -114,7 +114,7 @@ def translate_qe_xc_num(xc_functional_num, exact_exchange_fraction=None):
                 xc_data, this_term, exact_exchange_fraction)
         apply_terms_filter(xc_data)
         xc_functional = xc_functional_str(xc_data)
-    xc_section_method['XC_functional'] = xc_functional
+    xc_section_method['xc_functional'] = xc_functional
     result = []
     for k in sorted(xc_data.keys()):
         v = xc_data[k]
@@ -125,34 +125,34 @@ def translate_qe_xc_num(xc_functional_num, exact_exchange_fraction=None):
 def apply_term_add(xc_data, this_term, exact_exchange_fraction):
     term = copy.deepcopy(this_term)
     if 'exx_compute_weight' in term:
-        term['XC_functional_weight'] = term['exx_compute_weight'](
+        term['xc_functional_weight'] = term['exx_compute_weight'](
             exact_exchange_fraction)
-    if 'XC_functional_weight' not in term:
-        term['XC_functional_weight'] = 1.0
-    if term['XC_functional_name'] not in xc_data:
-        xc_data[term['XC_functional_name']] = term
+    if 'xc_functional_weight' not in term:
+        term['xc_functional_weight'] = 1.0
+    if term['xc_functional_name'] not in xc_data:
+        xc_data[term['xc_functional_name']] = term
     else:
         LOGGER.info("pre-existing XC term: %s",
-                    term['XC_functional_name'])
+                    term['xc_functional_name'])
     return xc_data
 
 
 def apply_terms_remove(xc_data, xc_data_remove):
     for (k, v) in xc_data_remove.items():
         if k in xc_data:
-            xc_data[k]['XC_functional_weight'] -= v['XC_functional_weight']
+            xc_data[k]['xc_functional_weight'] -= v['xc_functional_weight']
         else:
             xc_data[k] = v
-            xc_data[k]['XC_functional_weight'] *= -1.0
+            xc_data[k]['xc_functional_weight'] *= -1.0
 
 
 def apply_terms_filter(xc_data):
     for (k, v) in list(xc_data.items()):
-        if abs(v['XC_functional_weight']) < 0.01:
+        if abs(v['xc_functional_weight']) < 0.01:
             del xc_data[k]
         else:
-            if abs(v['XC_functional_weight'] - 1.0) < 0.01:
-                del v['XC_functional_weight']
+            if abs(v['xc_functional_weight'] - 1.0) < 0.01:
+                del v['xc_functional_weight']
             v.pop('exx_compute_weight', None)
 
 
@@ -160,11 +160,11 @@ def xc_functional_str(xc_data, separator='+'):
     result = ''
     for k in sorted(xc_data.keys()):
         v = xc_data[k]
-        if len(result) > 0 and v.get('XC_functional_weight', 1.0) > 0:
+        if len(result) > 0 and v.get('xc_functional_weight', 1.0) > 0:
             result += separator
-        if v.get('XC_functional_weight', None) is not None:
-            result += '%.3f*' % (v['XC_functional_weight'])
-        result += v['XC_functional_name']
+        if v.get('xc_functional_weight', None) is not None:
+            result += '%.3f*' % (v['xc_functional_weight'])
+        result += v['xc_functional_name']
     return result
 
 
@@ -173,7 +173,7 @@ EXCHANGE = [
     None,
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_iexch_name':       'sla',
@@ -183,8 +183,8 @@ EXCHANGE = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_X',
-            'XC_functional_parameters': {'alpha': 1.0},
+            'xc_functional_name': 'LDA_X',
+            'xc_functional_parameters': {'alpha': 1.0},
         }],
         'xc_section_method': {
             'x_qe_xc_iexch_name':       'sl1',
@@ -194,7 +194,7 @@ EXCHANGE = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'x_qe_LDA_X_RELATIVISTIC',
+            'xc_functional_name': 'x_qe_LDA_X_RELATIVISTIC',
         }],
         'xc_section_method': {
             'x_qe_xc_iexch_name':       'rxc',
@@ -204,7 +204,7 @@ EXCHANGE = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'OEP_EXX',
+            'xc_functional_name': 'OEP_EXX',
         }],
         'xc_section_method': {
             'x_qe_xc_iexch_name':       'oep',
@@ -214,7 +214,7 @@ EXCHANGE = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'HF_X',
+            'xc_functional_name': 'HF_X',
         }],
         'xc_section_method': {
             'x_qe_xc_iexch_name':       'hf',
@@ -224,13 +224,13 @@ EXCHANGE = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'HF_X',
+            'xc_functional_name': 'HF_X',
             'exx_compute_weight': lambda exx: exx,
-            'XC_functional_weight': 0.25,
+            'xc_functional_weight': 0.25,
         }, {
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
             'exx_compute_weight': lambda exx: (1.0 - exx),
-            'XC_functional_weight': 0.75,
+            'xc_functional_weight': 0.75,
         }],
         'xc_section_method': {
             'x_qe_xc_iexch_name':       "pb0x",
@@ -240,13 +240,13 @@ EXCHANGE = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'HF_X',
+            'xc_functional_name': 'HF_X',
             'exx_compute_weight': lambda exx: exx,
-            'XC_functional_weight': 0.20,
+            'xc_functional_weight': 0.20,
         }, {
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
             'exx_compute_weight': lambda exx: (1.0 - exx),
-            'XC_functional_weight': 0.8,
+            'xc_functional_weight': 0.8,
         }],
         'xc_section_method': {
             'x_qe_xc_iexch_name':       "b3lp",
@@ -256,7 +256,7 @@ EXCHANGE = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "LDA_X_KZK",
+            'xc_functional_name': "LDA_X_KZK",
         }],
         'xc_section_method': {
             'x_qe_xc_iexch_name':       "kzk",
@@ -266,13 +266,13 @@ EXCHANGE = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'HF_X',
+            'xc_functional_name': 'HF_X',
             'exx_compute_weight': lambda exx: exx,
-            'XC_functional_weight': 0.218,
+            'xc_functional_weight': 0.218,
         }, {
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
             'exx_compute_weight': lambda exx: (1.0 - exx),
-            'XC_functional_weight': 0.782,
+            'xc_functional_weight': 0.782,
         }],
         'xc_section_method': {
             'x_qe_xc_iexch_name':       "x3lp",
@@ -287,7 +287,7 @@ CORRELATION = [
     None,
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_C_PZ',
+            'xc_functional_name': 'LDA_C_PZ',
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':       "pz",
@@ -297,7 +297,7 @@ CORRELATION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_C_VWN',
+            'xc_functional_name': 'LDA_C_VWN',
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':       "vwn",
@@ -307,7 +307,7 @@ CORRELATION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_C_LYP',
+            'xc_functional_name': 'LDA_C_LYP',
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':       "lyp",
@@ -317,7 +317,7 @@ CORRELATION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "LDA_C_PW",
+            'xc_functional_name': "LDA_C_PW",
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':       "pw",
@@ -327,7 +327,7 @@ CORRELATION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_C_WIGNER',
+            'xc_functional_name': 'LDA_C_WIGNER',
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':       "wig",
@@ -337,7 +337,7 @@ CORRELATION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_C_HL',
+            'xc_functional_name': 'LDA_C_HL',
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':       "hl",
@@ -347,7 +347,7 @@ CORRELATION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_C_OB_PZ',
+            'xc_functional_name': 'LDA_C_OB_PZ',
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':       "obz",
@@ -357,7 +357,7 @@ CORRELATION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_C_OB_PW',
+            'xc_functional_name': 'LDA_C_OB_PW',
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':       "obw",
@@ -367,7 +367,7 @@ CORRELATION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_C_GL',
+            'xc_functional_name': 'LDA_C_GL',
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':       "gl",
@@ -377,7 +377,7 @@ CORRELATION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "LDA_C_KZK",
+            'xc_functional_name': "LDA_C_KZK",
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':       "kzk",
@@ -387,7 +387,7 @@ CORRELATION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_C_VWN_RPA',
+            'xc_functional_name': 'LDA_C_VWN_RPA',
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':       "vwn-rpa",
@@ -397,11 +397,11 @@ CORRELATION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_C_VWN',
-            'XC_functional_weight': 0.19,
+            'xc_functional_name': 'LDA_C_VWN',
+            'xc_functional_weight': 0.19,
         }, {
-            'XC_functional_name': 'LDA_C_LYP',
-            'XC_functional_weight': 0.81,
+            'xc_functional_name': 'LDA_C_LYP',
+            'xc_functional_weight': 0.81,
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':       "b3lp",
@@ -411,11 +411,11 @@ CORRELATION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_C_VWN_RPA',
-            'XC_functional_weight': 0.19,
+            'xc_functional_name': 'LDA_C_VWN_RPA',
+            'xc_functional_weight': 0.19,
         }, {
-            'XC_functional_name': 'LDA_C_LYP',
-            'XC_functional_weight': 0.81,
+            'xc_functional_name': 'LDA_C_LYP',
+            'xc_functional_weight': 0.81,
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':    "b3lpv1r",
@@ -425,11 +425,11 @@ CORRELATION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': 'LDA_C_VWN_RPA',
-            'XC_functional_weight': 0.129,
+            'xc_functional_name': 'LDA_C_VWN_RPA',
+            'xc_functional_weight': 0.129,
         }, {
-            'XC_functional_name': 'LDA_C_LYP',
-            'XC_functional_weight': 0.871,
+            'xc_functional_name': 'LDA_C_LYP',
+            'xc_functional_weight': 0.871,
         }],
         'xc_section_method': {
             'x_qe_xc_icorr_name':       "x3lp",
@@ -443,10 +443,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     None,
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_B88",
+            'xc_functional_name': "GGA_X_B88",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "b88",
@@ -456,10 +456,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_PW91",
+            'xc_functional_name': "GGA_X_PW91",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "ggx",
@@ -469,10 +469,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_PBE",
+            'xc_functional_name': "GGA_X_PBE",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "pbx",
@@ -482,10 +482,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_PBE_R",
+            'xc_functional_name': "GGA_X_PBE_R",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "rpb",
@@ -495,7 +495,7 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_XC_HCTH_120",
+            'xc_functional_name': "GGA_XC_HCTH_120",
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "hcth",
@@ -505,7 +505,7 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_OPTX",
+            'xc_functional_name': "GGA_X_OPTX",
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "optx",
@@ -517,10 +517,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
         # igcx=7 is not defined in 5.4's funct.f90
         #        definition taken from 5.0, which did not have separate imeta
         'xc_terms': [{
-            'XC_functional_name': "MGGA_X_TPSS",
+            'xc_functional_name': "MGGA_X_TPSS",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':    "tpss",
@@ -530,13 +530,13 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_PBE",
-            'XC_functional_weight': 0.75,
+            'xc_functional_name': "GGA_X_PBE",
+            'xc_functional_weight': 0.75,
             'exx_compute_weight': lambda exx: (1.0 - exx),
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
-            'XC_functional_weight': 0.75,
+            'xc_functional_name': 'LDA_X',
+            'xc_functional_weight': 0.75,
             'exx_compute_weight': lambda exx: (1.0 - exx),
         }],
         'xc_section_method': {
@@ -547,13 +547,13 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_B88",
-            'XC_functional_weight': 0.72,
+            'xc_functional_name': "GGA_X_B88",
+            'xc_functional_weight': 0.72,
             'exx_compute_weight': lambda exx: 0.72 if abs(exx) > 0.01 else 1.0
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
-            'XC_functional_weight': 0.8,
+            'xc_functional_name': 'LDA_X',
+            'xc_functional_weight': 0.8,
             'exx_compute_weight': lambda exx: (1.0 - exx),
         }],
         'xc_section_method': {
@@ -564,10 +564,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_PBE_SOL",
+            'xc_functional_name': "GGA_X_PBE_SOL",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "psx",
@@ -577,10 +577,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_WC",
+            'xc_functional_name': "GGA_X_WC",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "wcx",
@@ -590,16 +590,16 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "HYB_GGA_XC_HSE06",
+            'xc_functional_name': "HYB_GGA_XC_HSE06",
             'exx_compute_weight': lambda exx: 1.0 if (abs(exx) > 0.01) else 0.0
         }, {
-            'XC_functional_name': "GGA_X_PBE",
+            'xc_functional_name': "GGA_X_PBE",
             'exx_compute_weight': lambda exx: 0.0 if (abs(exx) > 0.01) else 1.0
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }, {
-            'XC_functional_name': 'GGA_C_PBE',
+            'xc_functional_name': 'GGA_C_PBE',
             'exx_compute_weight': lambda exx: 1.0 if (abs(exx) > 0.01) else 0.0
         }],
         'xc_section_method': {
@@ -610,10 +610,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_RPW86",
+            'xc_functional_name': "GGA_X_RPW86",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "rw86",
@@ -623,10 +623,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_PBE",
+            'xc_functional_name': "GGA_X_PBE",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "pbe",
@@ -638,10 +638,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
         # igcx=15 is not defined in 5.4's funct.f90
         #        definition taken from 5.0, which did not have separate imeta
         'xc_terms': [{
-            'XC_functional_name': "MGGA_X_TB09",
+            'xc_functional_name': "MGGA_X_TB09",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':    "tb09",
@@ -651,10 +651,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_C09X",
+            'xc_functional_name': "GGA_X_C09X",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "c09x",
@@ -664,10 +664,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_SOGGA",
+            'xc_functional_name': "GGA_X_SOGGA",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "sox",
@@ -679,7 +679,7 @@ EXCHANGE_GRADIENT_CORRECTION = [
         # igcx=18 is not defined in 5.4's funct.f90
         #        definition taken from 5.0, which did not have separate imeta
         'xc_terms': [{
-            'XC_functional_name': "MGGA_X_M06_L",
+            'xc_functional_name': "MGGA_X_M06_L",
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':    "m6lx",
@@ -689,10 +689,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_Q2D",
+            'xc_functional_name': "GGA_X_Q2D",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "q2dx",
@@ -702,16 +702,16 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "HYB_GGA_XC_GAU_PBE",
+            'xc_functional_name': "HYB_GGA_XC_GAU_PBE",
             'exx_compute_weight': lambda exx: 1.0 if (abs(exx) > 0.01) else 0.0
         }, {
-            'XC_functional_name': "GGA_X_PBE",
+            'xc_functional_name': "GGA_X_PBE",
             'exx_compute_weight': lambda exx: 0.0 if (abs(exx) > 0.01) else 1.0
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }, {
-            'XC_functional_name': 'GGA_C_PBE',
+            'xc_functional_name': 'GGA_C_PBE',
             'exx_compute_weight': lambda exx: 1.0 if (abs(exx) > 0.01) else 0.0
         }],
         'xc_section_method': {
@@ -722,10 +722,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_PW86",
+            'xc_functional_name': "GGA_X_PW86",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "pw86",
@@ -735,10 +735,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_B86_MGC",
+            'xc_functional_name': "GGA_X_B86_MGC",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "b86b",
@@ -748,10 +748,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_OPTB88_VDW",
+            'xc_functional_name': "GGA_X_OPTB88_VDW",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "obk8",
@@ -761,10 +761,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_OPTB86_VDW",
+            'xc_functional_name': "GGA_X_OPTB86_VDW",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "ob86",
@@ -774,10 +774,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_EV93",
+            'xc_functional_name': "GGA_X_EV93",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "evx",
@@ -787,10 +787,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_B86_R",
+            'xc_functional_name': "GGA_X_B86_R",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "b86r",
@@ -800,10 +800,10 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_LV_RPW86",
+            'xc_functional_name': "GGA_X_LV_RPW86",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }],
         'xc_section_method': {
             'x_qe_xc_igcx_name':       "cx13",
@@ -813,18 +813,18 @@ EXCHANGE_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_X_B88",
-            'XC_functional_weight': 0.542,
+            'xc_functional_name': "GGA_X_B88",
+            'xc_functional_weight': 0.542,
             'exx_compute_weight':
                 lambda exx: 0.542 if (abs(exx) > 0.01) else 1.0
         }, {
-            'XC_functional_name': "GGA_X_PW91",
-            'XC_functional_weight': 0.167,
+            'xc_functional_name': "GGA_X_PW91",
+            'xc_functional_weight': 0.167,
             'exx_compute_weight':
                 lambda exx: 0.167 if (abs(exx) > 0.01) else 0.0
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
             'exx_compute_weight':
                 lambda exx: 0.709 if (abs(exx) > 0.01) else 1.0
         }],
@@ -841,10 +841,10 @@ CORRELATION_GRADIENT_CORRECTION = [
     None,
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_C_P86",
+            'xc_functional_name': "GGA_C_P86",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_C_PW',
+            'xc_functional_name': 'LDA_C_PW',
         }],
         'xc_section_method': {
             'x_qe_xc_igcc_name':       "p86",
@@ -854,10 +854,10 @@ CORRELATION_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_C_PW91",
+            'xc_functional_name': "GGA_C_PW91",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_C_PW',
+            'xc_functional_name': 'LDA_C_PW',
         }],
         'xc_section_method': {
             'x_qe_xc_igcc_name':       "ggc",
@@ -867,10 +867,10 @@ CORRELATION_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_C_LYP",
+            'xc_functional_name': "GGA_C_LYP",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_C_LYP',
+            'xc_functional_name': 'LDA_C_LYP',
         }],
         'xc_section_method': {
             'x_qe_xc_igcc_name':       "blyp",
@@ -880,10 +880,10 @@ CORRELATION_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_C_PBE",
+            'xc_functional_name': "GGA_C_PBE",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_C_PW',
+            'xc_functional_name': 'LDA_C_PW',
         }],
         'xc_section_method': {
             'x_qe_xc_igcc_name':       "pbc",
@@ -893,7 +893,7 @@ CORRELATION_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_XC_HCTH_120",
+            'xc_functional_name': "GGA_XC_HCTH_120",
         }],
         'xc_section_method': {
             'x_qe_xc_igcc_name':       "hcth",
@@ -905,10 +905,10 @@ CORRELATION_GRADIENT_CORRECTION = [
         # igcc=6 is not defined in 5.4's funct.f90
         #        definition taken from 5.0, which did not have separate imeta
         'xc_terms': [{
-            'XC_functional_name': "MGGA_C_TPSS",
+            'xc_functional_name': "MGGA_C_TPSS",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_C_PW',
+            'xc_functional_name': 'LDA_C_PW',
         }],
         'xc_section_method': {
             'x_qe_xc_igcc_name':    "tpss",
@@ -918,12 +918,12 @@ CORRELATION_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_C_LYP",
-            'XC_functional_weight': 0.81,
+            'xc_functional_name': "GGA_C_LYP",
+            'xc_functional_weight': 0.81,
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_C_LYP',
-            'XC_functional_weight': 0.81,
+            'xc_functional_name': 'LDA_C_LYP',
+            'xc_functional_weight': 0.81,
         }],
         'xc_section_method': {
             'x_qe_xc_igcc_name':       "b3lp",
@@ -933,10 +933,10 @@ CORRELATION_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_C_PBE_SOL",
+            'xc_functional_name': "GGA_C_PBE_SOL",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_C_PW',
+            'xc_functional_name': 'LDA_C_PW',
         }],
         'xc_section_method': {
             'x_qe_xc_igcc_name':       "psc",
@@ -946,10 +946,10 @@ CORRELATION_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_C_PBE",
+            'xc_functional_name': "GGA_C_PBE",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_C_PW',
+            'xc_functional_name': 'LDA_C_PW',
         }],
         'xc_section_method': {
             'x_qe_xc_igcc_name':       "pbe",
@@ -962,10 +962,10 @@ CORRELATION_GRADIENT_CORRECTION = [
         #        definition taken from 5.0, which did not have separate imeta
         #        functionals.f90 tells that correlation is taken from tpss
         'xc_terms': [{
-            'XC_functional_name': "MGGA_C_TPSS",
+            'xc_functional_name': "MGGA_C_TPSS",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_C_PW',
+            'xc_functional_name': 'LDA_C_PW',
         }],
         'xc_section_method': {
             'x_qe_xc_igcc_name':    "tb09",
@@ -977,7 +977,7 @@ CORRELATION_GRADIENT_CORRECTION = [
         # igcc=11 is not defined in 5.4's funct.f90
         #        definition taken from 5.0, which did not have separate imeta
         'xc_terms': [{
-            'XC_functional_name': "MGGA_C_M06_L",
+            'xc_functional_name': "MGGA_C_M06_L",
         }],
         'xc_section_method': {
             'x_qe_xc_igcc_name':    "m6lc",
@@ -987,10 +987,10 @@ CORRELATION_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_C_Q2D",
+            'xc_functional_name': "GGA_C_Q2D",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_C_PW',
+            'xc_functional_name': 'LDA_C_PW',
         }],
         'xc_section_method': {
             'x_qe_xc_igcc_name':       "q2dc",
@@ -1000,12 +1000,12 @@ CORRELATION_GRADIENT_CORRECTION = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "GGA_C_LYP",
-            'XC_functional_weight': 0.871,
+            'xc_functional_name': "GGA_C_LYP",
+            'xc_functional_weight': 0.871,
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_C_LYP',
-            'XC_functional_weight': 0.871,
+            'xc_functional_name': 'LDA_C_LYP',
+            'xc_functional_weight': 0.871,
         }],
         'xc_section_method': {
             'x_qe_xc_igcc_name':       "x3lp",
@@ -1020,14 +1020,14 @@ META_GGA = [
     None,
     {
         'xc_terms': [{
-            'XC_functional_name': "MGGA_X_TPSS",
+            'xc_functional_name': "MGGA_X_TPSS",
         }, {
-            'XC_functional_name': "MGGA_C_TPSS",
+            'xc_functional_name': "MGGA_C_TPSS",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }, {
-            'XC_functional_name': 'LDA_C_PW',
+            'xc_functional_name': 'LDA_C_PW',
         }],
         'xc_section_method': {
             'x_qe_xc_imeta_name':       "tpss",
@@ -1037,9 +1037,9 @@ META_GGA = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "MGGA_X_M06_L",
+            'xc_functional_name': "MGGA_X_M06_L",
         }, {
-            'XC_functional_name': "MGGA_C_M06_L",
+            'xc_functional_name': "MGGA_C_M06_L",
         }],
         'xc_section_method': {
             'x_qe_xc_imeta_name':       "m6lx",
@@ -1049,15 +1049,15 @@ META_GGA = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "MGGA_X_TB09",
+            'xc_functional_name': "MGGA_X_TB09",
         }, {
             # confirmed by looking into functionals.f90
-            'XC_functional_name': "MGGA_C_TPSS",
+            'xc_functional_name': "MGGA_C_TPSS",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': 'LDA_X',
+            'xc_functional_name': 'LDA_X',
         }, {
-            'XC_functional_name': 'LDA_C_PW',
+            'xc_functional_name': 'LDA_C_PW',
         }],
         'xc_section_method': {
             'x_qe_xc_imeta_name':       "tb09",
@@ -1071,10 +1071,10 @@ VAN_DER_WAALS = [
     None,
     {
         'xc_terms': [{
-            'XC_functional_name': "VDW_C_DF1",
+            'xc_functional_name': "VDW_C_DF1",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': "LDA_C_PW",
+            'xc_functional_name': "LDA_C_PW",
         }],
         'xc_section_method': {
             'x_qe_xc_inlc_name':       "vdw1",
@@ -1084,10 +1084,10 @@ VAN_DER_WAALS = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "VDW_C_DF2",
+            'xc_functional_name': "VDW_C_DF2",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': "LDA_C_PW",
+            'xc_functional_name': "LDA_C_PW",
         }],
         'xc_section_method': {
             'x_qe_xc_inlc_name':       "vdw2",
@@ -1097,10 +1097,10 @@ VAN_DER_WAALS = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "VDW_C_RVV10",
+            'xc_functional_name': "VDW_C_RVV10",
         }],
         'xc_terms_remove': [{
-            'XC_functional_name': "GGA_C_PBE",
+            'xc_functional_name': "GGA_C_PBE",
         }],
         'xc_section_method': {
             'x_qe_xc_inlc_name':       "vv10",
@@ -1110,7 +1110,7 @@ VAN_DER_WAALS = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "VDW_DFX_x_qe",
+            'xc_functional_name': "VDW_DFX_x_qe",
         }],
         'xc_section_method': {
             'x_qe_xc_inlc_name':    "vdwx",
@@ -1121,7 +1121,7 @@ VAN_DER_WAALS = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "VDW_DFY_x_qe",
+            'xc_functional_name': "VDW_DFY_x_qe",
         }],
         'xc_section_method': {
             'x_qe_xc_inlc_name':    "vdwy",
@@ -1132,7 +1132,7 @@ VAN_DER_WAALS = [
     },
     {
         'xc_terms': [{
-            'XC_functional_name': "VDW_DFZ_x_qe",
+            'xc_functional_name': "VDW_DFZ_x_qe",
         }],
         'xc_section_method': {
             'x_qe_xc_inlc_name':    "vdwz",
@@ -1166,12 +1166,12 @@ XC_COMPONENT_NAME = [
 LIBXC_SHORTCUT = {
     "0.810*GGA_C_LYP+0.720*GGA_X_B88+0.200*HF_X+0.190*LDA_C_VWN": {
         'xc_terms': [{
-            'XC_functional_name': "HYB_GGA_XC_B3LYP",
+            'xc_functional_name': "HYB_GGA_XC_B3LYP",
         }]
     },
     "GGA_C_PBE+0.750*GGA_X_PBE+0.250*HF_X": {
         'xc_terms': [{
-            'XC_functional_name': "HYB_GGA_XC_PBEH",
+            'xc_functional_name': "HYB_GGA_XC_PBEH",
         }]
     },
 }
diff --git a/parser/parser-quantum-espresso/parser_quantum_espresso.py b/parser/parser-quantum-espresso/parser_quantum_espresso.py
index 7305805..ac8d5a1 100644
--- a/parser/parser-quantum-espresso/parser_quantum_espresso.py
+++ b/parser/parser-quantum-espresso/parser_quantum_espresso.py
@@ -25,6 +25,7 @@ import nomadcore.unit_conversion.unit_conversion as unit_conversion
 import math
 import numpy as np
 import QuantumEspressoCommon as QeC
+from QuantumEspressoCommon import metaN
 from nomadcore.parser_backend import valueForStrValue
 from QuantumEspressoCommon import RE_f, RE_i, cRE_f, cRE_i
 from QuantumEspressoXC import translate_qe_xc_num
@@ -124,7 +125,7 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
             target = re.sub(r'^x_qe_t_',r'x_qe_',key)
             if target == key:
                 raise Exception('found non-temporary key in pseudopotential cache: "%s"' % (key))
-            backend.addValue(target, value[-1])
+            backend.addValue(metaN(target), value[-1])
         if pp['x_qe_t_pp_idx'] is not None:
             pp_num = pp['x_qe_t_pp_idx'][-1]
             pp_report = self.cache_t_pp_report.get(pp_num, None)
@@ -154,7 +155,7 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
         dft_d = cache_dft_d.get(pp_label, None)
         if dft_d is not None:
             for k, v in dft_d.items():
-                backend.addValue(k, v)
+                backend.addValue(metaN(k), v)
 
     def onClose_x_qe_t_section_pp_report(
             self, backend, gIndex, section):
@@ -214,15 +215,15 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
         else:
             LOGGER.error("x_qe_xc_functional_num is not set")
         if method_xc_functionals is not None:
-            # NOTE: value of XC_functional generated by translate_qe_xc_num
+            # NOTE: value of xc_functional generated by translate_qe_xc_num
             #       does not fully respect the metaInfo definition
-            #       when XC_functional_parameters are involved.
+            #       when xc_functional_parameters are involved.
             # Therefore, remove it here
-            method_xc_functionals.pop('XC_functional', None)
+            method_xc_functionals.pop('xc_functional', None)
             self.addDict(backend, method_xc_functionals)
         if xc_functionals is not None:
             for xc_functional in xc_functionals:
-                self.addSectionDict(backend, 'section_XC_functionals', xc_functional)
+                self.addSectionDict(backend, 'section_xc_functionals', xc_functional)
         else:
             LOGGER.error("error getting xc_functionals")
         if section['x_qe_t_allocated_array_name'] is not None:
@@ -304,7 +305,7 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
             self, backend, gIndex, section):
         """trigger called when section_single_configuration_calculation
         is closed"""
-        backend.addValue('single_configuration_to_calculation_method_ref', self.sectionIdx['section_method'])
+        backend.addValue('single_configuration_calculation_to_method_ref', self.sectionIdx['section_method'])
         backend.addValue('single_configuration_calculation_to_system_ref', self.sectionIdx['section_system'])
         # extract k band structure data if available
         self.create_section_eigenvalues(backend, section)
@@ -315,10 +316,13 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
             backend.addArrayValues('x_qe_energy_decomposition_value', np.asarray(
                 section['x_qe_t_energy_decomposition_value']))
         if section['x_qe_t_force_x'] is not None:
-            # constraints etc. not part of the reported forces, so correct metaInfo is 'atom_forces_raw'
-            backend.addArrayValues('atom_forces_raw', np.array([
+            sectFId = backend.openSection("section_atom_forces")
+            # constraints etc. not part of the reported forces
+            backend.addValue('atom_forces_constraints', 'raw')
+            backend.addArrayValues('atom_forces', np.array([
                 section['x_qe_t_force_x'], section['x_qe_t_force_y'], section['x_qe_t_force_z']
                 ]).T)
+            backend.closeSection("section_atom_forces", sectFId)
         if section['x_qe_t_dispersion_force_x'] is not None:
             backend.addArrayValues('x_qe_atom_dispersion_force', np.array([
                 section['x_qe_t_dispersion_force_x'], section['x_qe_t_dispersion_force_y'], section['x_qe_t_dispersion_force_z']
@@ -385,7 +389,7 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
                 new_system['x_qe_t_k_info_ik'] = section['x_qe_t_md_k_info_ik']
             for target, data in new_system.items():
                 for val in data:
-                    backend.addValue(target, val)
+                    backend.addValue(metaN(target), val)
             backend.closeSection('section_system', next_system_gIndex)
 
     def onClose_section_scf_iteration(
@@ -622,22 +626,22 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
             LOGGER.debug("No K-point weight info found in output")
 
 
-        if section['x_qe_t_dense_FFT_grid_x'] is not None:
-            backend.addArrayValues('x_qe_dense_FFT_grid', np.array([
-                section['x_qe_t_dense_FFT_grid_x'], section['x_qe_t_dense_FFT_grid_y'], section['x_qe_t_dense_FFT_grid_z']
+        if section['x_qe_t_dense_fft_grid_x'] is not None:
+            backend.addArrayValues('x_qe_dense_fft_grid', np.array([
+                section['x_qe_t_dense_fft_grid_x'], section['x_qe_t_dense_fft_grid_y'], section['x_qe_t_dense_fft_grid_z']
             ]).T)
         elif old_system is not None:
             # unless espresso explicitly writes new FFT grid info, sampling is kept fixed
-            backend.addArrayValues('x_qe_dense_FFT_grid', old_system['x_qe_dense_FFT_grid'][-1])
+            backend.addArrayValues('x_qe_dense_fft_grid', old_system['x_qe_dense_fft_grid'][-1])
         else:
             LOGGER.warning("No dense FFT grid info found in output")
 
-        if section['x_qe_t_smooth_FFT_grid_x'] is not None:
-            backend.addArrayValues('x_qe_smooth_FFT_grid', np.array([
-                section['x_qe_t_smooth_FFT_grid_x'], section['x_qe_t_smooth_FFT_grid_y'], section['x_qe_t_smooth_FFT_grid_z']
+        if section['x_qe_t_smooth_fft_grid_x'] is not None:
+            backend.addArrayValues('x_qe_smooth_fft_grid', np.array([
+                section['x_qe_t_smooth_fft_grid_x'], section['x_qe_t_smooth_fft_grid_y'], section['x_qe_t_smooth_fft_grid_z']
             ]).T)
-        elif old_system is not None and old_system['x_qe_smooth_FFT_grid'] is not None:
-            backend.addArrayValues('x_qe_smooth_FFT_grid', old_system['x_qe_smooth_FFT_grid'][-1])
+        elif old_system is not None and old_system['x_qe_smooth_fft_grid'] is not None:
+            backend.addArrayValues('x_qe_smooth_fft_grid', old_system['x_qe_smooth_fft_grid'][-1])
 
         if section['x_qe_t_vec_supercell_x'] is not None:
             backend.addArrayValues('x_qe_vec_supercell', np.array([
@@ -676,14 +680,14 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
         self.tmp.pop('x_qe_t_profile_category', None)
         # manually open header sections, closed at the beginning of scf
         for sec in self.header_sections():
-            gIndex = backend.openSection(sec)
+            gIndex = backend.openSection(metaN(sec))
             self.openSectionIdx[sec] = gIndex
 
     def adHoc_final_scf_MD(self, parser):
         """final SCF calculation in VC-relax runs needs open header sections"""
         # manually open header sections, closed at the beginning of scf
         for sec in self.header_sections():
-            gIndex = parser.backend.openSection(sec)
+            gIndex = parser.backend.openSection(metaN(sec))
             self.openSectionIdx[sec] = gIndex
 
     def onClose_section_run(
@@ -710,8 +714,8 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
             backend.addValue('sampling_method', QE_MD_RELAX_SAMPLING_METHOD[self.tmp['md_relax']])
             backend.closeSection('section_sampling_method', sampling_method_gIndex)
             frame_sequence_gIndex = backend.openSection('section_frame_sequence')
-            backend.addValue('frame_sequence_to_sampling_ref', sampling_method_gIndex)
-            backend.addArrayValues('frame_sequence_local_frames_ref', np.array(self.tmp['frames']))
+            backend.addValue('frame_sequence_to_sampling_method_ref', sampling_method_gIndex)
+            backend.addArrayValues('frame_sequence_to_frames_ref', np.array(self.tmp['frames']))
             backend.closeSection('section_frame_sequence', frame_sequence_gIndex)
 
     def appendToTmp(self, tmpname, value):
@@ -732,7 +736,7 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
             self.tmp['dispersion_correction'] = {}
         self.tmp['dispersion_correction'][parser.lastMatch['x_qe_t_species_dispersion_correction_label']] = {
             'x_qe_dispersion_correction_vdw_radius': parser.lastMatch['x_qe_t_species_dispersion_correction_vdw_radius'],
-            'x_qe_dispersion_correction_C6': parser.lastMatch['x_qe_t_species_dispersion_correction_C6'],
+            'x_qe_dispersion_correction_c6': parser.lastMatch['x_qe_t_species_dispersion_correction_c6'],
         }
 
     def adHoc_alat(self, parser):
@@ -1039,22 +1043,22 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
                    ),
                    SM(name='dense_grid',
                       startReStr=(r"\s*Dense\s+grid:\s*(?P<x_qe_dense_g_vectors>\d+)\s*G-vectors\s*FFT\s+dimensions:\s*\(\s*" +
-                                  QeC.re_vec("x_qe_t_dense_FFT_grid", split=r"\s*,\s*") + "\s*\)\s*$")
+                                  QeC.re_vec("x_qe_t_dense_fft_grid", split=r"\s*,\s*") + "\s*\)\s*$")
                    ),
                    SM(name='dense_grid_old',
                       startReStr=(r"\s*G\s+cutoff\s*=\s*(?P<x_qe_dense_g_cutoff>" + RE_f + r")\s*" +
                                   r"\(\s*(?P<x_qe_dense_g_vectors>\d+)\s*G-vectors\s*\)\s*FFT\s+grid:\s*\(\s*" +
-                                  QeC.re_vec("x_qe_t_dense_FFT_grid", split=r"\s*,\s*") + "\s*\)\s*$"
+                                  QeC.re_vec("x_qe_t_dense_fft_grid", split=r"\s*,\s*") + "\s*\)\s*$"
                       ),
                    ),
                    SM(name='smooth_grid',
                       startReStr=(r"\s*Smooth\s+grid:\s*(?P<x_qe_smooth_g_vectors>\d+)\s*G-vectors\s*FFT\s+dimensions:\s*\(\s*" +
-                                  QeC.re_vec("x_qe_t_smooth_FFT_grid", split=r"\s*,\s*") + "\s*\)\s*$")
+                                  QeC.re_vec("x_qe_t_smooth_fft_grid", split=r"\s*,\s*") + "\s*\)\s*$")
                    ),
                    SM(name='smooth_grid_old',
                       startReStr=(r"\s*G\s+cutoff\s*=\s*(?P<x_qe_smooth_g_cutoff>" + RE_f + r")\s*" +
                                   r"\(\s*(?P<x_qe_smooth_g_vectors>\d+)\s*G-vectors\s*\)\s*smooth\s+grid:\s*\(\s*" +
-                                  QeC.re_vec("x_qe_t_smooth_FFT_grid", split=r"\s*,\s*") + "\s*\)\s*$"
+                                  QeC.re_vec("x_qe_t_smooth_fft_grid", split=r"\s*,\s*") + "\s*\)\s*$"
                       ),
                    ),
                    SM(name='core_charge_realspace',
@@ -1556,7 +1560,7 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
         for sec in self.header_sections():
             sec_gIndex = self.openSectionIdx.pop(sec,None)
             if sec_gIndex is not None:
-                backend.closeSection(sec, sec_gIndex)
+                backend.closeSection(metaN(sec), sec_gIndex)
 
     def run_submatchers(self):
         """submatchers of section_run"""
@@ -1730,7 +1734,7 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
                           SM(name='dispersion_correction_values', repeats=True,
                              startReStr=(r"\s*(?P<x_qe_t_species_dispersion_correction_label>.+?)\s+" +
                                          r"(?P<x_qe_t_species_dispersion_correction_vdw_radius>" + RE_f + r")" +
-                                         r"\s*(?P<x_qe_t_species_dispersion_correction_C6>" + RE_f + r")\s*$"),
+                                         r"\s*(?P<x_qe_t_species_dispersion_correction_c6>" + RE_f + r")\s*$"),
                              adHoc=self.adHoc_dispersion_correction_values,
                           ),
                       ],
@@ -1850,12 +1854,12 @@ class QuantumEspressoParserPWSCF(QeC.ParserQuantumEspresso):
                       subMatchers=[
                           SM(name='sticks_sum', required=True,
                              startReStr=(
-                                 r"\s*Sum\s+(?P<x_qe_sticks_sum_dense>\d+)\s+(?P<x_qe_sticks_sum_smooth>\d+)\s+(?P<x_qe_sticks_sum_PW>\d+)" +
-                                 r"\s+(?P<x_qe_sticks_sum_G_dense>\d+)\s+(?P<x_qe_sticks_sum_G_smooth>\d+)\s+(?P<x_qe_sticks_sum_G_PW>\d+)\s*$"
+                                 r"\s*Sum\s+(?P<x_qe_sticks_sum_dense>\d+)\s+(?P<x_qe_sticks_sum_smooth>\d+)\s+(?P<x_qe_sticks_sum_pw>\d+)" +
+                                 r"\s+(?P<x_qe_sticks_sum_g_dense>\d+)\s+(?P<x_qe_sticks_sum_g_smooth>\d+)\s+(?P<x_qe_sticks_sum_g_pw>\d+)\s*$"
                              ),
                           ),
                           SM(name='sticks_tot',
-                             startReStr=r"\s*Tot\s+(?P<x_qe_sticks_tot_dense>\d+)\s+(?P<x_qe_sticks_tot_smooth>\d+)\s+(?P<x_qe_sticks_tot_PW>\d+)\s*$",
+                             startReStr=r"\s*Tot\s+(?P<x_qe_sticks_tot_dense>\d+)\s+(?P<x_qe_sticks_tot_smooth>\d+)\s+(?P<x_qe_sticks_tot_pw>\d+)\s*$",
                           ),
                       ],
                    ),
diff --git a/src/main/scala/eu/nomad_lab/parsers/QuantumEspressoParser.scala b/src/main/scala/eu/nomad_lab/parsers/QuantumEspressoParser.scala
index c3ac6e7..1b81b82 100644
--- a/src/main/scala/eu/nomad_lab/parsers/QuantumEspressoParser.scala
+++ b/src/main/scala/eu/nomad_lab/parsers/QuantumEspressoParser.scala
@@ -48,7 +48,7 @@ object QuantumEspressoParser extends SimpleExternalParserGenerator(
     "parser-quantum-espresso/setup_paths.py",
     "nomad_meta_info/public.nomadmetainfo.json",
     "nomad_meta_info/common.nomadmetainfo.json",
-    "nomad_meta_info/meta_types.nomadmetainfo.json",
+    "nomad_meta_info/meta.nomadmetainfo.json",
     "nomad_meta_info/quantum_espresso.nomadmetainfo.json"
   ) ++ DefaultPythonInterpreter.commonFiles(),
   dirMap = Map(
-- 
GitLab