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